Ticket #6805 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

Refactor the SelectionNotificationService class to not use the DataService class

Reported by: Russell Taylor Owned by: Dennis Mikkelson
Priority: critical Milestone: Release 2.6
Component: Framework Keywords: Maintenance
Cc: mikkelsond@… Blocked By:
Blocking: Tester: Russell Taylor

Description (last modified by Russell Taylor) (diff)

As it's only the notifications that are needed, this shouldn't be relying on the entire DataService. Refactor to just include what's required using whatever notification method works best (Poco or Qt signals/slots).

Change History

comment:1 Changed 7 years ago by Nick Draper

  • Keywords Maintenance added
  • Priority changed from blocker to critical

comment:2 Changed 7 years ago by Nick Draper

  • Keywords Maintenance removed
  • Priority changed from critical to major

comment:3 Changed 7 years ago by Russell Taylor

  • Blocked By 6797 removed

(In #6797) Still an aspiration, but not as urgent as previously thought.
(The SelectionNotificationService class introduced in #6758 turned out to just want to use the notification part of DataService, not store anything at all!)

comment:4 Changed 7 years ago by Russell Taylor

  • Keywords Maintenance added
  • Cc mikkelsond@… added
  • Priority changed from major to critical
  • Description modified (diff)
  • Summary changed from Remove the SelectionNotificationService class and use the upgraded AnalysisDataService instead to Refactor the SelectionNotificationService class to not use the DataService class

comment:5 Changed 7 years ago by Dennis Mikkelson

  • Owner changed from Ruth Mikkelson to Dennis Mikkelson
  • Status changed from new to assigned

comment:6 Changed 7 years ago by Dennis Mikkelson

  • Status changed from assigned to accepted

comment:7 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Initial version of new Qt based SelectionNotificationService class.

refs #6805

Changeset: 800ab533816582006a314e5100bec3ad8eaa6144

comment:8 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Adding SelectionNotificationFiles

refs #6805

Changeset: 441e753e786be6077c30da2320b441badac78aba

comment:9 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added basic test that the singleton can be accessed and the method to emit the signal can be called.

refs #6805

Changeset: 34604961108fa51fa99c30bc0dfbedf6fd01276d

comment:10 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Initial version of new Qt based SelectionNotificationService class.

refs #6805

Changeset: 800ab533816582006a314e5100bec3ad8eaa6144

comment:11 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Adding SelectionNotificationFiles

refs #6805

Changeset: 441e753e786be6077c30da2320b441badac78aba

comment:12 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added basic test that the singleton can be accessed and the method to emit the signal can be called.

refs #6805

Changeset: 34604961108fa51fa99c30bc0dfbedf6fd01276d

comment:13 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Commenting out test, due to link error on windows: SelectionNotificationServiceTest.obj : error LNK2019: unresolved external symbol "public: static struct QMetaObject const MantidQt::API::SelectionNotificationServiceImpl::staticMetaObject

I don't have access to a windows development system to fix this.

refs #6805

Changeset: 18889adb8f428b3128c089c1830aa66a92083f63

comment:14 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Commenting out test, due to link error on windows: SelectionNotificationServiceTest.obj : error LNK2019: unresolved external symbol "public: static struct QMetaObject const MantidQt::API::SelectionNotificationServiceImpl::staticMetaObject

I don't have access to a windows development system to fix this.

refs #6805

Changeset: 18889adb8f428b3128c089c1830aa66a92083f63

comment:15 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added bool parameter to message, to indicate whether the Q-vector is in lab or sample coordinates.

refs #6805

Changeset: 7e66cbc6059c037e376df3306a2d54aecf04f3a9

comment:16 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added bool parameter to message, to indicate whether the Q-vector is in lab or sample coordinates.

refs #6805

Changeset: 7e66cbc6059c037e376df3306a2d54aecf04f3a9

comment:17 Changed 7 years ago by Ruth Mikkelson

Refs #6805 Incorporated boolean for selected Q type(lab/sample)

Also, more info will now be given based on peak in workspace closes to given peak.

Changeset: 9753283a3de2c5fb919159f49010e405931d476d

comment:18 Changed 7 years ago by Ruth Mikkelson

Refs #6805 Incorporated boolean for selected Q type(lab/sample)

Also, more info will now be given based on peak in workspace closes to given peak.

Changeset: 9753283a3de2c5fb919159f49010e405931d476d

comment:19 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Removed original SelectionNotificationService .h, .cpp and Test files from Framework/API/, since they have been replaced by similarly named files using Qt signals and slots in MantidQt/API/.

refs #6805

Changeset: 59f94ff21a3b05adc3a7a926bd9a63d05ee08891

comment:20 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Removed original SelectionNotificationService .h, .cpp and Test files from Framework/API/, since they have been replaced by similarly named files using Qt signals and slots in MantidQt/API/.

refs #6805

Changeset: 59f94ff21a3b05adc3a7a926bd9a63d05ee08891

comment:21 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed error in MantidQt/API/CMakeLists.txt, as suggested by Russell. Added basic test of SelectionNotificationService.

refs #6805 _

Changeset: ec7da5bbcc5bea72fb0ec800117b44afed516590

comment:22 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed error in MantidQt/API/CMakeLists.txt, as suggested by Russell. Added basic test of SelectionNotificationService.

refs #6805 _

Changeset: ec7da5bbcc5bea72fb0ec800117b44afed516590

comment:23 Changed 7 years ago by Dennis Mikkelson

  • Status changed from accepted to verify
  • Resolution set to fixed

NOTES TO TESTER:

  1. The new SelectionNotificationService files using Qt signals/slots are:

.../MantidQt/API/inc/MantidQtAPI/SelectionNotificationService.h

.../MantidQt/API/src/SelectionNotificationService.cpp

.../MantidQt/API/test/SelectionNotificationServiceTest.h

  1. They are currently only used in a loop back test in MantidEV:

.../MantidQt/CustomInterfaces/src/MantidEV.cpp, lines 188 and 1064

  1. As shown by the lines in MantidEV, a class wanting to select a location in reciprocal space just has to call a method on the singleton as:

SelectionNotificationService::Instance().sendQPointSelection()

  1. A class that needs to know about a selected location just needs to have an appropriate slot and connect to the QPointSelection_signal.
  1. The original SelectionNotificationService files in .../Framework/API, which derived from DataService, have been removed from the source tree.

comment:24 Changed 7 years ago by Russell Taylor

  • Status changed from verify to verifying
  • Tester set to Russell Taylor

comment:25 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed doxygen warning.

refs #6805 _

Changeset: fbed8529ecba9a27ea93b92aecf6b03dc9005d02

comment:26 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Initial version of new Qt based SelectionNotificationService class.

refs #6805

Changeset: 800ab533816582006a314e5100bec3ad8eaa6144

comment:27 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Adding SelectionNotificationFiles

refs #6805

Changeset: 441e753e786be6077c30da2320b441badac78aba

comment:28 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added basic test that the singleton can be accessed and the method to emit the signal can be called.

refs #6805

Changeset: 34604961108fa51fa99c30bc0dfbedf6fd01276d

comment:29 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Commenting out test, due to link error on windows: SelectionNotificationServiceTest.obj : error LNK2019: unresolved external symbol "public: static struct QMetaObject const MantidQt::API::SelectionNotificationServiceImpl::staticMetaObject

I don't have access to a windows development system to fix this.

refs #6805

Changeset: 18889adb8f428b3128c089c1830aa66a92083f63

comment:30 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added bool parameter to message, to indicate whether the Q-vector is in lab or sample coordinates.

refs #6805

Changeset: 7e66cbc6059c037e376df3306a2d54aecf04f3a9

comment:31 Changed 7 years ago by Ruth Mikkelson

Refs #6805 Incorporated boolean for selected Q type(lab/sample)

Also, more info will now be given based on peak in workspace closes to given peak.

Changeset: 9753283a3de2c5fb919159f49010e405931d476d

comment:32 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Removed original SelectionNotificationService .h, .cpp and Test files from Framework/API/, since they have been replaced by similarly named files using Qt signals and slots in MantidQt/API/.

refs #6805

Changeset: 59f94ff21a3b05adc3a7a926bd9a63d05ee08891

comment:33 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed error in MantidQt/API/CMakeLists.txt, as suggested by Russell. Added basic test of SelectionNotificationService.

refs #6805 _

Changeset: ec7da5bbcc5bea72fb0ec800117b44afed516590

comment:34 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed doxygen warning.

refs #6805 _

Changeset: fbed8529ecba9a27ea93b92aecf6b03dc9005d02

comment:35 Changed 7 years ago by Russell Taylor

  • Status changed from verifying to closed

Tested mainly by inspection, but also by:

  1. Bring up MantidEV (Interfaces->SCD_Event_Data_Reduction)
  2. Switch to the second tab, "Find Peaks"
  3. Choose a peaks workspace name, and select Load ISAW Peaks. TOPAZ_3007 from the AutoTestData directory will work. Press Apply to actually load the peaks file into the named workspace.
  4. Switch to the last tab, "Point Info"
  5. Enter some Q-values, like 1,2,3 and press Show Info. That will cause the signal to be emitted and a corresponding slot to be called to show data about that point in Q, using Lab coordinates. The sequence number is the number of the nearest peak. If you use the Q lab coordinates of an actual peak, such as 2.68,1.58,3.71 for peak 1 (at index 0) you will get more information about that actual peak.

comment:36 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed doxygen warning.

refs #6805 _

Changeset: fbed8529ecba9a27ea93b92aecf6b03dc9005d02

comment:37 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Initial version of new Qt based SelectionNotificationService class.

refs #6805

Changeset: 800ab533816582006a314e5100bec3ad8eaa6144

comment:38 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Adding SelectionNotificationFiles

refs #6805

Changeset: 441e753e786be6077c30da2320b441badac78aba

comment:39 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added basic test that the singleton can be accessed and the method to emit the signal can be called.

refs #6805

Changeset: 34604961108fa51fa99c30bc0dfbedf6fd01276d

comment:40 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Commenting out test, due to link error on windows: SelectionNotificationServiceTest.obj : error LNK2019: unresolved external symbol "public: static struct QMetaObject const MantidQt::API::SelectionNotificationServiceImpl::staticMetaObject

I don't have access to a windows development system to fix this.

refs #6805

Changeset: 18889adb8f428b3128c089c1830aa66a92083f63

comment:41 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added bool parameter to message, to indicate whether the Q-vector is in lab or sample coordinates.

refs #6805

Changeset: 7e66cbc6059c037e376df3306a2d54aecf04f3a9

comment:42 Changed 7 years ago by Ruth Mikkelson

Refs #6805 Incorporated boolean for selected Q type(lab/sample)

Also, more info will now be given based on peak in workspace closes to given peak.

Changeset: 9753283a3de2c5fb919159f49010e405931d476d

comment:43 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Removed original SelectionNotificationService .h, .cpp and Test files from Framework/API/, since they have been replaced by similarly named files using Qt signals and slots in MantidQt/API/.

refs #6805

Changeset: 59f94ff21a3b05adc3a7a926bd9a63d05ee08891

comment:44 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed error in MantidQt/API/CMakeLists.txt, as suggested by Russell. Added basic test of SelectionNotificationService.

refs #6805 _

Changeset: ec7da5bbcc5bea72fb0ec800117b44afed516590

comment:45 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed doxygen warning.

refs #6805 _

Changeset: fbed8529ecba9a27ea93b92aecf6b03dc9005d02

comment:46 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Initial version of new Qt based SelectionNotificationService class.

refs #6805

Changeset: 800ab533816582006a314e5100bec3ad8eaa6144

comment:47 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Adding SelectionNotificationFiles

refs #6805

Changeset: 441e753e786be6077c30da2320b441badac78aba

comment:48 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added basic test that the singleton can be accessed and the method to emit the signal can be called.

refs #6805

Changeset: 34604961108fa51fa99c30bc0dfbedf6fd01276d

comment:49 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Commenting out test, due to link error on windows: SelectionNotificationServiceTest.obj : error LNK2019: unresolved external symbol "public: static struct QMetaObject const MantidQt::API::SelectionNotificationServiceImpl::staticMetaObject

I don't have access to a windows development system to fix this.

refs #6805

Changeset: 18889adb8f428b3128c089c1830aa66a92083f63

comment:50 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added bool parameter to message, to indicate whether the Q-vector is in lab or sample coordinates.

refs #6805

Changeset: 7e66cbc6059c037e376df3306a2d54aecf04f3a9

comment:51 Changed 7 years ago by Ruth Mikkelson

Refs #6805 Incorporated boolean for selected Q type(lab/sample)

Also, more info will now be given based on peak in workspace closes to given peak.

Changeset: 9753283a3de2c5fb919159f49010e405931d476d

comment:52 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Removed original SelectionNotificationService .h, .cpp and Test files from Framework/API/, since they have been replaced by similarly named files using Qt signals and slots in MantidQt/API/.

refs #6805

Changeset: 59f94ff21a3b05adc3a7a926bd9a63d05ee08891

comment:53 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed error in MantidQt/API/CMakeLists.txt, as suggested by Russell. Added basic test of SelectionNotificationService.

refs #6805 _

Changeset: ec7da5bbcc5bea72fb0ec800117b44afed516590

comment:54 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed doxygen warning.

refs #6805 _

Changeset: fbed8529ecba9a27ea93b92aecf6b03dc9005d02

comment:55 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Initial version of new Qt based SelectionNotificationService class.

refs #6805

Changeset: 800ab533816582006a314e5100bec3ad8eaa6144

comment:56 Changed 7 years ago by Dennis Mikkelson

6805 Refactor the SelectionNotificationService

Adding SelectionNotificationFiles

refs #6805

Changeset: 441e753e786be6077c30da2320b441badac78aba

comment:57 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added basic test that the singleton can be accessed and the method to emit the signal can be called.

refs #6805

Changeset: 34604961108fa51fa99c30bc0dfbedf6fd01276d

comment:58 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Commenting out test, due to link error on windows: SelectionNotificationServiceTest.obj : error LNK2019: unresolved external symbol "public: static struct QMetaObject const MantidQt::API::SelectionNotificationServiceImpl::staticMetaObject

I don't have access to a windows development system to fix this.

refs #6805

Changeset: 18889adb8f428b3128c089c1830aa66a92083f63

comment:59 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Added bool parameter to message, to indicate whether the Q-vector is in lab or sample coordinates.

refs #6805

Changeset: 7e66cbc6059c037e376df3306a2d54aecf04f3a9

comment:60 Changed 7 years ago by Ruth Mikkelson

Refs #6805 Incorporated boolean for selected Q type(lab/sample)

Also, more info will now be given based on peak in workspace closes to given peak.

Changeset: 9753283a3de2c5fb919159f49010e405931d476d

comment:61 Changed 7 years ago by Dennis Mikkelson

RE 6805 Refactor SelectionNotificationService class

Removed original SelectionNotificationService .h, .cpp and Test files from Framework/API/, since they have been replaced by similarly named files using Qt signals and slots in MantidQt/API/.

refs #6805

Changeset: 59f94ff21a3b05adc3a7a926bd9a63d05ee08891

comment:62 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed error in MantidQt/API/CMakeLists.txt, as suggested by Russell. Added basic test of SelectionNotificationService.

refs #6805 _

Changeset: ec7da5bbcc5bea72fb0ec800117b44afed516590

comment:63 Changed 7 years ago by Dennis Mikkelson

RE 6805 refactor SelectionNotificationService class

Fixed doxygen warning.

refs #6805 _

Changeset: fbed8529ecba9a27ea93b92aecf6b03dc9005d02

comment:64 Changed 7 years ago by Nick Draper

  • Component changed from Mantid to Framework

comment:65 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 7651

Note: See TracTickets for help on using tickets.