Ticket #7614 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

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:1 Changed 7 years ago by Nick Draper

  • Owner changed from Martyn Gigg to Peter Parker

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

Last edited 7 years ago by Peter Parker (previous) (diff)

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:16 Changed 7 years ago by Nick Draper

  • Status changed from verify to verifying

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

Note: See TracTickets for help on using tickets.