[Qgis-developer] Keeping line breaks in QGIS expressions
Matthias Kuhn
matthias.kuhn at gmx.ch
Wed Sep 24 12:00:38 PDT 2014
Hi Martin
On 24.09.2014 19:32, Martin Dobias wrote:
> Hi Andreas
>
>
> On Wed, Sep 17, 2014 at 10:56 PM, Andreas Neumann <a.neumann at carto.net> wrote:
>> I noticed that line breaks are not preserved. This makes the statement
>> much harder to read.
>>
>> Is there a chance that future QGIS versions could preserve linebreaks or
>> is there a problem saving and restoring the line breaks of the expressions?
> This is probably due to the fact that in _some_ cases expressions are
> (unfortunately) not kept in verbatim format as they were input -
> instead they are parsed and later converted back to text, loosing all
> formatting.
I once introduced a method QgsExpression::expression() along
QgsExpression::dump() which originally returned the saved verbatim
string and was subsequently changed several times (responsibility for
this including myself) to call dump() or return the original string.
Last time I wanted to change this back to the saved string, I was
stopped me because IIRC there are situations where the expression gets
modified directly, so the input string does not correctly represent the
expression and needs to be recreated.
I would propose the following:
- QgsExpression::dump() should always recreate the string from the
data structure
- save the original expression string and return it with
QgsExpression::expression()
- unless the expression is modified by other means, which will set the
saved string to a NULL string in which case QgsExpression::expression()
will be forwarded to QgsExpression::dump()
-- Matthias
More information about the Qgis-developer
mailing list