<div dir="ltr">If I may,<div><br></div><div>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 <span class="inbox-inbox-gr_ inbox-inbox-gr_562 inbox-inbox-gr-alert inbox-inbox-gr_gramm inbox-inbox-gr_inline_cards inbox-inbox-gr_run_anim inbox-inbox-Grammar inbox-inbox-multiReplace" id="inbox-inbox-562" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;background-image:url("")">composer, as a different window</span> is the exception, and should work separately.</div><div><br></div><div>Thanks for the work on auxiliary data storage, that will be great!!</div><div><br></div><div>Alexandre Neto</div></div><br><div class="gmail_quote"><div dir="ltr">Régis Haubourg <<a href="mailto:regis.haubourg@gmail.com">regis.haubourg@gmail.com</a>> escreveu no dia terça, 22/08/2017 às 14:47:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all, <div><br></div><div>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</div><div><br></div><div>We, at Oslandia, working on adding Auxiliary storage capabilities to QGIS, which was discussed in several QEP [1] before.</div><div><br></div><div>Now we are close to merge but the work but I would like to discuss some ergonomics and design polishing. </div><div><br></div><div>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 !). </div><div><br></div><div><div>A user will now have two ways of storing labeling data :</div><div> - In the datasource by manually adding the fields and setting the corresponding labeling widget. Only advanced users, with grants on the datasource do that</div><div>-  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. </div></div><div><br></div><div>If we consider that a label modification (location, style, rotation ...) belongs to a project, then we save it when a user saves the project. </div><div>If we consider it is belonging to the data, we save it with data save button. </div><div>Rollback for data edits exists using the edit buffer. </div><div>But Rolling back project modifications exists only partially, in composer's edit command list or in dynamic styling panel. </div><div><br></div><div><br></div><div>Our concern is about how to handle and display the undo/redo actions for labeling when they are stored inside the project file. </div><div><br></div><div><br></div><div>We thought about 4  ways before concluding that:</div><div>- 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. </div><div>- 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. </div><div>- 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. </div><div>- 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. </div><div><br></div><div>So  has anyone any strong opinion here? </div><div><br></div><div>Is there any plan somewhere for a Project Undo/Redo, allowing for instance to Cancel a layer deletion ? </div><div><br></div><div>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.</div><div><br></div><div>All the best, </div><div>Régis </div><div><br></div><div> [1] <a href="https://github.com/qgis/QGIS-Enhancement-Proposals/issues/27" target="_blank">https://github.com/qgis/QGIS-Enhancement-Proposals/issues/27</a><br></div></div>
_______________________________________________<br>
QGIS-Developer mailing list<br>
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></blockquote></div><div dir="ltr">-- <br></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Alexandre Neto</div><div>---------------------</div><div>@AlexNetoGeo</div><div><a href="http://sigsemgrilhetas.wordpress.com">http://sigsemgrilhetas.wordpress.com</a></div><a href="http://gisunchained.wordpress.com">http://gisunchained.wordpress.com</a><br></div></div>