[Gfoss] cad4qgis

oops, il troppo entusiasmo mi ha tradito :-)))

volevo anche chiedere 2 cose:

1) dove sta annidato il CRS corrente (quello settabile da menu o dal
bottone in basso a destra)?

2) ho scoperto che i layer sono modificabili anche se non settati
"editabili"; mi sfugge qualcosa: la flag è forse solo una policy cui
aattenersi? qualche spiegazione?

grazie, ciao,
giuliano

Ciao,

2012/7/18 giuliano su Tiscali <giulianc@tiscali.it>:

1) dove sta annidato il CRS corrente (quello settabile da menu o dal
bottone in basso a destra)?

canvas.mapRenderer().crs()

2) ho scoperto che i layer sono modificabili anche se non settati
"editabili"; mi sfugge qualcosa: la flag è forse solo una policy cui
aattenersi? qualche spiegazione?

Dipende che metodi usi per modificarli:

se passi dal provider allora non c'è alcun motivo di impostare
il layer come modificabile perché stai lavorando direttamente
sulla sorgente dati,

se usi i metodi del layer allora dopo startEditing() i cambiamenti
sono inseriti in un buffer e non sono riportati sulla sorgente dati
finché non chiami la commitChanges() oppure la rollback() per
scartarli. Praticamente è come se premessi il pulsante di editing
nella barra di QGis.

Spero di aver ben compreso la domanda :slight_smile:
Ciao.

--
Giuseppe Sucameli - Faunalia

On Fri, 20 Jul 2012 02:04:40 +0200
Giuseppe Sucameli <sucameli@faunalia.it> wrote:

Ciao,

2012/7/18 giuliano su Tiscali <giulianc@tiscali.it>:
> 1) dove sta annidato il CRS corrente (quello settabile da menu o dal
> bottone in basso a destra)?

canvas.mapRenderer().crs()

grazie 1 :slight_smile:

> 2) ho scoperto che i layer sono modificabili anche se non settati
> "editabili"; mi sfugge qualcosa: la flag è forse solo una policy cui
> aattenersi? qualche spiegazione?

Dipende che metodi usi per modificarli:

se passi dal provider allora non c'è alcun motivo di impostare
il layer come modificabile perché stai lavorando direttamente
sulla sorgente dati,

infati usavo questi :frowning:

se usi i metodi del layer allora dopo startEditing() i cambiamenti
sono inseriti in un buffer e non sono riportati sulla sorgente dati
finché non chiami la commitChanges() oppure la rollback() per
scartarli. Praticamente è come se premessi il pulsante di editing
nella barra di QGis.

grazie 2 :slight_smile:

non l'ho vito (o mi è sfuggito) nei tutorial:
- http://www.qgisworkshop.org/html/workshop/index.html
- http://www.padido.eu/gfoss/qgis/workshop/
- http://www.padido.eu/gfoss/qgis/pyqgis/
in rete: nel caso, non sarebbe utile aggiunferli in una prossima
revisione?

Spero di aver ben compreso la domanda :slight_smile:

perfetto, grazie ancora;

Ciao.

--
Giuseppe Sucameli - Faunalia

ciao,
giuliano

On Fri, 20 Jul 2012 15:56:48 +0200
giuliano su Tiscali <giulianc@tiscali.it> wrote:

On Fri, 20 Jul 2012 02:04:40 +0200
Giuseppe Sucameli <sucameli@faunalia.it> wrote:

> .......

oops, per qualche legge di Murphy, le mail scattano sempre un secondo
prima del dovuto :-))))

Giuseppe, approfitto della tua competenza e disponibilità: come si fa ad
agganciare la modalità undo/redo di qgis? i comandi che eseguo nel mio
plugin (si fa per dire :-))) non sono reversibili; è possibile inserirli
nel meccanismo undo/redo? come?

infinite grazie, ciao,
giuliano

Ciao,

2012/7/20 giuliano su Tiscali <giulianc@tiscali.it>:

On Fri, 20 Jul 2012 02:04:40 +0200
Giuseppe Sucameli <sucameli@faunalia.it> wrote:

se usi i metodi del layer allora dopo startEditing() i cambiamenti
sono inseriti in un buffer e non sono riportati sulla sorgente dati
finché non chiami la commitChanges() oppure la rollback() per
scartarli.

non l'ho vito (o mi è sfuggito) nei tutorial:

c'è già, vedi [1].
Ciao.

[1] http://www.padido.eu/gfoss/qgis/pyqgis/vector.html#modificare-layer-vettoriali-con-buffer-di-modifica

Spero di aver ben compreso la domanda :slight_smile:

perfetto, grazie ancora;

Ciao.

--
Giuseppe Sucameli - Faunalia

ciao,
giuliano

--
Giuseppe Sucameli - Faunalia

2012/7/20 giuliano su Tiscali <giulianc@tiscali.it>:

come si fa ad agganciare la modalità undo/redo di qgis?

QGis API, QgsVectorLayer class [1]:

void beginEditCommand (QString text)
   Create edit command for undo/redo operations.
void endEditCommand ()
   Finish edit command and add it to undo/redo stack.
void destroyEditCommand ()
   Destroy active command and reverts all changes in it.

Ciao.

[1] http://qgis.org/api/classQgsVectorLayer.html

infinite grazie, ciao,
giuliano

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
605 iscritti al 10.7.2012

--
Giuseppe Sucameli - Faunalia

On Fri, 20 Jul 2012 16:25:39 +0200
Giuseppe Sucameli <sucameli@faunalia.it> wrote:

Ciao,

2012/7/20 giuliano su Tiscali <giulianc@tiscali.it>:
> On Fri, 20 Jul 2012 02:04:40 +0200
> Giuseppe Sucameli <sucameli@faunalia.it> wrote:
>> se usi i metodi del layer allora dopo startEditing() i cambiamenti
>> sono inseriti in un buffer e non sono riportati sulla sorgente dati
>> finché non chiami la commitChanges() oppure la rollback() per
>> scartarli.
>
> non l'ho vito (o mi è sfuggito) nei tutorial:

c'è già, vedi [1].

oops, vero;

leggendo (troppo velocemente) il capitolo, mi ero concentrato
sulla possibilità di operare non su layer, ma in memoria, e mi ero
perso tutto il resto, chiedo scusa :-(((

Ciao.

[1] http://www.padido.eu/gfoss/qgis/pyqgis/vector.html#modificare-layer-vettoriali-con-buffer-di-modifica

ciao,
giuliano

PS: grazie anche per la risposta su undo/redo;