diff --git a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_presenter.py b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_presenter.py index a17f95fe41f7ca9b1ffe0c0da6c46d2af43fa163..a1ced72bdcc739ffe51893091afbd5c641b296b4 100644 --- a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_presenter.py +++ b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_presenter.py @@ -48,6 +48,8 @@ class GroupingTabPresenter(object): self.guessAlphaObserver = GroupingTabPresenter.GuessAlphaObserver(self) self.pairing_table_widget.guessAlphaNotifier.add_subscriber(self.guessAlphaObserver) + self.update_thread = self.create_update_thread() + def show(self): self._view.show() @@ -129,8 +131,6 @@ class GroupingTabPresenter(object): self._model.show_all_groups_and_pairs() def handle_update_all_clicked(self): - - self.update_thread = self.create_update_thread() self.update_thread.threadWrapperSetUp(self.disable_editing, self.enable_editing, self._view.display_warning_box) diff --git a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_view.py b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_view.py index 32d990573105fd27dd47c7ebb6af174071ee7ba2..094eb5923b92cf4fdc223a1d894d0a333042d79c 100644 --- a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_view.py +++ b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_view.py @@ -67,10 +67,8 @@ class GroupingTabView(QtGui.QWidget): self.vertical_layout.setObjectName("verticalLayout") self.vertical_layout.addItem(self.horizontal_layout) self.vertical_layout.addItem(self.horizontal_layout_description) - if self._grouping_table: - self.vertical_layout.addWidget(self._grouping_table) - if self._pairing_table: - self.vertical_layout.addWidget(self._pairing_table) + self.vertical_layout.addWidget(self._grouping_table) + self.vertical_layout.addWidget(self._pairing_table) self.vertical_layout.addItem(self.horizontal_layout_base) self.setLayout(self.vertical_layout) diff --git a/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_presenter.py b/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_presenter.py index 6f559cc9a14ca9dea567b966240aacef2a29ef13..3fe86fa99343ada0a5bfdfaddb334c9bf82c77f7 100644 --- a/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_presenter.py +++ b/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_presenter.py @@ -6,6 +6,7 @@ from Muon.GUI.Common.muon_pair import MuonPair from Muon.GUI.Common.utilities.run_string_utils import valid_name_regex, valid_alpha_regex from Muon.GUI.Common.observer_pattern import Observable +pair_columns = ['pair_name', 'group_1', 'group_2', 'alpha'] class PairingTablePresenter(object): @@ -54,15 +55,15 @@ class PairingTablePresenter(object): table = self._view.get_table_contents() changed_item = table[row][col] update_model = True - if col == 0 and not self.validate_pair_name(changed_item): + if pair_columns[col] == 'pair_name' and not self.validate_pair_name(changed_item): update_model = False - if col == 1: - if changed_item == self._view.get_table_item_text(row, 2): - table[row][2] = self._model.pairs[row].forward_group - if col == 2: - if changed_item == self._view.get_table_item_text(row, 1): - table[row][1] = self._model.pairs[row].backward_group - if col == 3: + if pair_columns[col] == 'group_1': + if changed_item == self._view.get_table_item_text(row, pair_columns.index('group_2')): + table[row][pair_columns.index('group_2')] = self._model.pairs[row].forward_group + if pair_columns[col] == 'group_2': + if changed_item == self._view.get_table_item_text(row, pair_columns.index('group_1')): + table[row][pair_columns.index('group_1')] = self._model.pairs[row].backward_group + if pair_columns[col] == 'alpha': if not self.validate_alpha(changed_item): update_model = False else: diff --git a/scripts/test/Muon/grouping_tab/grouping_tab_presenter_test.py b/scripts/test/Muon/grouping_tab/grouping_tab_presenter_test.py index 29dfd74fd746f3b8da998ed2832eea723af3e1ba..bb604039d34f67e44d70d972bc752d105f270c5b 100644 --- a/scripts/test/Muon/grouping_tab/grouping_tab_presenter_test.py +++ b/scripts/test/Muon/grouping_tab/grouping_tab_presenter_test.py @@ -68,6 +68,7 @@ class GroupingTabPresenterTest(unittest.TestCase): # TESTS # ------------------------------------------------------------------------------------------------------------------ def test_context_menu_add_pair_adds_pair_if_two_groups_selected(self): + self.assertEqual(self.pairing_table_view.num_rows(), 2) self.grouping_table_view._get_selected_row_indices = mock.Mock(return_value=[0, 1]) self.grouping_table_view.contextMenuEvent(0) self.grouping_table_view.add_pair_action.triggered.emit(True) @@ -153,11 +154,13 @@ class GroupingTabPresenterTest(unittest.TestCase): self.assertEqual(mock_save.call_args[0][-1], "grouping.xml") def test_update_all_calculates_groups_and_pairs(self): - self.presenter.thread_manager = mock.MagicMock() + self.presenter.update_thread = mock.MagicMock() self.view.update_button.clicked.emit(True) - self.presenter.thread_manager.process.assert_called_once_with(self.presenter.listener, - self.presenter.calculate_all_data, 0, [1]) + self.presenter.update_thread.threadWrapperSetUp.assert_called_once_with(self.presenter.disable_editing, + self.presenter.enable_editing, + self.view.display_warning_box) + self.presenter.update_thread.start.assert_called_once_with() def test_removing_group_removes_linked_pairs(self): self.add_three_groups()