Bug 90244 - SIDEBAR: Enhancing Navigator in Draw
Summary: SIDEBAR: Enhancing Navigator in Draw
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
Version:
(earliest affected)
4.5.0.0.alpha0+ Master
Hardware: Other All
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
: 91829 (view as bug list)
Depends on: 90241 90242 90277 111839
Blocks: Navigator
  Show dependency treegraph
 
Reported: 2015-03-26 06:12 UTC by Yousuf Philips (jay) (retired)
Modified: 2019-01-09 02:35 UTC (History)
8 users (show)

See Also:
Crash report or crash signature:


Attachments
mockup (24.83 KB, image/png)
2015-03-26 06:12 UTC, Yousuf Philips (jay) (retired)
Details
sample file (10.65 KB, application/vnd.oasis.opendocument.graphics)
2015-03-31 23:06 UTC, Yousuf Philips (jay) (retired)
Details
File with draw:nav-order and draw:z-index (10.21 KB, application/vnd.oasis.opendocument.graphics)
2015-04-01 00:21 UTC, Regina Henschel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Yousuf Philips (jay) (retired) 2015-03-26 06:12:55 UTC
Created attachment 114362 [details]
mockup

Navigator in Draw can be a very useful tool but it needs to be displayed either within the properties tab or within all tabs, as it will provide an overview of the pages and objects within a document as well as management of them.

In order to improve navigator so that i provides such features, improvements need to be made to its functionality.

1) Mouse Interaction - Single clicking on an page/slide, group, or object should select it. Drag and drop of slide/page to change its order and drag and drop of an object/group to change the layer arrangement on a page.

2) Mouse Context Menu - Right-clicking on an entry with the navigator should provide the options to rename, duplicate, delete, and ungroup.

3) Property Icons - Each page and object will have easy access to hide and show with the clicking of an eye icon within the entry row. Each object will have easy access to lock its position by clicking on a lock within the entry row.

4) Button Toolbar - The current arrangement of buttons can be removed and replace with management buttons for New Page, Duplicate, Delete, Move Top, Move Up, Move Down, Move Bottom.

5) Automatic Names - Newly inserted objects should be given a permanent name rather than a temporary one which can change. (bug 90243)

6) Correct Labels and Icons - A page is name slide, group is named shape, textbox is named shape, etc. Also wrong icons are used with group and textbox and likely others. (bug 90242)
Comment 1 Yousuf Philips (jay) (retired) 2015-03-26 06:14:59 UTC
Correction - Bug 90243 was supposed to be bug 90241
Comment 2 Tomaz Vajngerl 2015-03-26 06:52:46 UTC
Why not add layers into navigator too?
Comment 3 Yousuf Philips (jay) (retired) 2015-03-26 08:32:37 UTC
(In reply to Tomaz Vajngerl from comment #2)
> Why not add layers into navigator too?

The shapes are layers. :D
Comment 4 Yousuf Philips (jay) (retired) 2015-03-26 11:31:12 UTC
7) When a page/shape/object is inserted, it should select that entry after refreshing the list.
Comment 5 Regina Henschel 2015-03-26 20:19:40 UTC
(In reply to Jay Philips from comment #0)
> Created attachment 114362 [details]
> mockup
> 
> Navigator in Draw can be a very useful tool but it needs to be displayed
> either within the properties tab or within all tabs, as it will provide an
> overview of the pages and objects within a document as well as management of
> them.

Or allow the user to detach it from the sidebar. Such way friends of a separate Navigator are pleased as well. The property pane is already so full, that there is not enough place for the tree view of the navigator.

> 
> In order to improve navigator so that i provides such features, improvements
> need to be made to its functionality.
> 
> 1) Mouse Interaction - Single clicking on an page/slide, group, or object
> should select it.

Why change it? Now it is Double-click or Enter, I see no problem with that.

 Drag and drop of slide/page to change its order and drag
> and drop of an object/group to change the layer arrangement on a page.

In the standalone Navigator dragging inside the tree view changed the index order for traversing the objects via tab key. This functionality is lost in the Navigtor in the sidebar. With disabling the standalone Navigator this missing feature becomes a bug. This feature needs to be restored. Perhaps you need to specify a modifier for movement. In addition the feature needs shortcut keys for accessibilty without mouse.

> 
> 2) Mouse Context Menu - Right-clicking on an entry with the navigator should
> provide the options to rename, duplicate, delete, and ungroup.

That needs an object dependent specification. For example an OLE object should have an "Edit" item. In regard of context menu the three types of Navigator (Writer, Calc, Draw/Impress, ) should become more consistent. 

> 
> 3) Property Icons - Each page and object will have easy access to hide and
> show with the clicking of an eye icon within the entry row. Each object will
> have easy access to lock its position by clicking on a lock within the entry
> row.

Such icons need to be accessible without mouse. You need to specify that. Simple arrow key will not work, because they are used for the tree view.

Beside of that, I think, that making the Navigator of Draw more like the Object Manager of Corel Draw is a good idea.
Comment 6 Yousuf Philips (jay) (retired) 2015-03-29 13:51:53 UTC
(In reply to Tomaz Vajngerl from comment #2)
> Why not add layers into navigator too?

Excuse my ignorance, i didnt know that the bar containing layout, controls, and dimension lines was layers. :D

The problem i see with using layers in the navigator is that you can have some objects in a layer that are above or below another layer, so then how would you show it in the navigator. Lets take this as an example without layers.

+ Page 1
  Shape 2
  Shape 1
  Shape 3

And with Shape 2 and Shape 3 being on the Controls layer, it would show up like this

+ Page 1
  + Layout
    Shape 1
  + Controls
    Shape 2
    Shape 3

And doing it like this wouldnt be an option.

+ Page 1
  + Controls
    Shape 2
  + Layout
    Shape 1
  + Controls
    Shape 3

To solve the layering issue, i believe we can add the layer name after the objects name, like so - Shape 2 (Controls) - or alternatively we can do something like this.

+ Page 1
  + Layers
    Layout
    Controls
    Dimension Lines
  + Objects
    Shape 2 (Controls)
    Shape 1 (Layout)
    Shape 3 (Controls)

With layer entries in the navigator, we could provide layer context menu modification options like rename, visible, locked, and printable, as well as visible and locked buttons in the control.
Comment 7 Yousuf Philips (jay) (retired) 2015-03-29 15:49:01 UTC
(In reply to Regina Henschel from comment #5)
> Or allow the user to detach it from the sidebar. Such way friends of a
> separate Navigator are pleased as well. The property pane is already so
> full, that there is not enough place for the tree view of the navigator.

For users who want it detached, they have F5 to open it up in that manner. I guess when code is in to detached sidebar tabs (bug 85905), then doing so for the navigator would be included.

> > 1) Mouse Interaction - Single clicking on an page/slide, group, or object
> > should select it.
> 
> Why change it? Now it is Double-click or Enter, I see no problem with that.

Currently if you double-click a page, it expands/contracts it and if you double-click an object, the object doesnt show that its selected (meaning the resize squares dont appear)

> >  Drag and drop of slide/page to change its order and drag
> > and drop of an object/group to change the layer arrangement on a page.
> 
> In the standalone Navigator dragging inside the tree view changed the index
> order for traversing the objects via tab key. This functionality is lost in
> the Navigtor in the sidebar. With disabling the standalone Navigator this
> missing feature becomes a bug. This feature needs to be restored. Perhaps
> you need to specify a modifier for movement. In addition the feature needs
> shortcut keys for accessibilty without mouse.

Seem this functionality is broken in 4.4 and master.

> > 2) Mouse Context Menu - Right-clicking on an entry with the navigator should
> > provide the options to rename, duplicate, delete, and ungroup.
> 
> That needs an object dependent specification. For example an OLE object
> should have an "Edit" item. In regard of context menu the three types of
> Navigator (Writer, Calc, Draw/Impress, ) should become more consistent. 

Yes additional context menu entries would be added if applicable. Yes it would be ideal for them to have unified behaviours.

> > 3) Property Icons - Each page and object will have easy access to hide and
> > show with the clicking of an eye icon within the entry row. Each object will
> > have easy access to lock its position by clicking on a lock within the entry
> > row.
> 
> Such icons need to be accessible without mouse. You need to specify that.
> Simple arrow key will not work, because they are used for the tree view.

It would be available in the context menu. GIMP uses spacebar to show/hide a layer.

> Beside of that, I think, that making the Navigator of Draw more like the
> Object Manager of Corel Draw is a good idea.

Yes using corel draw's object manager as a reference is a good idea, which i did lockup at when creating the mockup, though most of the reference came from my usage of gimp and photoshop.

Corel Draw's Object Manager - http://www.hizliprogramindir.com/wp-content/uploads/2013/08/corel-draw-2.jpg
Comment 8 Regina Henschel 2015-03-29 17:10:10 UTC
(In reply to Jay Philips from comment #7)
> (In reply to Regina Henschel from comment #5)
> 
> > > 1) Mouse Interaction - Single clicking on an page/slide, group, or object
> > > should select it.
> > 
> > Why change it? Now it is Double-click or Enter, I see no problem with that.
> 
> Currently if you double-click a page, it expands/contracts it and if you
> double-click an object, the object doesnt show that its selected (meaning
> the resize squares dont appear)

Please try it with a _named_ object. This feature has been missing for unnamed objects since implementing, that unnamed shapes can be shown in the Navigator. It is inherited from OOo, https://bz.apache.org/ooo/show_bug.cgi?id=96488
Comment 9 Regina Henschel 2015-03-29 18:01:36 UTC
(In reply to Jay Philips from comment #6)
> (In reply to Tomaz Vajngerl from comment #2)
> > Why not add layers into navigator too?
> The problem i see with using layers in the navigator is that you can have
> some objects in a layer that are above or below another layer, so then how
> would you show it in the navigator. Lets take this as an example without
> layers.

Currently the Navigator does not show any "above" or "below", but shows the order in which you go through the shapes using the tab key. That might correspond to the stack (z-order), but need not. This navigation order corresponds to the attribute "draw:nav-order" in file format. Save to flat format to examine and change it. The stack-order is given by the attribute "draw:z-index" in file format, or in case it is missing by the order in which the shapes are arranged in the file, which the later ones are in front of the earlier ones. Currently the UI for setting "draw:nav-order" is broken. And in case of reading files without "draw:z-index", the document order is not kept in case of layer "Controls".
 
> 
> + Page 1
>   Shape 2
>   Shape 1
>   Shape 3
> 
> And with Shape 2 and Shape 3 being on the Controls layer, it would show up
> like this
> 
> + Page 1
>   + Layout
>     Shape 1
>   + Controls
>     Shape 2
>     Shape 3
>

I agree, with a pure layer tree neither "nav-order" nor "z-index" would be visible in the Navigator.
 
> And doing it like this wouldnt be an option.
> 
> + Page 1
>   + Controls
>     Shape 2
>   + Layout
>     Shape 1
>   + Controls
>     Shape 3
>

You are right. Showing the "nav-order" this way, would make it difficult to handle the layers.

> To solve the layering issue, i believe we can add the layer name after the
> objects name, like so - Shape 2 (Controls)

In consequence you would still need the layer tabs at the bottom of the page, which would not be bad for me.

 - or alternatively we can do
> something like this.
> 
> + Page 1
>   + Layers
>     Layout
>     Controls
>     Dimension Lines
>   + Objects
>     Shape 2 (Controls)
>     Shape 1 (Layout)
>     Shape 3 (Controls)
> 
> With layer entries in the navigator, we could provide layer context menu
> modification options like rename, visible, locked, and printable, as well as
> visible and locked buttons in the control.

Getting the actions via context menu is not better than currently. For an enhancement a short click/select option is needed. Currently shift-click on a layer tab toggles visibility. (I wish to have ctrl-click to toggle protection in addition.) Such easy access would be necessary for the Navigator too.

I do not know, whether users would like it, if the layer tabs are removed. I'm used to them over more than 15 years now, and want them to be kept.
Comment 10 Tomaz Vajngerl 2015-03-30 00:29:15 UTC
> The problem i see with using layers in the navigator is that you can have
> some objects in a layer that are above or below another layer, so then how
> would you show it in the navigator. 

Layers are part of z-order (or they at least should be), so this should not be possible (if we want to show the z-order in navigator). "Layout" layer objects are always below "Controls" layer objects.
Comment 11 Yousuf Philips (jay) (retired) 2015-03-31 23:06:34 UTC
Created attachment 114506 [details]
sample file

Though i didnt explicitly mention it, but thought it would be understood with the 'drag and drop of an object/group to change the layer arrangement' in point 1 and the 'Move Top, Move Up, Move Down, Move Bottom' mentioned in point 4.

8) Object Order - Objects in the tree list will be sorted based on their arrangement position in the document.

(In reply to Regina Henschel from comment #9)
> Currently the Navigator does not show any "above" or "below", but shows the
> order in which you go through the shapes using the tab key. That might
> correspond to the stack (z-order), but need not. This navigation order
> corresponds to the attribute "draw:nav-order" in file format. Save to flat
> format to examine and change it. The stack-order is given by the attribute
> "draw:z-index" in file format, or in case it is missing by the order in
> which the shapes are arranged in the file, which the later ones are in front
> of the earlier ones. Currently the UI for setting "draw:nav-order" is
> broken. And in case of reading files without "draw:z-index", the document
> order is not kept in case of layer "Controls".

Tried saving to fodg and there wasnt any "draw:nav-order" or "draw:z-index" entries.

> > With layer entries in the navigator, we could provide layer context menu
> > modification options like rename, visible, locked, and printable, as well as
> > visible and locked buttons in the control.
> 
> Getting the actions via context menu is not better than currently. For an
> enhancement a short click/select option is needed. Currently shift-click on
> a layer tab toggles visibility. (I wish to have ctrl-click to toggle
> protection in addition.)

Would have to disagree, as most people would never easily discover shift-click (me included).

> Such easy access would be necessary for the Navigator too.

I had mentioned easy access to it with "as well as visible and locked buttons in the control."

> I do not know, whether users would like it, if the layer tabs are removed.
> I'm used to them over more than 15 years now, and want them to be kept.

I dont believe they need to be removed, but think they should be hidden by default (bug 90320).

(In reply to Tomaz Vajngerl from comment #10)
> Layers are part of z-order (or they at least should be), so this should not
> be possible (if we want to show the z-order in navigator). "Layout" layer
> objects are always below "Controls" layer objects.

I was using the "Controls" layer as an example, but see that "Controls" always comes above all other layers, but this behaviour is available in other layers as shown in the attached sample odg.
Comment 12 Regina Henschel 2015-04-01 00:21:06 UTC
Created attachment 114512 [details]
File with draw:nav-order and draw:z-index

On layer Layout are the objects 'red', 'blue', 'yellow', on layer Layer4 is object 'magenta', and on layer Controls is object 'green'.

To see the settings in the file unpack it and look into the content.xml.

Using the tab key, you should get the order: red blue green yellow magenta. The tab key order is given by the attribute draw:nav-order, which is an attribute of the page.

The rendering order from back to front is given by the attribute draw:z-index of the individual drawing objects. This attribute will be removed, when saving by LibreOffice or Apache OpenOffice.

The z-order stack should be according to ODF: (back) blue yellow magenta green red (front)
But because of the special handling of Controls-layer you will get: (back) blue yellow magenta red green (front)
Comment 13 Yousuf Philips (jay) (retired) 2016-07-08 09:22:17 UTC
sorry they are already in the depends on field. :D
Comment 14 V Stuart Foote 2017-03-18 14:11:03 UTC
*** Bug 106612 has been marked as a duplicate of this bug. ***
Comment 15 Heiko Tietze 2017-03-18 15:19:50 UTC
Full story on "How the Navigator may support object handling in LibreOffice Draw" is here https://design.blog.documentfoundation.org/2016/07/31/how-the-navigator-may-support-object-handling-in-libreoffice-draw/ including mockups.
Comment 16 Cor Nouws 2017-08-17 08:46:23 UTC
(In reply to Yousuf Philips (jay) from comment #11)

>>> With layer entries in the navigator, we could provide layer context menu
>>> modification options like rename, visible, locked, and printable, as well
>>> as visible and locked buttons in the control.
>> 
>> Getting the actions via context menu is not better than currently. For an
>> enhancement a short click/select option is needed. Currently shift-click on
>> a layer tab toggles visibility. (I wish to have ctrl-click to toggle
>> protection in addition.)
> 
> Would have to disagree, as most people would never easily discover
> shift-click (me included).

Easy to find access via context menu of course is important. On the other hand, software is packed with key board tricks that are beneficial for users that need them often. So I would support both changes.
Comment 17 Cor Nouws 2017-08-21 12:27:04 UTC
@Jay: I thought I read in the issue that it's for both the instances of the Navigator?
Comment 18 Heiko Tietze 2018-01-11 10:26:22 UTC
*** Bug 91829 has been marked as a duplicate of this bug. ***
Comment 19 Regina Henschel 2018-04-08 08:29:41 UTC
On Hackfest Hamburg, April 2018, we have decided to start a project to improve handling and internal structure of layers. Our idea is, that in case the user has not created an own layer, there exist only one default layer for normal view and one default layer for master view, so that the tab bar is not shown at all.