Skip to content

Commit fa539f4

Browse files
committed
Table: Keep pending selection if data is None
1 parent a20b32f commit fa539f4

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

Orange/widgets/data/owtable.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -519,20 +519,17 @@ def update(_):
519519
if current is not None:
520520
# pylint: disable=protected-access
521521
self.set_info(current._input_slot.summary)
522-
else:
523-
self.__pending_selected_rows = None
524-
self.__pending_selected_cols = None
525522

526523
self.tabs.tabBar().setVisible(self.tabs.count() > 1)
527524
self.openContext(data)
528525

529-
if self.__pending_selected_rows is not None:
526+
if data and self.__pending_selected_rows is not None:
530527
self.selected_rows = self.__pending_selected_rows
531528
self.__pending_selected_rows = None
532529
else:
533530
self.selected_rows = []
534531

535-
if self.__pending_selected_cols is not None:
532+
if data and self.__pending_selected_cols is not None:
536533
self.selected_cols = self.__pending_selected_cols
537534
self.__pending_selected_cols = None
538535
else:

Orange/widgets/data/tests/test_owtable.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,15 @@ def test_unconditional_commit_on_new_signal(self):
6666
self.send_signal(self.widget.Inputs.data, self.data)
6767
commit.assert_called()
6868

69+
def test_pending_selection(self):
70+
widget = self.create_widget(OWDataTable, stored_settings=dict(
71+
selected_rows=[5, 6, 7, 8, 9],
72+
selected_cols=list(range(len(self.data.domain)))))
73+
self.send_signal(widget.Inputs.data, None, 1)
74+
self.send_signal(widget.Inputs.data, self.data, 1)
75+
output = self.get_output(widget.Outputs.selected_data)
76+
self.assertEqual(5, len(output))
77+
6978

7079
if __name__ == "__main__":
7180
unittest.main()

0 commit comments

Comments
 (0)