Skip to content

Commit 6e8d153

Browse files
committed
Merge pull request #5605 from markotoplak/fix-table-select-rows
[FIX] OWTable: fix select whole rows regression
1 parent d23e0d1 commit 6e8d153

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

Orange/widgets/data/owtable.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ def _update_variable_labels(self, view):
593593

594594
def _on_show_variable_labels_changed(self):
595595
"""The variable labels (var.attribues) visibility was changed."""
596-
for slot in self._inputs.values():
596+
for slot in self._inputs:
597597
self._update_variable_labels(slot.view)
598598

599599
def _on_distribution_color_changed(self):
@@ -619,7 +619,7 @@ def _on_distribution_color_changed(self):
619619
tab.reset()
620620

621621
def _on_select_rows_changed(self):
622-
for slot in self._inputs.values():
622+
for slot in self._inputs:
623623
selection_model = slot.view.selectionModel()
624624
selection_model.setSelectBlocks(not self.select_rows)
625625
if self.select_rows:

Orange/widgets/data/tests/test_owtable.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def test_reset_select(self):
6060

6161
def _select_data(self):
6262
self.widget.selected_cols = list(range(len(self.data.domain.variables)))
63-
self.widget.selected_rows = list(range(0, len(self.data.domain.variables), 10))
63+
self.widget.selected_rows = list(range(0, len(self.data), 10))
6464
self.widget.set_selection()
6565
return self.widget.selected_rows
6666

@@ -168,6 +168,34 @@ def test_show_distributions(self):
168168
w.grab()
169169
w.controls.show_distributions.toggle()
170170

171+
def test_whole_rows(self):
172+
w = self.widget
173+
self.send_signal(w.Inputs.data, self.data, 0)
174+
self.assertTrue(w.select_rows) # default value
175+
with excepthook_catch():
176+
w.controls.select_rows.toggle()
177+
self.assertFalse(w.select_rows)
178+
w.selected_cols = [0, 1]
179+
w.selected_rows = [0, 1, 2, 3]
180+
w.set_selection()
181+
out = self.get_output(w.Outputs.selected_data)
182+
self.assertEqual(out.domain,
183+
Domain([self.data.domain.attributes[0]], self.data.domain.class_var))
184+
with excepthook_catch():
185+
w.controls.select_rows.toggle()
186+
out = self.get_output(w.Outputs.selected_data)
187+
self.assertTrue(w.select_rows)
188+
self.assertEqual(out.domain,
189+
self.data.domain)
190+
191+
def test_show_attribute_labels(self):
192+
w = self.widget
193+
self.send_signal(w.Inputs.data, self.data, 0)
194+
self.assertTrue(w.show_attribute_labels) # default value
195+
with excepthook_catch():
196+
w.controls.show_attribute_labels.toggle()
197+
self.assertFalse(w.show_attribute_labels)
198+
171199

172200
if __name__ == "__main__":
173201
unittest.main()

0 commit comments

Comments
 (0)