Komentáře Novinky v LibreOffice 7.1 – Writer, Calc a další

user avatar kamlan
Odpovědět
Pár postřehů z verze 7.1(.1.1)
23. 02. 2021, 17:16:19
Writer:
-Inspektor stylů je skutečně hodně povedená věc :-).

-Nastavit výchozí ukotvení obrázků je řekl bych tak "zahraničně-pěkné", ale vůbec to neřeší Svislé a Vodorovné umístění obrázku, takže v mnoha případech beztak bude muset uživatel tohle nastavovat ve Vlastnostech obrázku. Česky-pěkné by to podle mně bylo s volitelným nastavením výchozích hodnot i pro ta umístění.

-ve verzi 7.0.4.2 se dokumenty otevíraly v místě ve kterém byly uložené, takže když jsem měl odrolováno třeba do půlky dokumentu a uložil, tak se otevřel v té polovině. Ve verzi 7.1.nevim tohle začlo blbnout, ale dalo se toho otevření v uložené pozici docílit občas tak, že se po otevření přeplo na jiný dokument, chvíli počkalo než se ten otevíraný načetl a pak se na něj přeplo nazpět. Nebo před přepnutím na jiný dokument ještě šlo lehce porolovat myší. Ale nefungovalo mi to vždy. Když se při otevírání většího dokumentu rolovalo myší dolů, tak se taky dokument stále otevíral a vykresloval, což měnilo hýbátko ve svislé rolovací liště. Zkusil jsem tedy aktuální vývojovou verzi 7.2.0.0.alpha0+ a v ní je tento "zřejmě experiment na libreofisáckém uživateli" řešen tak, že se dokument otevírá vždy jen na začátku a nikam se neodrolovává :-). Je to však škoda a doufám že časem se to povede dořešit, neboť otevření na pozici kde byl dokument uložen jsem si docela oblíbil.


Calc: v něm jsem objevil 2 chyby v makrech.

-Jednu která makrem povolí zapnout/vypnout automatickou kontrolu pravopisu a fungovala ve verzi 7.0.4.2, ovšem pouze když se to makro pustilo z menu Nástroje/ Makra/ Spustit makro. Když se pustilo přímo v Basic Editoru, tak to nic nedělalo. Ve Writeru to přitom chodí z menu i z Basic Editoru. Navíc ve verzi 7.1.1.1 záznam makra neuloží pro zapnutí/vypnutí Automatické kontroly pravopisu jeden parametr, který byl ukládán ve verzi 7.0.4.2. Bug nahlášen zde: https://bugs.documentfoundation.org/show_bug.cgi?id=140618

-Druhá chyba se týká operace s poli, kdy při nějaké příležitosti vyhodí chybu na p(i)=array(p(i)) apod. (přičemž v 7.0 to fungovalo), ale ještě jsem to nedokázal úplně reprodukovat neboť se mi nechce až tak štrachat v rozsáhlejším kódu ve kterém to dělá, takže na to jdu pomaleji a snad se během pár dní podaří. Dá se to však snadno obejít použitím druhého pole p2(i)=array(p(i)).


Syntaktické diagramy: zmiňované na závěr článku nejsou špatné, ale je to spíše o zvyku. Připadá mi že jsou fakt přehlednější než ta syntaxe příkazu ve stylu Příkazového řádku. Na obou zápisech by se dle mého názoru sice něco dalo "vylepšit", ale den má jen 24 hodin :-). Ale vnímám to jako dobrou věc.


Knihovna pro makra ScriptForge:
-je docela náročná neboť je v ní v podstatě vše řešeno objektově. Občas se třeba na fóru potýkáme s volbou Option Explicit, ale v té knihovně jsou očividně s oblibou používány ještě Option Compatible
& Option ClassModule - a i nějaké další. Pro začátečníka nebo amatérského programátora zpočátku docela složité se v těch objektech zorientovat a naučit se to používat. Naštěstí je ale starší verze této knihovny bez objektů a v té se orientuje o poznání lépe :-): https://github.com/Tj85710/LibO-Primitives - je to tam v tom ODT souboru.


Python:
-ten není do LibreOffice zakomponován tak, aby to bylo uživatelsky příjemné jak Basic. Nemá vestavěný editor jako je Basic Editor ani organizátor knihoven a modulů. A tak vytvořit nějaké makro v Pythonu je poněkud složitější. Je na to doplněk Apso Python Editor https://extensions.libreoffice.org/en/extensions/show/apso-alternative-script-organizer-for-python , ale to je v podstatě organizátor skriptů, editor ne. Samotný skript se musí psát v nějakém externím editoru (zkusil jsem PSPad), ale nepochopil jsem jak třeba makro krokovat při ladění. Možná to jde nějak jednodušeji, ale v rámci svého lehkého bádání jsem na to prostě nepřišel a dále se tomu více nevěnoval.

-zajímavé rozšíření s různými funkcemi je od jednoho Mexičana: ZaZ EasyMacro: https://gitlab.com/mauriciobaeza/zaz-easymacro ; popis použití https://gitlab.com/mauriciobaeza/zaz-easymacro/-/wikis/home ; přímo OXT soubor https://gitlab.com/mauriciobaeza/zaz-easymacro/-/blob/master/files/EasyMacro_v0.7.0.oxt
Je to v Pythonu, ale knihovna se dá načíst jedním řádkem i do Basicu a lze tak využívat její funkce, např. app=createUnoService("net.elmau.zaz.EasyMacro") : pole=app.sort(...), ostatně je to příkladováno v dokumentaci.


Pokus s knihovnami ScriptForge a ZazEasyMacro:
V Calcu jsem dal vygenerovat 200tis. řádku s náhodnými čísly od 0 do 10tis. V menu pak dal Data/ Řadit vzestupně. Calc to přeskládal asi za vteřinu.
Zkusil jsem v Basicu makro ze ScriptForge na seřazení, ta objektová verze řadí pomocí HeapSort, pouhých 3000 položek řadila 8s. V testu na 100tis. položek jsem vyměkl asi po 40 sekundách a Libre ukončil přes Ctrl+Alt+Del.
Starší verze ScriptForge bez objektů má dvě metody pro QuickSort, první těch 200k položek seřadila za 47s, druhá za 39s.
Řazení využívající ZazEasyMacro to udělalo za 2s.

Některé operace tedy budou v Pythonu rychlejší než v Basicu neb by na to měl být dělaný, ale ani to nemusí znamenat, že to bude rychlejší než třeba přímo v Calcu. Python se pravděpodobně dočká plnohodnotné implementace do Libre podobně jako je v ní plnohodnotně Basic - a pak třeba bude maker v něm přibývat razantněji. Ale v této současné neúplné integraci Pythonu bych to na žádný masivnější přírustek maker v něm neviděl.
Co jsem zatím vykoumal tak některé operace se v Pythonu provedou syntakticky snáze než v Basicu, ale s některými vlastnosti některých objektů mi to připadá zase těžší. Ale o tom třeba nějakou zmínku, jestli se s tím Pythonem někdy naučím víc :-).
 
 
woo jaw demo hz