Ticket #6803 (closed: fixed)
Workspace notifications should be generated for hidden workspaces
Reported by: | Russell Taylor | Owned by: | Russell Taylor |
---|---|---|---|
Priority: | critical | Milestone: | Release 2.6 |
Component: | Framework | Keywords: | Maintenance |
Cc: | Blocked By: | ||
Blocking: | Tester: | Martyn Gigg |
Description (last modified by Russell Taylor) (diff)
Right now, (some) workspace notifications are not sent out for workspaces that are considered to be 'hidden' (i.e. whose names start with '__'). Worse, they are not blocked if the preference to "Show Invisible Workspaces" has been set - meaning that you get different behaviour depending on whether that is checked or not. This preference should affect nothing more than what is shown in the workspace listing. The signals should go out in all cases - I have plot based on a hidden workspace generated from a custom interface that I want to have update when the workspace changes.
The signals blocking (or not) goes on in DataService.h in Kernel.
This ticket may or may not incorporate work in the MantidDock. That really depends on whether it breaks when the signals are enabled. If not, that might wait for another ticket.
There are already problems there - for example, create a hidden workspace followed by a visible one and the hidden one will appear in the list when when the ‘normal’ one is created.
Something else to think about now or later: hidden workspaces should probably not appear in python calls like mtd.size() and mtd.getObjectNames() and mtd.importAll().
Change History
comment:2 Changed 7 years ago by Russell Taylor
- Priority changed from major to blocker
- Milestone changed from Release 2.5 to Release 2.6
I'm going to tackle this in the maintenance window. The workspace listing is too fragile to tackle now.
comment:3 Changed 7 years ago by Nick Draper
- Priority changed from blocker to critical
- Keywords Maintenance added
comment:5 Changed 7 years ago by Russell Taylor
Re #6803. Greatly improve unit test coverage for DataService.
Some tests fail at the moment due to defects with the class under test.
Changeset: bacd3c8ce1718e4012d894f5d5334068676390ea
comment:6 Changed 7 years ago by Russell Taylor
Re #6803. Don't suppress notifications for hidden objects/workspaces.
This may change the behaviour of the workspace dock, but then it was broken anyway.
Changeset: 960f72600a19cf66c8fb5b666e072f9cedb9c8f6
comment:7 Changed 7 years ago by Russell Taylor
Re #6803. Getter methods for DataService contents exclude hidden.
size(), getObjectNames() & getObjects() exclude hidden objects/workspaces. This will mainly affect corresponding python methods.
Changeset: 8bb0d7cd7bd29fe095ec819a7f5f5e697b54f4ed
comment:8 Changed 7 years ago by Russell Taylor
Re #6803. Fix DataService test.
Changeset: 8c9bf0c0891bea34dba214c56345158151a30cfc
comment:9 Changed 7 years ago by Russell Taylor
Re #6803. Have getter methods depend on 'hidden' settings.
Amend size(), getObjectNames() & getObjects() to include 'hidden' objects if the corresponding ConfigService setting (MantidOptions.InvisibleWorkspaces) is set to true (1).
Changeset: 9ef09e8c31f7d0d194059d41ccf653b4e3f1c1c1
comment:10 Changed 7 years ago by Russell Taylor
Re #6803. Factor out a bunch of repeated boilerplate stuff.
Changeset: da90e0152880a9b9c110438f6a5c82d2774c02af
comment:11 Changed 7 years ago by Russell Taylor
Re #6803. Add tests for 'hidden' WS behaviour.
The ADS is where this functionality is mainly (only?) used, so these tests have been added to make sure the methods are not overridden.
Changeset: 7292e5e4ac97371b7b5f898998cb66f2c76902d6
comment:12 Changed 7 years ago by Russell Taylor
Re #6803 Remove entirely unused code.
Changeset: b31158617d308089ee0a9e5f3fb9be7c8bab9a29
comment:13 Changed 7 years ago by Russell Taylor
Re #6803. Add method that always includes hidden objects.
Changeset: 855b633e374a4fc50b97698bdb0e8d61c43140b2
comment:14 Changed 7 years ago by Russell Taylor
Re #6803. Remove call to removed method in test code.
Changeset: d2ccb54a6d8b847868064c47430723cd001df4c2
comment:15 Changed 7 years ago by Russell Taylor
Re #6803. Remove handling of hidden workspaces.
This is not redundant as it's already been dealt with down in the Framework code.
Changeset: 6b5c9fecafb51dda52f5320655def4b4b1646e32
comment:16 Changed 7 years ago by Russell Taylor
Re #6803. Lean on DataService handling of hidden workspaces.
But retain the ability for an individual client of the widget to choose whether hidden workspaces should be displayed or not.
Changeset: 513c92d6ce95fdf4559c54389e820092590c8c1f
comment:17 Changed 7 years ago by Russell Taylor
Re #6803. Hidden workspaces should not be shown by default.
Changeset: ea80a4e76bd7fd12aca22e68dcb3031df4564ac1
comment:18 Changed 7 years ago by Russell Taylor
Re #6803. Greatly improve unit test coverage for DataService.
Some tests fail at the moment due to defects with the class under test.
Changeset: bacd3c8ce1718e4012d894f5d5334068676390ea
comment:19 Changed 7 years ago by Russell Taylor
Re #6803. Don't suppress notifications for hidden objects/workspaces.
This may change the behaviour of the workspace dock, but then it was broken anyway.
Changeset: 960f72600a19cf66c8fb5b666e072f9cedb9c8f6
comment:20 Changed 7 years ago by Russell Taylor
Re #6803. Getter methods for DataService contents exclude hidden.
size(), getObjectNames() & getObjects() exclude hidden objects/workspaces. This will mainly affect corresponding python methods.
Changeset: 8bb0d7cd7bd29fe095ec819a7f5f5e697b54f4ed
comment:21 Changed 7 years ago by Russell Taylor
Re #6803. Fix DataService test.
Changeset: 8c9bf0c0891bea34dba214c56345158151a30cfc
comment:22 Changed 7 years ago by Russell Taylor
Re #6803. Have getter methods depend on 'hidden' settings.
Amend size(), getObjectNames() & getObjects() to include 'hidden' objects if the corresponding ConfigService setting (MantidOptions.InvisibleWorkspaces) is set to true (1).
Changeset: 9ef09e8c31f7d0d194059d41ccf653b4e3f1c1c1
comment:23 Changed 7 years ago by Russell Taylor
Re #6803. Factor out a bunch of repeated boilerplate stuff.
Changeset: da90e0152880a9b9c110438f6a5c82d2774c02af
comment:24 Changed 7 years ago by Russell Taylor
Re #6803. Add tests for 'hidden' WS behaviour.
The ADS is where this functionality is mainly (only?) used, so these tests have been added to make sure the methods are not overridden.
Changeset: 7292e5e4ac97371b7b5f898998cb66f2c76902d6
comment:25 Changed 7 years ago by Russell Taylor
Re #6803 Remove entirely unused code.
Changeset: b31158617d308089ee0a9e5f3fb9be7c8bab9a29
comment:26 Changed 7 years ago by Russell Taylor
Re #6803. Add method that always includes hidden objects.
Changeset: 855b633e374a4fc50b97698bdb0e8d61c43140b2
comment:27 Changed 7 years ago by Russell Taylor
Re #6803. Remove call to removed method in test code.
Changeset: d2ccb54a6d8b847868064c47430723cd001df4c2
comment:28 Changed 7 years ago by Russell Taylor
Re #6803. Remove handling of hidden workspaces.
This is not redundant as it's already been dealt with down in the Framework code.
Changeset: 6b5c9fecafb51dda52f5320655def4b4b1646e32
comment:29 Changed 7 years ago by Russell Taylor
Re #6803. Lean on DataService handling of hidden workspaces.
But retain the ability for an individual client of the widget to choose whether hidden workspaces should be displayed or not.
Changeset: 513c92d6ce95fdf4559c54389e820092590c8c1f
comment:30 Changed 7 years ago by Russell Taylor
Re #6803. Hidden workspaces should not be shown by default.
Changeset: ea80a4e76bd7fd12aca22e68dcb3031df4564ac1
comment:31 Changed 7 years ago by Russell Taylor
- Status changed from accepted to verify
- Resolution set to fixed
Things should behave much better now. The tested should check the items listed below.
The things that should have changed:
- Plots etc. based on hidden workspaces will update if the workspace changes, irrespective of whether the 'Show Hidden Workspaces' option is on or off.
- The inclusion or not of hidden workspaces in the python commands mtd.size(), mtd.getObjectNames() & mtd.importAll() should depend on the above setting.
- Test coverage is better.
Things that should not have changed:
- The display of hidden workspaces in the MantidPlot workspace listing should depend on the setting. Actually, I think things have got better here because the bug mentioned in the ticket description is gone. Presumably the findAbandonedWorkspaces hack is doing a better job now based on my changes in the Framework.
- Combo-boxes listing workspaces in algorithm dialogs and interfaces should respect the setting as well.
comment:32 Changed 7 years ago by Martyn Gigg
- Status changed from verify to verifying
- Tester set to Martyn Gigg
comment:33 Changed 7 years ago by Martyn Gigg
- Status changed from verifying to closed
Tested:
- Plot now updating works as advertised;
- The algorithm boxes correctly respect the flag
- The Python commands also respect the flag. This did find a bug with mtd.importAll that is unrelated so has been raised in another ticket: #7076
- The dock is now much improved and the behaviour w.r.t to hidden workspaces is as expected.
comment:34 Changed 7 years ago by Russell Taylor
Re #6803. Greatly improve unit test coverage for DataService.
Some tests fail at the moment due to defects with the class under test.
Changeset: bacd3c8ce1718e4012d894f5d5334068676390ea
comment:35 Changed 7 years ago by Russell Taylor
Re #6803. Don't suppress notifications for hidden objects/workspaces.
This may change the behaviour of the workspace dock, but then it was broken anyway.
Changeset: 960f72600a19cf66c8fb5b666e072f9cedb9c8f6
comment:36 Changed 7 years ago by Russell Taylor
Re #6803. Getter methods for DataService contents exclude hidden.
size(), getObjectNames() & getObjects() exclude hidden objects/workspaces. This will mainly affect corresponding python methods.
Changeset: 8bb0d7cd7bd29fe095ec819a7f5f5e697b54f4ed
comment:37 Changed 7 years ago by Russell Taylor
Re #6803. Fix DataService test.
Changeset: 8c9bf0c0891bea34dba214c56345158151a30cfc
comment:38 Changed 7 years ago by Russell Taylor
Re #6803. Have getter methods depend on 'hidden' settings.
Amend size(), getObjectNames() & getObjects() to include 'hidden' objects if the corresponding ConfigService setting (MantidOptions.InvisibleWorkspaces) is set to true (1).
Changeset: 9ef09e8c31f7d0d194059d41ccf653b4e3f1c1c1
comment:39 Changed 7 years ago by Russell Taylor
Re #6803. Factor out a bunch of repeated boilerplate stuff.
Changeset: da90e0152880a9b9c110438f6a5c82d2774c02af
comment:40 Changed 7 years ago by Russell Taylor
Re #6803. Add tests for 'hidden' WS behaviour.
The ADS is where this functionality is mainly (only?) used, so these tests have been added to make sure the methods are not overridden.
Changeset: 7292e5e4ac97371b7b5f898998cb66f2c76902d6
comment:41 Changed 7 years ago by Russell Taylor
Re #6803 Remove entirely unused code.
Changeset: b31158617d308089ee0a9e5f3fb9be7c8bab9a29
comment:42 Changed 7 years ago by Russell Taylor
Re #6803. Add method that always includes hidden objects.
Changeset: 855b633e374a4fc50b97698bdb0e8d61c43140b2
comment:43 Changed 7 years ago by Russell Taylor
Re #6803. Remove call to removed method in test code.
Changeset: d2ccb54a6d8b847868064c47430723cd001df4c2
comment:44 Changed 7 years ago by Russell Taylor
Re #6803. Remove handling of hidden workspaces.
This is not redundant as it's already been dealt with down in the Framework code.
Changeset: 6b5c9fecafb51dda52f5320655def4b4b1646e32
comment:45 Changed 7 years ago by Russell Taylor
Re #6803. Lean on DataService handling of hidden workspaces.
But retain the ability for an individual client of the widget to choose whether hidden workspaces should be displayed or not.
Changeset: 513c92d6ce95fdf4559c54389e820092590c8c1f
comment:46 Changed 7 years ago by Russell Taylor
Re #6803. Hidden workspaces should not be shown by default.
Changeset: ea80a4e76bd7fd12aca22e68dcb3031df4564ac1
comment:47 Changed 7 years ago by Russell Taylor
Re #6803. Greatly improve unit test coverage for DataService.
Some tests fail at the moment due to defects with the class under test.
Changeset: bacd3c8ce1718e4012d894f5d5334068676390ea
comment:48 Changed 7 years ago by Russell Taylor
Re #6803. Don't suppress notifications for hidden objects/workspaces.
This may change the behaviour of the workspace dock, but then it was broken anyway.
Changeset: 960f72600a19cf66c8fb5b666e072f9cedb9c8f6
comment:49 Changed 7 years ago by Russell Taylor
Re #6803. Getter methods for DataService contents exclude hidden.
size(), getObjectNames() & getObjects() exclude hidden objects/workspaces. This will mainly affect corresponding python methods.
Changeset: 8bb0d7cd7bd29fe095ec819a7f5f5e697b54f4ed
comment:50 Changed 7 years ago by Russell Taylor
Re #6803. Fix DataService test.
Changeset: 8c9bf0c0891bea34dba214c56345158151a30cfc
comment:51 Changed 7 years ago by Russell Taylor
Re #6803. Have getter methods depend on 'hidden' settings.
Amend size(), getObjectNames() & getObjects() to include 'hidden' objects if the corresponding ConfigService setting (MantidOptions.InvisibleWorkspaces) is set to true (1).
Changeset: 9ef09e8c31f7d0d194059d41ccf653b4e3f1c1c1
comment:52 Changed 7 years ago by Russell Taylor
Re #6803. Factor out a bunch of repeated boilerplate stuff.
Changeset: da90e0152880a9b9c110438f6a5c82d2774c02af
comment:53 Changed 7 years ago by Russell Taylor
Re #6803. Add tests for 'hidden' WS behaviour.
The ADS is where this functionality is mainly (only?) used, so these tests have been added to make sure the methods are not overridden.
Changeset: 7292e5e4ac97371b7b5f898998cb66f2c76902d6
comment:54 Changed 7 years ago by Russell Taylor
Re #6803 Remove entirely unused code.
Changeset: b31158617d308089ee0a9e5f3fb9be7c8bab9a29
comment:55 Changed 7 years ago by Russell Taylor
Re #6803. Add method that always includes hidden objects.
Changeset: 855b633e374a4fc50b97698bdb0e8d61c43140b2
comment:56 Changed 7 years ago by Russell Taylor
Re #6803. Remove call to removed method in test code.
Changeset: d2ccb54a6d8b847868064c47430723cd001df4c2
comment:57 Changed 7 years ago by Russell Taylor
Re #6803. Remove handling of hidden workspaces.
This is not redundant as it's already been dealt with down in the Framework code.
Changeset: 6b5c9fecafb51dda52f5320655def4b4b1646e32
comment:58 Changed 7 years ago by Russell Taylor
Re #6803. Lean on DataService handling of hidden workspaces.
But retain the ability for an individual client of the widget to choose whether hidden workspaces should be displayed or not.
Changeset: 513c92d6ce95fdf4559c54389e820092590c8c1f
comment:59 Changed 7 years ago by Russell Taylor
Re #6803. Hidden workspaces should not be shown by default.
Changeset: ea80a4e76bd7fd12aca22e68dcb3031df4564ac1
comment:60 Changed 7 years ago by Russell Taylor
Re #6803. Greatly improve unit test coverage for DataService.
Some tests fail at the moment due to defects with the class under test.
Changeset: bacd3c8ce1718e4012d894f5d5334068676390ea
comment:61 Changed 7 years ago by Russell Taylor
Re #6803. Don't suppress notifications for hidden objects/workspaces.
This may change the behaviour of the workspace dock, but then it was broken anyway.
Changeset: 960f72600a19cf66c8fb5b666e072f9cedb9c8f6
comment:62 Changed 7 years ago by Russell Taylor
Re #6803. Getter methods for DataService contents exclude hidden.
size(), getObjectNames() & getObjects() exclude hidden objects/workspaces. This will mainly affect corresponding python methods.
Changeset: 8bb0d7cd7bd29fe095ec819a7f5f5e697b54f4ed
comment:63 Changed 7 years ago by Russell Taylor
Re #6803. Fix DataService test.
Changeset: 8c9bf0c0891bea34dba214c56345158151a30cfc
comment:64 Changed 7 years ago by Russell Taylor
Re #6803. Have getter methods depend on 'hidden' settings.
Amend size(), getObjectNames() & getObjects() to include 'hidden' objects if the corresponding ConfigService setting (MantidOptions.InvisibleWorkspaces) is set to true (1).
Changeset: 9ef09e8c31f7d0d194059d41ccf653b4e3f1c1c1
comment:65 Changed 7 years ago by Russell Taylor
Re #6803. Factor out a bunch of repeated boilerplate stuff.
Changeset: da90e0152880a9b9c110438f6a5c82d2774c02af
comment:66 Changed 7 years ago by Russell Taylor
Re #6803. Add tests for 'hidden' WS behaviour.
The ADS is where this functionality is mainly (only?) used, so these tests have been added to make sure the methods are not overridden.
Changeset: 7292e5e4ac97371b7b5f898998cb66f2c76902d6
comment:67 Changed 7 years ago by Russell Taylor
Re #6803 Remove entirely unused code.
Changeset: b31158617d308089ee0a9e5f3fb9be7c8bab9a29
comment:68 Changed 7 years ago by Russell Taylor
Re #6803. Add method that always includes hidden objects.
Changeset: 855b633e374a4fc50b97698bdb0e8d61c43140b2
comment:69 Changed 7 years ago by Russell Taylor
Re #6803. Remove call to removed method in test code.
Changeset: d2ccb54a6d8b847868064c47430723cd001df4c2
comment:70 Changed 7 years ago by Russell Taylor
Re #6803. Remove handling of hidden workspaces.
This is not redundant as it's already been dealt with down in the Framework code.
Changeset: 6b5c9fecafb51dda52f5320655def4b4b1646e32
comment:71 Changed 7 years ago by Russell Taylor
Re #6803. Lean on DataService handling of hidden workspaces.
But retain the ability for an individual client of the widget to choose whether hidden workspaces should be displayed or not.
Changeset: 513c92d6ce95fdf4559c54389e820092590c8c1f
comment:72 Changed 7 years ago by Russell Taylor
Re #6803. Hidden workspaces should not be shown by default.
Changeset: ea80a4e76bd7fd12aca22e68dcb3031df4564ac1
comment:74 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 7649