ros-visualization/qt_gui_core

add option to freeze layout of dock widgets

Closed this issue · 7 comments

disable toggling between floating and docked, prevent rearranging dock widgets

Freezing only makes sense in combination with lock_perspective. Else the user can open a new plugin but is unable to rearrange the widgets. On the other hand lock_perspective makes perfect sense even without freezing the layout.

@jkirchhoff @marluwie FYI

I just tried this out in jade and many configuration options aren't covered by the --lock-perspective:

This is no lock:

rqt_no_lock

This is with lock:

rqt_lock

And undocking with lock:
rqt_no_lock_undock

Shouldn't the lock prevent undocking and make the toggle dockable button, minimize, and maximize buttons disappear?
(I would like to go even further and get rid of the menu bar entirely in order to reclaim that screen real estate, but perhaps that would be a different option)

The command line option "lock perspective" is only meant to keep the set of running plug-ins fixed, not freeze the widgets in place:
-l, --lock-perspective lock the GUI to the used perspective (hide menu bar and close buttons of plugins) (This still allows to move/resize dockwidgets, but not open/close)

There could be an additional option to freeze the layout, which should only be allowed when the perspective is also locked (see Dirk's comment above).
You could make a PR with that functionality!
But hiding the whole title bar is not really an option as it is needed to identify the widgets and also the settings button of some plug-ins is located there.

I misunderstood before but I now see in the commit above there is a --freeze-layout option that was added 03e3e1d#diff-d600e8ab3bcb5a1a27a67b4bc6f1e65cR81 and I've tried it and it does work (in combination with -l as described). And it is documented in rqt --help.

I do have use cases for hiding the whole title bar, I made pr #82 for it.

I'm seeing File and Help still visible when using -l now - this is using Ubuntu 16.04 with latest kinetic or lunar released packages, or qt_gui_core kinetic-devel either current or going back as far as 4568b4c. Maybe something changed with qt?

The option --freeze-layout is silently ignored when using --standalone, what's the reasoning behind this?

When running rqt -ht -t -l -f --standalone plugin I get close to fullscreen "kiosk" behavior, however there is a very small (1 or 2 pixel) click target above the widget that can be used to drag it out of place.

Despite only a single widget running (standalone), the DockWidget still needs its QDockWidget.DockWidgetMovable and QDockWidget.DockWidgetFloatable features disabled to fully fix it in place.