From 9eaf51b96a494bf52dbc5f986ceffae82f68170e Mon Sep 17 00:00:00 2001 From: Matthew Andrew <matthew.andrew@stfc.ac.uk> Date: Fri, 25 Jan 2019 16:20:50 +0000 Subject: [PATCH] Updated identical group check to switch groups Re #23642 --- .../grouping_tab_widget_model.py | 4 ++-- .../pairing_table_widget_model.py | 2 +- .../pairing_table_widget_presenter.py | 14 ++++++++------ .../pairing_table_group_selector_test.py | 6 +++--- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_model.py b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_model.py index 414625c0876..2dfa33c01e6 100644 --- a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_model.py +++ b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_model.py @@ -32,11 +32,11 @@ class GroupingTabModel(object): @property def groups(self): - return self._data.groups.values() + return list(self._data.groups.values()) @property def pairs(self): - return self._data.pairs.values() + return list(self._data.pairs.values()) @property def group_names(self): diff --git a/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_model.py b/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_model.py index 3214cf2b450..be292a1a420 100644 --- a/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_model.py +++ b/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_model.py @@ -10,7 +10,7 @@ class PairingTableModel(object): @property def pairs(self): - return self._data.pairs.values() + return list(self._data.pairs.values()) @property def pair_names(self): 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 af3abdd7a43..6f559cc9a14 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 @@ -51,16 +51,17 @@ class PairingTablePresenter(object): self.guessAlphaNotifier.notify_subscribers([pair_name, group1, group2]) def handle_data_change(self, row, col): - changed_item = self._view.get_table_contents()[row][col] + 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): update_model = False if col == 1: if changed_item == self._view.get_table_item_text(row, 2): - update_model = False + table[row][2] = self._model.pairs[row].forward_group if col == 2: if changed_item == self._view.get_table_item_text(row, 1): - update_model = False + table[row][1] = self._model.pairs[row].backward_group if col == 3: if not self.validate_alpha(changed_item): update_model = False @@ -73,13 +74,14 @@ class PairingTablePresenter(object): self._view.pairing_table.blockSignals(False) if update_model: - self.update_model_from_view() + self.update_model_from_view(table) self.update_view_from_model() self.notify_data_changed() - def update_model_from_view(self): - table = self._view.get_table_contents() + def update_model_from_view(self, table=None): + if not table: + table = self._view.get_table_contents() self._model.clear_pairs() for entry in table: pair = MuonPair(pair_name=str(entry[0]), diff --git a/scripts/test/Muon/grouping_tab/pairing_table_group_selector_test.py b/scripts/test/Muon/grouping_tab/pairing_table_group_selector_test.py index 9817f6bb2bb..22fb69e531b 100644 --- a/scripts/test/Muon/grouping_tab/pairing_table_group_selector_test.py +++ b/scripts/test/Muon/grouping_tab/pairing_table_group_selector_test.py @@ -188,7 +188,7 @@ class GroupSelectorTest(unittest.TestCase): self.assertEqual(self.get_group_1_selector_from_pair(0).currentText(), 'my_group_1') self.assertEqual(self.get_group_2_selector_from_pair(0).currentText(), 'my_group_1') - def test_group_cannot_be_changed_to_match_other_group(self): + def test_group_changed_to_other_group_switches_groups(self): self.add_three_groups_to_model() self.presenter.handle_add_pair_button_clicked() @@ -202,8 +202,8 @@ class GroupSelectorTest(unittest.TestCase): self.assertEqual(self.get_group_1_selector_from_pair(0).count(), 3) self.assertEqual(self.get_group_2_selector_from_pair(0).count(), 3) - self.assertEqual(self.get_group_1_selector_from_pair(0).currentText(), 'my_group_0') - self.assertEqual(self.get_group_2_selector_from_pair(0).currentText(), 'my_group_1') + self.assertEqual(self.get_group_1_selector_from_pair(0).currentText(), 'my_group_1') + self.assertEqual(self.get_group_2_selector_from_pair(0).currentText(), 'my_group_0') -- GitLab