View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003844 | Slicer4 | Core: GUI | public | 2014-09-11 11:59 | 2017-06-10 08:51 |
Reporter | pinter | Assigned To | pinter | ||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Product Version | Slicer 4.4.0 | ||||
Target Version | Slicer 4.5.0-1 | Fixed in Version | Slicer 4.5.0-1 | ||
Summary | 0003844: Extension module categories are added on the bottom | ||||
Description | In the past when a user installed an extension, its category was added on the top. I think it makes sense, because Slicer contains a lot of tools that a particular user doesn't want to use, but they install an extension explicitly, because they need those features. There are things in the category list above the extensions that are not needed for sure. Many people don't need Developer tools, Legacy, Testing, Utilities or even Endoscopy. Also, BRAINS has 3 categories! Registration (makes sense, widely used), BRAINS (only the one Label statistics module in it), and Unspecified (only BRAINSDWICleanup in it). It would be nice to make the job of the user slightly easier if those categories went to the top. Please also consolidate the BRAINS categories to one or to other existing categories. | ||||
Additional Information | It would be great if this was addressed for 4.4.1. I can do the implementation if we have a consensus. Thanks! | ||||
Tags | No tags attached. | ||||
Has this been considered unnecessary then? See "Additional information" field. |
|
Note: I will work on consolidating the category for BRAINS Otherwise, to allow user to easily find the installer extension categories and associated modules, you will find some suggestions at the end. First, here is an attempt to describe in more details the current problem: Currently modules provided by freshly installer extensions are either "dispatched" into existing categories or new category are added (alphabetical order). For a user that do not know which category extensions module are associated with, it can be hard to find the module of an extensions. To help the user, we should provide some "clues". There are few options: (1) textual: After installing an extension ... popup a dialog explaining where to find the modules. (2) visual: After clicking on the module menu, user can easily identify the new categories and modules. I think implementing option (2) will be the most helpful for the user. As suggested by Csaba, new categories and modules could be listed after the favourite modules and before the categories. Without extensions installed: ################### AnnotationsDataDataStoreDICOMEditorMarkupsModelsScene ViewsSubject HierarchyTransformsView ControllersVolume RenderingVolumesWelcome to Slicer--------------------WizzardInformaticsRegistration[...]##################### With extensions installed, new categories and modules will be listed at before the builtin categories: ################### AnnotationsDataDataStoreDICOMEditorMarkupsModelsScene ViewsSubject HierarchyTransformsView ControllersVolume RenderingVolumesWelcome to Slicer--------------------SlicerRT--------------------WizzardInformaticsRegistration[...]##################### If an extension adds module to an already existing category (for example Registration), what should we do ? |
|
Thanks for the comment! What did you mean by that the newly added categories are ordered alphabetically? The categories don't seem to be ordered like that to me. I like the idea of adding the extension modules between the main module list and the other categories by a separator. I can work on this part. Good question about extension modules added in existing categories. If a developer specifies an existing category for their extension module, it is a conscious decision, so I think the best we can do is make sure the extension modules are on top within that category. |
|
Just my two cents.
|
|
I implemented the built-in module concept, and the categories defined by external modules appear separately between the top-level modules and the built-in categories in the modules list (see screenshot attached to pull request) What I didn’t implement for this round:
|
|
I just see these comments now. I agree that showing new categories on top is good because they are likely to be used frequently. However, I'm very surprised by Greg's idea of prohibiting extensions from adding modules to existing categories. My assumption is that Slicer is a single product and extensions seamlessly integrate into this product. I don't want to know about how modules are implemented, where they are downloaded from, who developed them. If I'm interested in registration then I would prefer to see all registration features in one place. What do you think? What would be the reasons for quarantining modules that are provided by extensions? |
|
I agree with Andras. If I install an extension that belongs to category X, I expect to find it in that category after it is installed. I am puzzled by Greg's comment as well. |
|
I also think that existing categories should be used when adding new modules through extensions or custom path. I think Greg's comment was about easy access of these modules. This is why my implementation is not fully comprehensive, because it facilitates access only for external modules that have their own new category. Steve's suggestion was an icon on the right side of the module name, similar to Andras' "NEW" postfix. Eventually something like this would be needed. In the meantime, the developer either assigns it to a new category, or trusts that the user finds it without extra pointers. |
|
Agreed.
Makes sense |
|
The difference of opinion is that I do want to know which module comes from an extension. So for me, it is more organized if they are not intermingled. |
|
Greg, what are the reasons you want to know if a module is in the default Slicer installation package or installed by an extension? |
|
When I install any software, I like to easily find and understand what was installed. Using separate menu items is one method to achieve this. Anyway, whatever the group decides is fine with me. |
|
The reason why I want to know if a module comes from an extension is explained in the issue decsription above. I install an extension because I know I'll need those features. As Slicer has more than a hundred built-in modules, it is not obvious what modules the extension added. |
|
@greg: note that listing a module at the top level does not mean it disappears from the menu sections corresponding to the category/categories it is assigned to. As you can see, Editor shows up at the top level, as well as under Segmentation. So if you install a new extension that does some form of registration, you could potentially list it at the top and under Registration. |
|
Fixed in r24594 |
|
Import 2017-06-07 23:51:09: master 8be913c8 2015-10-02 19:44:49 Details Diff |
ENH: Built-in module categories are listed separately in modules list Modules that are loaded from the Slicer build/install tree are marked as built-in, modules from different folders are not built-in. If a non-built-in module adds a category, then it is shown above the built-in categories, divided by a separator. Fixes 0003844 Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Reviewed-by: Andras Lasso <lasso@queensu.ca> Reviewed-by: Andriy Fedorov <fedorov@bwh.harvard.edu> Reviewed-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Reviewed-by: Sharp, Gregory C. <GCSHARP@mgh.harvard.edu> Reviewed-by: Nicole Aucoin <nicole@bwh.harvard.edu> Reviewed-by: Steve Pieper <pieper@isomics.com> From: Csaba Pinter <csaba.pinter@queensu.ca> git-svn-id: http://svn.slicer.org/Slicer4/trunk@24594 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Base/Logic/vtkSlicerApplicationLogic.cxx | Diff File | ||
mod - Base/Logic/vtkSlicerApplicationLogic.h | Diff File | ||
mod - Base/QTCLI/qSlicerCLIExecutableModuleFactory.cxx | Diff File | ||
mod - Base/QTCLI/qSlicerCLILoadableModuleFactory.cxx | Diff File | ||
mod - Base/QTCLI/qSlicerCLIModuleFactoryHelper.cxx | Diff File | ||
mod - Base/QTCLI/qSlicerCLIModuleFactoryHelper.h | Diff File | ||
mod - Base/QTCore/Testing/Cxx/qSlicerUtilsTest1.cxx | Diff File | ||
mod - Base/QTCore/qSlicerAbstractCoreModule.cxx | Diff File | ||
mod - Base/QTCore/qSlicerAbstractCoreModule.h | Diff File | ||
mod - Base/QTCore/qSlicerLoadableModuleFactory.cxx | Diff File | ||
mod - Base/QTCore/qSlicerUtils.cxx | Diff File | ||
mod - Base/QTCore/qSlicerUtils.h | Diff File | ||
mod - Base/QTGUI/qSlicerModulesMenu.cxx | Diff File | ||
mod - Base/QTGUI/qSlicerScriptedLoadableModuleFactory.cxx | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-09-11 11:59 | pinter | New Issue | |
2014-11-01 19:12 | jcfr | Target Version | => Slicer 4.5.0-1 |
2014-11-01 19:12 | jcfr | Target Version | Slicer 4.5.0-1 => Slicer 4.4.1 |
2014-11-01 19:12 | jcfr | Status | new => acknowledged |
2015-01-28 09:40 | pinter | Product Version | Slicer 4.3.1-2 => Slicer 4.4.0 |
2015-01-28 09:40 | pinter | Additional Information Updated | |
2015-09-01 10:32 | jcfr | Target Version | Slicer 4.4.1 => |
2015-09-01 11:02 | pinter | Note Added: 0013252 | |
2015-09-08 06:33 | jcfr | Note Added: 0013259 | |
2015-09-08 11:56 | pinter | Note Added: 0013261 | |
2015-09-10 07:09 | gregsharp | Note Added: 0013268 | |
2015-09-26 18:50 | pinter | Note Added: 0013308 | |
2015-09-26 18:50 | pinter | Status | acknowledged => resolved |
2015-09-26 18:50 | pinter | Fixed in Version | => Slicer 4.5.0-1 |
2015-09-26 18:50 | pinter | Resolution | open => fixed |
2015-09-26 18:50 | pinter | Assigned To | => pinter |
2015-09-27 17:34 | lassoan | Note Added: 0013311 | |
2015-09-27 18:27 | fedorov | Note Added: 0013312 | |
2015-09-28 05:28 | pinter | Note Added: 0013314 | |
2015-09-28 06:00 | jcfr | Note Added: 0013315 | |
2015-09-28 07:04 | gregsharp | Note Added: 0013316 | |
2015-09-28 07:16 | lassoan | Note Added: 0013317 | |
2015-09-28 08:18 | gregsharp | Note Added: 0013318 | |
2015-09-28 08:24 | pinter | Note Added: 0013319 | |
2015-09-28 08:51 | fedorov | Note Added: 0013320 | |
2015-10-02 16:21 | jcfr | Note Added: 0013333 | |
2015-10-02 16:21 | jcfr | Status | resolved => closed |
2015-10-02 16:21 | jcfr | Target Version | => Slicer 4.5.0-1 |
2017-06-10 08:51 | jcfr | Changeset attached | => Slicer master 8be913c8 |