consiglio di usare il wrapper ll'xml del progetto:
http://qgis.org/api/classQgsProject.html sgrapparsi all'handlaer
QgsProjectBadLayerHandler

non so se questa classe ha l'interfaccia python... in un modo o
nell'altro consiglio di spulciare il codice c++ per usare la stessa
metodologia usata da questo handler e automatizzare la ricerca
nell'allbero del progetto.

chiaramente sta cosa funziona se i layer sono stati mossi in
sottocartelle... se sono stati mossi altrove, tocca chiedere
all'utente (QFileDialog) dove cercarli.

mi sembra prossa essere un buon plugin utile a tutti.

piccola riflessione generale sul SW libero e non... bello, pero' come
faccio a comptere con con stagisti pagati dallo stato a cui io pago le
tasse? ricordo un progetto per una regione del nord italia su qgis che
abbiamo offerto il giusto e lo vince una sconosciuta ditta
(sconosciuta per il mondo del sw libero e di qgis) con un ribasso
impressionante (praticamente la meta')... ora, impossibile fare sti
prezzi a meno di avere schiavi stagisti o studenti sottopagati o
subcontrattati a indiani.... comunque di quel progetto, non abbiamo
visto l'ombra delle patch che avrebbero dovuto risolvere o del plugin
che avrebbero dovuto generare.

ciao
Luigi Pirelli

**************************************************************************************************
* LinkedIn: https://www.linkedin.com/in/luigipirelli
* Elance: https://www.elance.com/s/edit/luigipirelli/
* GitHub: https://github.com/luipir
* Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli
* Mastering QGIS:
https://www.packtpub.com/application-development/mastering-qgis
**************************************************************************************************


2015-06-17 15:32 GMT+01:00 Amedeo Fadini <ame...@gmail.com>:
> Salve a tutti,
>
> una delle cose che capitano in ufficio da me è che si apre un progetto
> e l si collega ad alcuni layer, poi man mano si mette ordine nei layer
> e si spostano i layer in sottocartelle. Capita così che quando si
> riapre il progetto ci si trova davanti la finestra di gestione dei
> layer corrotti in cui viene richiesto di selezionare il nuovo percorso
> per ciascuno dei layer indisponibili.
>
> Non c'è problema se i layer sono pochi e sono stati spostati tutti
> nella stessa cartella, ma se sono molti e sono stati spostati a gruppi
> in cartelle diverse la procedura di apertura diventa complessa, lavoro
> simile se un progetto che normalmente punta a dei layer sul server
> deve puntare a layer in locale.
>
> Con l'aiuto di Mattia che è qui in stage, stiamo cercando di fare un
> piccolo script python che si occupi di sistemare questa cosa almeno
> per i layer su filesystem: vi chiedo un piccolo aiuto se per voi
> questo approccio può andare:
>
> Soprattutto non ricordo se esiste già qualcosa di simile, dalla ML
> italiana par di no.
>
> 1- leggere il file qgis con xml.ElementTree
> 2- creare una lista con tutti gli elementi <datasource>
> 3- verificare per ogni elemento se il file è accessibile e in caso
> positivo eliminarlo dalla lista
> 4- chiedere all'utente di inserire vecchio percorso e nuovo percorso
> 5- Sostituire il vecchio percorso con nuovo percorso per tutti gli
> elementi rimasti
> 6 ripetere i punti 3-5 finché tutti i file sono accessibili
>
> Non credo si possa fare un plugin perché andrebbe applicato
> all'apertura del progetto, ma intanto potremmo rilasciarlo come script
> a riga di comando.
>
> amefad
> _______________________________________________
> Gfoss@lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni 
> dell'Associazione GFOSS.it.
> 750 iscritti al 18.3.2015
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
750 iscritti al 18.3.2015

Rispondere a