While working on a regression with how geometry attributes are handled by the attributes editor widget I stumbled upon what looks like being an unclear responsibility as to what should convert in/out of text form various type of field values.
The QgsTextEditWrapper::setWidgetValue method contains different special handling and passes non-special cases to QgsField::displayString to produce the "widget value" (which is a text representation of the value usable for editing it). Now: QgsField::displayString is documented to a "string for display" which is not a "string for editing". For the ReferencedGeometry case such method returns a truncated WKT string, for example, which is surely ok for "display" but not for "edit", which is what QgsTextEditWrapper::setWidgetValue wants. Similarly, QgsTextEditWrapper::value() invokes QgsField::convertCompatible() but only in certain cases and not in others, which makes me wonder who should be responsible for this in/out conversion of QgsField values to text and back. The question is: should QgsTextEditWrapper::setWidgetValue keep relying on QgsField, with QgsField exposing specific methods to convert to/from a "canonical text" form of values ? --strk; Libre GIS consultant/developer https://strk.kbt.io/services.html _______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
