# This file contains metadata for your plugin.

# This file should be included when you package your plugin.

[general]
name=Analisi DUSAF 7 Comune Lombardo
qgisMinimumVersion=3.34
qgisMaximumVersion=4.99
description=Automated DUSAF 7 land-use analysis for Lombardy municipalities via Regione Lombardia REST services. QC-4 audit, GeoPackage + CSV export. (Plugin regionale italiano.)
version=0.3.22
author=Marco Stefano La Sala
email=214729081+marcols-126@users.noreply.github.com

about=English - QGIS plugin for automated land-use analysis in the municipalities of Lombardy (Italy), based on the DUSAF 7.0 dataset of Regione Lombardia and the official administrative boundaries.
    Unlike traditional plugins it does NOT require manual pre-loading of layers: data is fetched on-the-fly from the Regione Lombardia ArcGIS REST services, with automatic caching in the QGIS profile. Optionally, ISTAT 2026 boundaries can be enabled as the authoritative source.
    Workflow: Comune validation, geometry fix, EPSG:32632 reprojection, DUSAF clipping on the municipal perimeter, slivers handling, dissolve by land-use class, area calculation (m^2, hectares, percentages), and a QC-4 audit with area-conservation check.
    Output: multilayer GeoPackage with applied QML styles + CSV summary per class. A memory-only mode is available for quick analyses without writing files.
    Compatibility: QGIS 3.34 -> 4.99, Qt5 and Qt6.
    Data attribution: DUSAF 7.0 and Ambiti Amministrativi (c) Regione Lombardia (CC BY 4.0); ISTAT 2026 boundaries (c) ISTAT (CC BY 4.0). Plugin code: AGPL-3.0.
    ---
    Italiano - Plugin QGIS per l'analisi automatica dell'uso del suolo nei Comuni lombardi, basato sul dataset DUSAF 7.0 di Regione Lombardia e sui confini amministrativi ufficiali.
    A differenza dei plugin tradizionali NON richiede il pre-caricamento manuale dei layer: i dati vengono scaricati al volo dai servizi REST ufficiali di Regione Lombardia (ArcGIS Server), con cache automatica nel profilo QGIS. Opzionalmente e' possibile attivare i confini ISTAT 2026 come fonte autoritativa.
    Flusso di lavoro: validazione del Comune, fix geometrie, riproiezione EPSG:32632, clip DUSAF sul perimetro, gestione slivers, dissolve per classe, calcolo superfici (m^2, ettari, percentuali) e audit QC-4 con controllo conservazione delle aree.
    Output: GeoPackage multilayer con stili QML applicati + CSV riepilogativo per classe. Modalita memoria disponibile per analisi rapide senza scrivere file.
    Compatibilita: QGIS 3.34 -> 4.99, Qt5 e Qt6. Pensato per istruttorie urbanistiche e analisi PGT.
    Attribuzione dati: DUSAF 7.0 e Ambiti Amministrativi (c) Regione Lombardia (CC BY 4.0); confini ISTAT 2026 (c) ISTAT (CC BY 4.0). Codice plugin: AGPL-3.0.

tracker=https://github.com/marcols-126/qgis-plugin-dusaf7-comuni-lombardi/issues
repository=https://github.com/marcols-126/qgis-plugin-dusaf7-comuni-lombardi

hasProcessingProvider=yes

changelog=0.3.22 (2026-05-19)
        - INPUT: la pillola sotto "Comune da analizzare" mostra ora
          un messaggio diretto e attuabile ("E' possibile proseguire
          direttamente con > Esegui analisi (con servizio REST)"); il
          suggerimento per il mode offline e' nel tooltip al passaggio
          del mouse.
        - Changelog reso compatto da 0.3.12 fino a 0.1.0 (uno o due
          bullet per release): da 36 KB a 9 KB, leggibile a colpo
          d'occhio nel Plugin Manager.

    0.3.21 (2026-05-19)
        - Tooltip dei pulsanti con descrizione lunga (force REST, log,
          apri cartella) ora wrappati con max-width 320px: niente piu'
          tooltip che escono dal dialog.
        - Changelog riscritto in stile sintetico (una riga per modifica)
          per le ultime release.

    0.3.20 (2026-05-19)
        - PROCESSING DUSAF: nuovo terzo pulsante toggle "Forza uso REST
          RL" (icona ArcGIS, stato persistente in QgsSettings) che fa
          ignorare all'algoritmo il layer DUSAF7 di progetto.
        - UX: i 4 banner di stato di INPUT e PROCESSING DUSAF diventano
          pillole compatte con tooltip dettagliato all'hover, dialog
          molto piu' pulito.

    0.3.19 (2026-05-19)
        - Bugfix critico QGIS 4.0 / Qt6: i popup info "i" crashavano
          (QMessageBox.Information / .Ok rimossi dai flat alias);
          aggiunti resolver lazy in compat.py.
        - PROCESSING DUSAF: badge "Fonte attiva" distingue match strict
          (DUSAF7 esatto) da loose (campi giusti ma nome diverso, es.
          output di un run precedente) con warning arancione.
        - Processing Toolbox: rimossi colori hardcoded da shortHelpString
          (illeggibili sul tema scuro Win 11).

    0.3.18 (2026-05-19)
        - UX polish: claim arancione di INPUT piu' diretto, Area minima
          slivers sempre visibile (rimosso QScrollArea).
        - Bottoni con icone tema QGIS: globo per Geoportale RL, cartella
          per caricamento locale, layer temporaneo per modalita' memoria.
        - Nuovo helper _get_themed_icon con fallback su Qt QStyle.

    0.3.17 (2026-05-18)
        - Riorganizzazione 3 tab basata su feedback uso reale: Area
          minima slivers spostata in INPUT, PROCESSING rinominato in
          PROCESSING DUSAF, label dei bottoni di download/carica DUSAF
          chiarite e disposte una per riga.
    0.3.16 (2026-05-18)
        - Dichiarata compatibilita' esplicita QGIS 4.x: aggiunto
          qgisMaximumVersion=4.99 nel metadata (default portale era
          3.99, nascondeva il plugin agli utenti QGIS 4.0).
        - Release di aggregazione delle iterazioni interne 0.3.13-15
          (solo committate su GitHub, mai caricate sul portale).

    0.3.15 (2026-05-18)
        - Icone aiuto ora cliccabili: cerchio azzurro "i" accanto a
          ogni sezione apre un popup informativo (sostituisce il
          tooltip-on-hover della 0.3.14).
        - Modalita' di salvataggio: dropdown invece dei 3 radio button.
        - Progress bar spostata SOPRA il log per leggibilita' immediata.
        - Rimossi titolo e sottotitolo introduttivi: dialog parte
          direttamente con le tab.

    0.3.14 (2026-05-18)
        - UX overhaul: dialog principale ora organizzato in 3 tab
          (INPUT / PROCESSING / OUTPUT) con pannello ESECUZIONE sempre
          visibile sotto e footer pulsanti sempre in fondo.
        - Ogni intestazione di sezione ha icona "i" con tooltip
          dettagliato per ridurre il testo prose nel dialog.
        - Banner consigliato DUSAF passato da rosso ad arancione
          attenuato (il servizio REST RL non e' piu' problematico,
          il banner deve suggerire non allarmare).

    0.3.13 (2026-05-18)
        - Correzione terminologica nel log e messaggi d'errore Data
          Audit QC-4: "superficie del perimetro" -> "superficie della
          geometria" (perimetro e' una lunghezza, non un'area).
    0.3.12 (2026-05-16)
        - Code Quality scanner plugins.qgis.org: chiusi 14 finding
          Flake8 (9 F401 unused imports + 5 W503 line break before
          binary operator). Nessun cambio funzionale.

    0.3.11 (2026-05-16)
        - Fix: zoom automatico al Comune sbagliato in esecuzioni
          sequenziali (es. Zibido -> Varese -> Cremona zoommava
          sempre su Zibido). Match case-insensitive sul pattern
          "Confine <X> fix", rimosso fallback al primo layer.

    0.3.10 (2026-05-16)
        - Fix banner DUSAF: il QLabel era variabile locale, non
          self._dusaf_recommend; setVisible non veniva mai invocato.
          Ora il banner sparisce davvero quando DUSAF7 e' caricato.

    0.3.9 (2026-05-16)
        - Banner DUSAF si aggiorna live ai segnali QgsProject
          layersAdded/Removed (drag&drop dal Browser ora supportato).
        - Stringhe italiane: "workflow" -> "flusso di lavoro" nei
          messaggi utente. About inglese invariato.

    0.3.8 (2026-05-16)
        - Banner "Consigliato: caricare DUSAF7" scompare automaticamente
          quando DUSAF7 e' gia' caricato come layer di progetto.
        - Em-dash tipografico sostituito con trattino normale in tutti
          i titoli del dialog.
        - Nuovo slider trasparenza layer clip QC (0-100%%) persistito
          in QSettings.

    0.3.7 (2026-05-16)
        - UX polish per orientare l'utente nel flusso INPUT ->
          PROCESSING -> OUTPUT: titoli delle sezioni prefissati con
          il loro ruolo, subtitle a 3 passi numerati, banner rosso
          consigliato caricamento DUSAF7 come layer, pulsante Esegui
          rinforzato (bold, padding, icona).
        - Zoom automatico al Comune appena processato (margine 10%%).

    0.3.6 (2026-05-16)
        - REVERT del troncamento di COD_TOT a 4 cifre (0.3.0): rompeva
          la categorizzazione LIV5 dei QML shipped. COD_TOT conserva
          ora la lunghezza variabile.
        - Logging clip neutro: il calo di feature dal clip e' filtraggio,
          non warning anomalo.

    0.3.5 (2026-05-16)
        - Fix correttezza CRITICO: il pre-filtro DUSAF al bbox del
          Comune scartava le feature con geometria invalida (visibile
          come buchi nel clip QC nelle aree urbane dense). Sostituito
          GeometrySkipInvalid con GeometryNoCheck.
        - Logging diagnostico per ogni step pesante: "[STEP] <nome>:
          <in> -> <out>" + warning automatico su perdite > 0.5%%.

    0.3.4 (2026-05-15)
        - "Carica DUSAF nel progetto..." ora accetta direttamente lo
          ZIP del Geoportale RL: estrae DUSAF7.shp + sidecar in
          <nome_zip>_estratto/ e carica lo shapefile. Re-eseguendo
          sullo stesso ZIP riusa l'estrazione esistente.

    0.3.3 (2026-05-15)
        - REVERT del sys.modules purge della 0.3.2: lasciava il package
          parent rimosso ma il submodulo .py in cache (ImportError al
          successivo classFactory). unload() torna alla versione stabile.

    0.3.2 (2026-05-15)
        - Tentativo (fallito) di rendere Plugin Reloader davvero
          funzionante via sys.modules purge. Vedi 0.3.3 per il REVERT.

    0.3.1 (2026-05-15)
        - UX: "Stato dati" splittato in due sottosezioni distinte
          (Confini ISTAT / DUSAF 7.0).
        - Nuovo pulsante "Carica DUSAF7.shp nel progetto..." (file
          picker) che evita il passaggio manuale Layer > Aggiungi.

    0.3.0 (2026-05-15)
        - Semplificazione architetturale: rimossa la cache DUSAF
          locale (introdotta in 0.2.14) che generava due percorsi
          paralleli con tabelle output diverse. Modello unificato a
          2 sorgenti: layer di progetto o REST.
        - COD_TOT troncato a LIV4 (poi revertato in 0.3.6).

    0.2.16 (2026-05-15)
        - UI trim radicale (feedback utente): rimossi banner duplicati,
          pulsante "Info REST" (testo nel tooltip), radio "Fonte DUSAF"
          quando non c'e' cache locale, elenco verboso "Cosa ottieni".

    0.2.15 (2026-05-15)
        - Polish setup dialog ISTAT + setup DUSAF: link cliccabili al
          posto delle URL lunghe, fix TypeError validazione ZIP, badge
          DUSAF a 4 stati.
        - Nuova radio "Fonte DUSAF" (auto / forza REST).

    0.2.14 (2026-05-15)
        - Nuova feature: cache DUSAF 7.0 locale opzionale (rimossa
          poi in 0.3.0). Setup dialog ispirato a ISTAT, ordine sorgenti:
          project layer -> cache locale -> REST.

    0.2.13 (2026-05-15)
        - Fix: "Aggiorna cache lista Comuni" bypassava la cache ISTAT
          anche quando il badge la indicava attiva. force_refresh
          invalida ora solo la cache JSON leggera, non lo shapefile ISTAT.

    0.2.12 (2026-05-15)
        - "Aggiorna cache lista Comuni" da' ora feedback visibile a
          schermo (messaggio in cima + processEvents prima del REST).
        - Qt6 strict QGIS 4.0 round 2: compat alias per
          QgsFeatureRequest, QgsVectorFileWriter,
          QgsProcessingParameterNumber.

    0.2.11 (2026-05-15)
        - Fix leggibilita' tema scuro QGIS 4.0: "Cosa ottieni" forza
          color:#1a1a1a su background chiaro; subtitle/intro rimuovono
          il color hardcoded per ereditare dal tema.

    0.2.10 (2026-05-15)
        - Supporto schermi low-res (1366x768): entrambi i dialog
          wrappati in QScrollArea, ridotti i minimumSize.

    0.2.9 (2026-05-15)
        - Qt6 strict QGIS 4.0 round 2: enum scoped su QCompleter /
          QFont / QSizePolicy / QMessageBox / QTextCursor risolti via
          _class_enum compat helper.

    0.2.8 (2026-05-15)
        - Fix critico QGIS 4.0 / Qt6 strict: "Qt has no attribute
          RichText". Le flat alias non esistono piu' su Qt6 strict;
          aggiunto compat helper _qt_enum lazy.

    0.2.7 (2026-05-17)
        - Chiusi 9 finding W504 + W391 (scanner Flake8 plugins.qgis.org
          attiva sia W503 che W504, mutually exclusive).

    0.2.6 (2026-05-17)
        - Attribuzione dati esplicita CC BY 4.0 in README, metadata e
          log (DUSAF / Ambiti Amministrativi RL; ISTAT 2026).
        - Chiusi 14 finding Flake8 (W292/W293/W503/F541/E305/F841).

    0.2.5 (2026-05-17)
        - Rimosse cartelle dev-only flaggate dallo scanner "Suspicious
          Files": help/ (Sphinx), scripts/ (translation helpers).

    0.2.4 (2026-05-17)
        - Bandit fix 4 issue: validazione esplicita schema URL
          (http/https) prima di ogni urlopen() nei client REST;
          rimosso plugin_upload.py (xmlrpc.client) dal pacchetto.

    0.2.3 (2026-05-12)
        - Aggiunto file LICENSE (senza estensione) richiesto dal
          validator del repository QGIS.

    0.2.2 (2026-05-12)
        - Metadata bilingue (English + Italian) per la checklist di
          review del repository QGIS. Tags estesi con varianti EN.

    0.2.1 (2026-05-12)
        - Polish metadata per submission plugins.qgis.org: changelog
          multi-versione, rimosso qgisMaximumVersion.

    0.2.0 (2026-05-12)
        - Workflow REST-driven: scarica al volo DUSAF 7 e confini
          comunali dai servizi RL ufficiali, senza pre-caricamento
          manuale di layer.
        - Nuovo dialog: autocomplete Comune, log live con progress bar,
          3 modalita' output (memoria / progetto / cartella custom).
        - Setup ISTAT 2026 opzionale per confini autoritativi.
        - Cache lista Comuni con TTL 30 giorni.
        - Compatibilita' QGIS 3.34 -> 4.99, Qt5 e Qt6.
        - Robustezza REST: retry adattivo, bbox tiling, deferred retry
          per Comuni grandi.
        - Back-compat: usa DUSAF7/Com01012026_WGS84 se gia' nel progetto.
        - 97 test pure-python; nuova icona Lombardia (43 KB).

    0.1.0 (2026-05-09)
        - Versione iniziale (Plugin Builder skeleton + workflow base
          con pre-caricamento manuale di layer).

tags=dusaf, lombardia, lombardy, comuni, municipalities, uso del suolo, land use, pgt, consumo di suolo, soil consumption, qc-4, processing, rest, arcgis, regione lombardia, istat, italy, italia

homepage=https://github.com/marcols-126/qgis-plugin-dusaf7-comuni-lombardi
category=Vector
icon=icon.png
experimental=False
deprecated=False

# plugin_dependencies=
server=False
license=AGPL-3.0
