Make double-click in Data module jump to associated module

Every node in the Data view window (often?) has a custom module associated, accessible by right clicking the item and selecting Edit properties….

Would it be a good idea to let double clicking an item jump to its associated module (just like Edit properties…) instead of edit its name as now? Name editing could be done in the right click menu or pressing F2 on the keyboard. Editing a name is not something I do frequently, but I frequently jump between modules.

What do you think?

Interesting idea. I agree that now rename is needed less frequently that editing other properties.

Let’s see what others think.
@pieper @cpinter @jcfr @muratmaga @jamesobutler

This would apply for all tabs in the “Data” module, including “Subject Hierarchy”, “Transform Hierarchy” and “All nodes”?

Subject Hierarchy Transform Hierarchy All nodes
image

It would only makes sense for the Data module (all the other modules are already for editing properties of the item). You raised a good point - this would introduce inconsistency in the behavior subject hierarchy tree: some places it would jump to another module, while other places it would edit the item name.

I think this is a good idea, but I am not sure if the double-click is the right behavior to do that. Maybe an another icon (->Arrow?) that when clicked takes you to the module (equivalent of edit properties).

Or maybe Ctrl + Left-click? This is the shortcut used in MS Office software to follow a link instead of set the cursor at the clicked position.

2 Likes

For me this behaviour would make sense for every item in every tab of Data, even the hidden nodes under All nodes.

I would appreciate a double-click behaviour. Changing the name is not something I often do (and it happens that I get into name editing accidentally instead of selecting a data item, which is a bit annoying). Ctrl-Left-click can also be a good idea. An arrow icon will probably introduce more clutter in the UI.

I would expect that jumping between modules with this ctrl+left-click shortcut would likely only be used by @joachim and others specifically told about it.

@joachim What have you found frustrating about the current navigation capabilities in Slicer? Which of the toolbar options do you utilize?
image

Do you take advantage of “Favorite Modules” toolbar by customizing it to your needs?
image
image

When inspecting a node in the “Data” module and you are wanting to jump to the associated module, do you already know the module where you are wanting to go? Or do you not know yet and want Slicer to take you to the module that can manipulate that node?

Adding the shortcut to the Data module is just one solution to improving navigation between modules, but I’m curious if there is a better solution to improve behavior so that all users will benefit.

“Edit properties…” switches to a different module and also selects that node in that module, which is particularly useful if there are many nodes in the scene. So, easier module switching (e.g., using favorite modules) is not a complete replacement.

Double-click performs the default action (top-most action in the context menu, displayed in bold) in Windows Explorer and some other software, so there is some precedence for performing different action for the same mouse gesture in a tree of items.

Ctrl + click would be indeed non-discoverable, but adding a hint to the context menu (I think there is a standard way of displaying keyboard shortcut on the right side of menu items) could help.

But double click to rename is an established behavior (both in OSes and Slicer), and we have no idea how many people are using it. We do not have an easy way communicating changing established behaviors (no release notes), so I am reluctant. But we do have these icons that are not used for anything as far as I can tell.

Would it be possible that the double-clicking the name stays as rename, and clicking the icons takes you to the module.

image

1 Like

We provide very detailed, extensive release notes for each stable release. In the meantime documentation is updated in sync with code changes and major features are announced using the feature tag here. Of course, we cannot rely on people reading documentation or release notes, so everything should be possible to discover by just using the software.

Yes, double-click to rename is a common behavior, but for example, in one of the most frequently used software on Windows, the File explorer, double-click opens the file in the default program associated with the file (exact same behavior as open a node in the default module in Slicer). I’m not sure I would want to use double-click for “Edit properties…” just want to point out that there is strong precedent.

Yes, if Slicer was to follow the rename action as in File Explorer on Windows, it would happen on single-left click of a selected item. That’s often 2 subsequent clicks (1 left-click to select, 1 left-click to rename the selection) but not a true double left-click action.

For Qt, double left-click is an established action that edits cells in QTableWidget and QTreeWidget objects. Therefore it would be tough for me to advocate mapping it to a different action such as the “Edit properties…” action which goes to a different module with the node pre-selected.

I would like doubleclick to do Edit Properties. I think clicking twice and jiggling the mouse should trigger rename (or picking rename from the context menu). This behavior would mimic the windows and mac.

For me on windows and mac the rename sequence is: click once to select, click and second time and move the mouse. I believe the movement is required in order to minimize mis-interpretation of double clicks as renames.

For me on Windows rename is select with single left-click, followed by single-left click again with no jigging of mouse required.

You’re right, it’s just a delay. But it is a second click, because the item has to be selected first.

Unintentionally renaming can be frustrating (ideally rename an object one and only one time, I guess). I rarely use that toolbar to navigate, instead I click Edit properties… or Ctrl-F for navigation/manipulation. I use the Data module for navigation. So in my case a double-click feature for the Data module would be great.

But this was just a suggestion from me.

I am not sure how double clicking can cause unintentional renaming. The worst it would do, you will initiate an unintentional renaming action, but unless start typing nothing will get renamed.

Actually intentional renaming is not all that uncommon either. Typical use cases would be when cloning a node in which you want to have a meaningful ID or similarly loading the same dataset multiple times into scene etc…

I still like the idea of being able to go to the module that’s associated with data type more directly then right click + edit properties. And you are right that even if you do rename things, you probably do it once in a session, whereas you may need to go back and forth through same modules multiple times. So assigning a common action like double cick to more common use cases make sense.

I use the double-click rename frequently, and if I do then others probably do as well. I imagine it would be quite annoying for about a week (while the movement is still wired in me) that when I double-click the module is switched, and then I have to go back. It is for sure more annoying than the “accidental renaming” that has been mentioned, which only requires another click anywhere else, while the shown GUI does not change at all, nor any renaming happens.

The more OS-like renaming interaction (click wait click) makes sense though, and I don’t remember if I had to get used to double-click rename or it was straightforward immediately - it was a loong time ago - and also don’t know if Qt supports this interaction, but for new users the OS-style rename is probably easier. And then we have double-click free, but I’m not sure yet if I’d go down that road.

I like @muratmaga 's idea about double-clicking the icon. I’m not sure from the top of my head that clicking on that can be handled separately in the Qt model-view scheme, need to check.

Ctrl-left-click also sounds like a good option, and I agree that we could establish some shortcuts and show them in the context menu. Also if someone wants to do Slicer efficiently with hotkeys they check the hotkeys page in the documentation, I think that can be expected from every non-casual user. In a past project I made an infographic with a keyboard with colored keys on it and some text around, and it proved quite handy.

In summary, I like the “double-clicking the icon” idea best, mainly because it would not change current behavior, and those icons are the same as the module icons in most cases, so it is very intuitive to link these identical icons with this “go to corresponting module” action. However I’m not strongly opposed to other alternatives.

Interesting. What type of nodes are you typically editing where you jump to the corresponding module?

There is a signal QAbstractItemView::doubleClicked(const QModelIndex& ) that can be used. Or use QGuiApplication::keyboardModifiers() inside QAbstractItemView::pressed(const QModelIndex& ). I guess.