Ticket #6803 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

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:1 Changed 8 years ago by Russell Taylor

  • Description modified (diff)

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:4 Changed 7 years ago by Russell Taylor

  • Status changed from new to accepted

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

  • Component changed from Mantid to Framework

comment:74 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 7649

Note: See TracTickets for help on using tickets.