New feature: maximize view

We added a new feature that allows quickly maximize a view (use the space of the entire view layout) without switching between layouts.

The feature can be activated using 3 methods:

  • double-click on a view to maximize/restore
  • click the maximize/restore button in the view control bar (at the top of each view)
  • right-click on the view and choose maximize/restore

When the view is restored then the original view layout is restored. The feature is available in latest Slicer Preview Release.

Any feedback and suggestions are welcome.

8 Likes

Awesome, real time saver. And helper, as with this ergonomic switch, I for one, is already switching to maximized view more often. Formerly, multiple clicks for such display was bad for lazy guys like me.

+10.

It can’t be better.

1 Like

I have run into an annoying issue regarding this feature’s activation by “double left-click on a view to maximize/restore”.

I have a mouse that is a bit broken that will occasionally trigger double left clicks. When I’m placing control points for a markup in “Place multiple control points” mode, that can cause it to place the point and also maximize/restore the view which is jarring. I could also see a user using double left-click to apply/confirm a control point’s position.

Would it be possible to only support maximize/minimize while in the regular cursor (ViewTransform) mouse mode? It appears that double left-click to maximize/restore does not happen while in the AdjustWindowLevel mouse mode.

Double-left-click has a different action in AdjustWindowLevel mode (reset window/level).

I agree that it makes sense to have left-click and left-double-click do related actions, as a double-click event always means that a single-click event happened too. I’ve now tried mapping double-click event to end placement and it works very well: double-click places a point and that position and stops placement, which is a very convenient feature even if it was not needed due to interference with maximize event. This solution still allows maximizing the view (which can be a very useful feature during placement), the user just need to add a different shortcut.

It’s the double clicking while in placement mode that is maximize/restoring the view that is the annoying part for me. I don’t necessarily need the placement to be applied on double click, but when I’m in placement mode I’m expecting that left clicking is only going to be placing and not doing any other action at the same time such as maximize/restore. That’s the unexpected and confusing behavior.

Double-click to finish placement is a useful feature anyway and this is how point editing is finished in most other software. It also solves the inconsistency between default mapping of click and double-click actions.

If you want to eliminate double-click in the application because of a broken mouse then it seems to make sense to replace that mouse; but you can also remove the double-click mapping or re-map to something else (such as Ctrl + Left-double-click).

Mouse and keyboard gestures preferences are personal, probably the result of what people got used to do in various software that they used in the past. So, we will not be able to make everyone happy with a single default mapping. We have made good progress towards customizing all the event translations, but some more work would be needed to expose the feature conveniently to users.

I happened upon the double click to maximize view by accident and I have to say it has changed how I work. I flip between conventional and 3D only a lot and the double click is a huge time saver for me. As @lassoan mentioned, the number of different workflows and applications using 3D Slicer, keeping everyone happy is going to be a challenge (at best), but for me, at least, the double click change view is awesome.

Great, thanks for the feedback!

Do you have a suggestion for how to make aware users about new features? Do you know that all new features that are announced on the forum are tagged with the “feature” tag and so they are listed here (and you can also sign up for notifications about new features by clicking on the :bell: icon in the top-right corner on that page)?

Let me clarify, placing markup position with single left-click or with double left-click is fine with me. What is confusing is when two actions happen on the same mouse action. So if mouse double-click places the position then we have the following issue:

Left Double-Click

  • Places control point
  • Also maximizes/restores the view

^ 2 different actions in the same click should not happen and is confusing. Only one thing should be processed. What would be clear for me is that single left-click places the control point or double left-click places the control point, however no maximize/restore view layout would happen on double left-click while in multiple control point placement mode.

Actually, this is how most software works: when the user double-clicks then it initiates a click event followed by a double-click event. This is like this both at operating system level and in Qt level. You don’t even notice this, because applications choose the double-click action so that the included single-click action before it feels natural.

It is feasible to ignore the single-click event in case of a double click, but only if you delay the processing of the single-click event (to see if a second click is coming), which slows down the software, not clear, and it is very rarely done.

With the double-click-to-complete, curve drawing will work the same way in Slicer as in most other software (PowerPoint, Inkscape, Gimp, etc.).

When a left double-click is processed, I’m fine with it process actions for the single click and for the double click event. However different action makes it very confusing when placing a line node which is in the “Place multiple control points” mode.

It would be helpful for usability if double left-click processed the maximize/restore action only while in the ViewTransform mouse mode. When I double left-click while in the AdjustWindowLevel mode, it resets the window level for the volume, but it does not also maximize/restore the view layout. This same type behavior would be helpful while in Place mode.

Here’s me double left-clicking on purpose placing points. Here I’m trying to place control points in a square and I’m having difficulties because the maximize/restore view layout keeps happening on double left click when I don’t want it to.

I see, I did not explicitly describe this, but if markups consumes the double-click event (for ending the placement) then of course the view will not be maximized/minimized anymore by that same event.

New behavior (implemented in ENH: Add mouse gesture to finish markup point placement by double-click by lassoan · Pull Request #5910 · Slicer/Slicer · GitHub):

Yes, this is better. Thanks! Double left-click to place the control point and get out of placement mode is good with me especially if this is common behavior in other applications.