Hi Matthias,
thanks for the response. In the first message I've included a link to a sample Shapefile. It has a single field (called id) with these properties: type:int, type name:Integer, length:10, precision:0, fieldIndex:0, edit widget:text edit. The SIGNAL is emitted when the first feature has a NULL value for id field. It happens only the first time I click on Toggle Edit Mode (after the attribute table is open), the second time I start an edit session from the same attribute table window, the SIGNAL is not emitted. To get the SIGNAL emitted once more, I just need to close the attribute table window and open it again, then starting an edit session emits the SIGNAL again. What you say about edit widgets makes sense, what I'd like to discuss is whether the SIGNAL should be emitted in such cases. Regards, Germán 2016-07-13 1:12 GMT-05:00 Matthias Kuhn <[email protected]>: > Hi Germán, > > I think some edit widgets have effects like this, when an unsupported > value is set on them, they will just convert it to a supported one and > change it. > Like some widgets may not support NULL values so they just change it to > something else. > Please check which field is affected, what edit type is set and what's the > value of the first (topmost) feature on the attribute table for this field. > > Thanks > Matthias > > > On 13/07/16 00:33, Germán Carrillo wrote: > > Hi All, > > I'm working on a plugin and trying to connect a SLOT to > layer.attributeValueChanged SIGNAL. However, I found that such SIGNAL is > (weirdly) emitted in the following scenario: > > 1. Load a vector file (I've tested this with a Shapefile and an SQLITE > file) with a numeric (int or real) field, whose value for the first feature > is NULL. > 2. Open the attribute table of the vector layer. > 3. Start an edit session cliking on "Toggle Edit Mode" button from the > Attribute table window. > > As soon as the edit session starts, the SIGNAL is emitted. Now, if I click > on the "Toggle Edit Mode" button from the Attribute table window, I have to > choose among Save, Cancel, or Close Without Saving options, even without > changing any attribute value at all. Once I choose Close Without Saving, > the layer.attributeValueChanged SIGNAL is emitted once more. > > Such behavior is hampering my plugin, which will depend on the > aforementioned SIGNAL. > > Is this a bug? Do you know why layer.attributeValueChanged is being > emitted in such scenario? I've noticed that sometimes a blockSignals() > method is used in QGIS source code; couldn't we use blockSignals() to avoid > emitting the SIGNAL in this case? > > ###################################### > Note: I use this code snippet in the QGIS Python console to be notified > when layer.attributeValueChanged is emitted: > > ## > def f(fid, idx, value): > print fid,idx,value > > l = iface.activeLayer() > l.attributeValueChanged.connect( f ) > ## > > I'm getting these messages printed (4 is the index of the numeric field > whose value for the first feature is NULL): > > 0 4 NULL # When I open the edit session. > 0 4 NULL # When I close the edit session. > > If you want to reproduce the problem, you can use a sample Shapefile from > here: http://downloads.tuxfamily.org/tuxgis/tmp/test.zip > ###################################### > > > Regards, > > Germán > > > -- > ----------- > |\__ > (:>__)( > |/ > Soluciones Geoinformáticas Libres > http://geotux.tuxfamily.org/ > http://twitter.com/GeoTux2 > http://about.me/germancarrillo > > <http://gis.stackexchange.com/users/4972/germ%c3%a1n-carrillo> > > > _______________________________________________ > Qgis-developer mailing [email protected] > List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer > > > > _______________________________________________ > Qgis-developer mailing list > [email protected] > List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer > -- ----------- |\__ (:>__)( |/ Soluciones Geoinformáticas Libres http://geotux.tuxfamily.org/ http://twitter.com/GeoTux2 http://about.me/germancarrillo <http://gis.stackexchange.com/users/4972/germ%c3%a1n-carrillo>
_______________________________________________ Qgis-developer mailing list [email protected] List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer
