Při výpadku sítě uprostřed stahování se dosud chyba jen zapsala do logu:
stránkování se tiše ukončilo s částečnými daty a smyčka PIAN zkoušela
marně všechny zbývající dávky, takže uživatel skončil u hlášky 'Žádná
data k zobrazení' bez vysvětlení.
- Síťové chyby (requests.RequestException) se v obou smyčkách chytají
zvlášť a stahování PIAN se po první z nich ihned ukončí.
- Pokud selže už stahování metadat, zobrazí se červená lišta
'Stahování selhalo: chyba sítě'.
- Pokud se stihla vykreslit část dat, zobrazí se varování, že výsledek
je neúplný a je třeba stahování zopakovat.
- metadata.txt: icon ukazoval na neexistující download.png – plugin se
ve správci zásuvných modulů zobrazoval bez ikony; nastaveno na akce.png.
- Workflow: actions/checkout v2→v4 (v2 je deprecated, Node 12)
a softprops/action-gh-release v1→v2.
- README: poznámka, že knihovna requests nemusí být na Linuxu součástí
systémové instalace QGIS.
Pokud žádný titulek záznamu neprojde filtrem na jednopísmenný kód,
next() vrátil None a do heslar.csv se zapsal prázdný/None kód, který
se mohl dostat do API filtru jako hodnota 'None:or'. Takové záznamy
se nyní přeskakují.
- login_to_api: ošetřena výjimka při parsování ne-JSON odpovědi
(např. HTML chybová stránka za proxy) – dříve propadla až do QGIS.
- _api_get přejmenováno na _api_get_json: tělo odpovědi se parsuje jen
jednou (kontrola expirované session ho znovu využije), místo dvojího
json() na každé dávce.
- Stránkování porovnává počet stažených (ne unikátních) záznamů proti
numFound – stránky plné duplicit už nevyvolávají zbytečné requesty.
- Přidán re-entrancy guard: během běžícího stahování (processEvents
pumpuje event loop) nelze spustit druhé stahování.
- print() nahrazeno QgsMessageLog (záložka AMČR v panelu Zprávy).
- Fallback geometrie z geom_wkt (WGS-84) se nyní transformuje do S-JTSK;
dříve se souřadnice ve stupních vkládaly přímo do vrstvy EPSG:5514
a prvek se vykreslil úplně mimo.
- Nevalidní geometrie (např. samoprůniky polygonů) se před zahozením
zkusí opravit přes makeValid().
- Filtr přesnosti PIAN normalizuje hodnotu pian_presnost (API ji může
vracet jako jednoprvkový seznam) – dříve mohl tiše zahazovat záznamy.
Stejná normalizace pro pian_typ kvůli překladu kódu.
- Přístupy ke komponenta_areal/komponenta_obdobi a az_chranene_udaje
ošetřeny proti hodnotě None (klíč existuje, ale je null).
- amcr_viewer.py: QSettings().value('locale/userLocale') může být None na
čisté instalaci QGIS – ošetřen fallback na 'en', jinak plugin spadne
na TypeError hned při načtení.
- amcr_viewer.py: odstraněn nepoužívaný hvězdičkový import resources.
- amcr_dialog.py: úloha aktualizace heslářů se drží v modulové referenci,
aby GC neuklidil Python wrapper QgsTask před dokončením (známá příčina
pádů QGIS).
- amcr_dialog.py: tlačítko aktualizace se po spuštění zakáže – nelze už
spustit několik stahování paralelně přepisujících heslar.csv.
- amcr_dialog.py: závěrečné QMessageBoxy se parentují na hlavní okno QGIS
místo dialogu, který může být v době dokončení úlohy už zavřený
(smazaný C++ objekt → pád).