[QGIS-Developer] Auxiliary data storage for labeling, UNDO/REDO - where does it belong to?

Régis Haubourg regis.haubourg at gmail.com
Wed Aug 23 00:34:25 PDT 2017


<quote author="Alexandre Neto">
If I may,

</quote>

Yes of course! This feedback is much appreciated.
Having labeled a lot of data, I'm still not very sure  by myself of what I
would prefer. When I feel weird to lose my labels customization when
rolling back a symbol color, having a clutered UI with multiple undo-redo
panels everywhere sucks t.

We chose the separated undo / redo approach because that's what was done
for composer and styling, and we didn't feel mature enough on the
specifications for a unified undo/redo stack for project editing.

For instance, CTRL+Z is by default on data editing and feels as the natural
shortcut for cancel. How should that behave in an edit session mixed with
project modifications.
Also, some actions need to be excluded from the undo stack at project level
such as zooming, panning. There are already buttons for that, on we could
end with enormous  and noisy stacks. Every undoable action also needs to be
named in the queue to help user find its way in the history, and that can
be a big work to clarify all that.

I would propose to launch a dedicated QEP with a 3.2 milestone so that we
can discuss ergonomics and details separately.
If anyone is interested in supporting that work, let us know.
Thoughts ?

Régis


2017-08-22 18:20 GMT+02:00 Nyall Dawson <nyall.dawson at gmail.com>:

> On 23 August 2017 at 01:03, Alexandre Neto <senhor.neto at gmail.com> wrote:
> > If I may,
> >
> > I would prefer to have one global undo/redo stack of buttons for all
> project
> > related tasks in QGIS main window (this should include labels, styles,
> > layers order, layer adding and so on). Even if that means that if you go
> > back too much, you risk removing some layers from the project, or other
> more
> > destructive actions. IMHO, having segmented undo/redo will also create
> > confusion among the users. Map composer, as a different window is the
> > exception, and should work separately.
>
> +1, especially keeping composer undo stack separate
>
> >
> > Thanks for the work on auxiliary data storage, that will be great!!
>
> +100
>
> Nyall
>
> >
> > Alexandre Neto
> >
> > Régis Haubourg <regis.haubourg at gmail.com> escreveu no dia terça,
> 22/08/2017
> > às 14:47:
> >>
> >> Hi all,
> >>
> >> one major drawback of QGIS has long been that labeling was considered as
> >> part of the datasources, which can be true in some cases, but often it
> more
> >> belong to a project map object
> >>
> >> We, at Oslandia, working on adding Auxiliary storage capabilities to
> QGIS,
> >> which was discussed in several QEP [1] before.
> >>
> >> Now we are close to merge but the work but I would like to discuss some
> >> ergonomics and design polishing.
> >>
> >> In all GIS tool, custom labeling informations have been stored in
> project
> >> file, except in QGIS (which was a brilliant idea to keep it simple !).
> >>
> >> A user will now have two ways of storing labeling data :
> >>  - In the datasource by manually adding the fields and setting the
> >> corresponding labeling widget. Only advanced users, with grants on the
> >> datasource do that
> >> -  Using an auxiliary data source sqlite db stored inside the project,
> >> just directly using the labeling toolbar, even on readonly layers. 90 %
> of
> >> the users will use that I think.
> >>
> >> If we consider that a label modification (location, style, rotation ...)
> >> belongs to a project, then we save it when a user saves the project.
> >> If we consider it is belonging to the data, we save it with data save
> >> button.
> >> Rollback for data edits exists using the edit buffer.
> >> But Rolling back project modifications exists only partially, in
> >> composer's edit command list or in dynamic styling panel.
> >>
> >>
> >> Our concern is about how to handle and display the undo/redo actions for
> >> labeling when they are stored inside the project file.
> >>
> >>
> >> We thought about 4  ways before concluding that:
> >> - merge the labeling command in the source layer's edit buffer stack ->
> >> that won't work if the layer is readonly. If a user chose not to use the
> >> auxiliary data, then it will work like normal editing.
> >> - add separate buttons to save auxiliary data by hand (which is the same
> >> action as saving a project in fact). Tollbars are too cluttered and
> users
> >> are already confusing data and project save buttons.
> >> - Create a global "project" or maybe "mapcanvas" level stack, but I
> >> suspect users would like to be able to rollback style, composer and
> labeling
> >> independently, when undoing some labeling action could also remove some
> >> layers or important styling things.
> >> - Finally, we decided to add a separate edit buffer for the auxiliary
> data
> >> inside the dynamic styling panel, just below the style/label edit
> buffer.
> >>
> >> So  has anyone any strong opinion here?
> >>
> >> Is there any plan somewhere for a Project Undo/Redo, allowing for
> instance
> >> to Cancel a layer deletion ?
> >>
> >> If yes, please share your thoughts so that we store each undo/redo stack
> >> at the right place, and hopefully with something users will understand
> >> easily.
> >>
> >> All the best,
> >> Régis
> >>
> >>  [1] https://github.com/qgis/QGIS-Enhancement-Proposals/issues/27
> >> _______________________________________________
> >> QGIS-Developer mailing list
> >> QGIS-Developer at lists.osgeo.org
> >> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> >> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> >
> > --
> > Alexandre Neto
> > ---------------------
> > @AlexNetoGeo
> > http://sigsemgrilhetas.wordpress.com
> > http://gisunchained.wordpress.com
> >
> > _______________________________________________
> > QGIS-Developer mailing list
> > QGIS-Developer at lists.osgeo.org
> > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20170823/f456cba4/attachment.html>


More information about the QGIS-Developer mailing list