Ticket #7614 (closed: fixed)
Implement categories for interfaces
Reported by: | Martyn Gigg | Owned by: | Peter Parker |
---|---|---|---|
Priority: | critical | Milestone: | Release 3.0 |
Component: | GUI | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: | Nick Draper |
Description
The Interfaces menu is becoming a little unwieldy. Add category support, similar to algorithms, where you then select only the categories you care about.
Change History
comment:2 Changed 7 years ago by Peter Parker
- Status changed from new to inprogress
Refs #7614 - Disallow customising of the "Interfaces" menu.
The menu is now handled seperately to the user's customised menus, which should otherwise work exactly as they did before.
Changeset: 99f1bce813102dd457cb48da4ab5d12bdd7a38aa
comment:3 Changed 7 years ago by Peter Parker
Refs #7614 - Allow only one instance of each USW interface.
Ensure that there is only ever at most one instance of each kind of UserSubWindow interface open.
Note that this does NOT cover PyQt interfaces, which have to be policed from inside the various Python scripts themselves.
Changeset: 55e2de1be2520b2eebf654a6e06ecca9d5f5a9c9
comment:4 Changed 7 years ago by Peter Parker
Refs #7614 - Group interfaces into submenus by category.
UserSubWindow interfaces will no longer compile unless they define a static categoriesInfo() function. PyQt interfaces define their categories in the Mantid properties file. If the categories string provided by an interface (UserSubWindow or PyQt) is empty, then the interface will be put in an "Uncategorised" submenu.
Multiple categories per interface are allowed, but nested categories have not been implemented.
We map interface names to categories when setting up. Removed the old pyqt_interfaces list and replaced it with calls to the keys() method of the map instead.
Changeset: 757eb65e7be68a4e34592badbd8ce889df039227
comment:5 Changed 7 years ago by Peter Parker
Refs #7614 - Add "Manage Interface Category" dialog.
Tried to move things around and make the relevant code in ApplicationWindow a bit better.
Removed the ability to add interfaces to custom menus. That dialog is now solely for Adding python scripts.
Changeset: 6ccc7f6f79f0dd4360152fbdb3cb1a22c22fecd4
comment:6 Changed 7 years ago by Peter Parker
Merge branch 'master' into feature/7614_interface_categories
Refs #7614
Conflicts:
Code/Mantid/MantidPlot/src/ApplicationWindow.h
Changeset: 59e4c47561e907b2decb2aa0ff62c49f9d58c5f4
comment:7 Changed 7 years ago by Peter Parker
Merge branch 'feature/7614_interface_categories' into develop
Refs #7614
Conflicts:
Code/Mantid/MantidPlot/src/ApplicationWindow.h
Changeset: fa0da659dd8aed77b41abf02c7637544b6e67b35
comment:8 Changed 7 years ago by Peter Parker
The new Bayes interface is not yet in master, but is partially in develop. The function returning the category names therefore had to be added to the Bayes ticket to ensure that the develop builds could pass:
http://trac.mantidproject.org/mantid/ticket/5421#comment:79
comment:9 Changed 7 years ago by Peter Parker
Refs #7614 - Correct categories for Create MD Workspace.
Changeset: d6187a2aa087013c418200a19137a64391eb0442
comment:10 Changed 7 years ago by Peter Parker
- Status changed from inprogress to verify
- Resolution set to fixed
To Tester:
I changed direction slightly mid-way through this ticket so it might be a good idea to look at the code changes as a whole using git test review rather than looking through the individual changesets.
- Ensure that when loading up the newly built Mantid for the first time that there are not two duplicate "Interfaces" menus; the old one which usually would have been resurrected using QSettings should not appear.
- Try adding/removing interface categories using the dialog accessible at the bottom of the Interfaces menu. Make sure that your changes are reflected in the menu itself, even when you close and then reopen Mantid.
- Make sure that the "Manage Custom Menus..." dialog works as it did previously. I've removed the "Custom Interfaces" list, but users should still be able to construct their own menus and populate them with Python scripts. Note that we don't (and never did) cover the edge case where a user defines a new menu with a name that is already used. Polishing the existing functionality of "Manage Custom Menus..." was beyond the scope of this ticket, and so users creating duplicate menus still run the risk of losing them or their contents.
comment:11 Changed 7 years ago by Nick Draper
- Status changed from verify to verifying
- Tester set to Nick Draper
comment:12 Changed 7 years ago by Nick Draper
- Status changed from verifying to reopened
- Resolution fixed deleted
Merge conflict in ApplicationWindow.h
comment:13 Changed 7 years ago by Peter Parker
- Status changed from reopened to inprogress
Merge branch 'master' into feature/7614_interface_categories
Refs #7614.
Conflicts:
Code/Mantid/MantidPlot/src/ApplicationWindow.h
Changeset: 66f1940f61b6b38017970685dc0546850426d9ec
comment:14 Changed 7 years ago by Peter Parker
Merge branch 'feature/7614_interface_categories' into develop
Refs #7614.
Conflicts:
Code/Mantid/MantidPlot/src/ApplicationWindow.h
Changeset: 5208b69d48a4bac5530f620ae27569ac8f2c3881
comment:15 Changed 7 years ago by Peter Parker
- Status changed from inprogress to verify
- Resolution set to fixed
comment:17 Changed 7 years ago by Nick Draper
Tested, works fine, missing wiki page but Peter is doing that now.
comment:18 Changed 7 years ago by Nick Draper
- Status changed from verifying to closed
Merge remote-tracking branch 'origin/feature/7614_interface_categories'
Full changeset: a829fd697ed3c1814d6ecd9932125508b449bf09
comment:19 Changed 7 years ago by Peter Parker
Created wiki page for Manage Interface Categories, and updated the Manage Custom Menus page.
comment:20 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 8459