Skip to content

Commit af0ec1a

Browse files
committed
owdistancematrix: Preserve model layout in set_labels
1 parent 33dac33 commit af0ec1a

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

Orange/widgets/unsupervised/owdistancematrix.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def set_data(self, distances):
4646
self.endResetModel()
4747

4848
def set_labels(self, labels, variable=None, values=None):
49-
self.beginResetModel()
5049
self.labels = labels
5150
self.variable = variable
5251
self.values = values
@@ -55,7 +54,12 @@ def set_labels(self, labels, variable=None, values=None):
5554
self.label_colors = variable.palette.values_to_qcolors(values)
5655
else:
5756
self.label_colors = None
58-
self.endResetModel()
57+
self.headerDataChanged.emit(Qt.Vertical, 0, self.rowCount() - 1)
58+
self.headerDataChanged.emit(Qt.Horizontal, 0, self.columnCount() - 1)
59+
self.dataChanged.emit(
60+
self.index(0, 0),
61+
self.index(self.rowCount() - 1, self.columnCount() - 1)
62+
)
5963

6064
def dimension(self, parent=None):
6165
if parent and parent.isValid() or self.distances is None:
@@ -291,16 +295,14 @@ def _update_labels(self):
291295
var = self.annot_combo.model()[self.annotation_idx]
292296
column, _ = self.items.get_column_view(var)
293297
labels = [var.str_val(value) for value in column]
294-
saved_selection = self.tableview.selectionModel().selectedIndices()
295-
self.tablemodel.set_labels(labels, var, column)
296298
if labels:
297299
self.tableview.horizontalHeader().show()
298300
self.tableview.verticalHeader().show()
299301
else:
300302
self.tableview.horizontalHeader().hide()
301303
self.tableview.verticalHeader().hide()
304+
self.tablemodel.set_labels(labels, var, column)
302305
self.tableview.resizeColumnsToContents()
303-
self.tableview.selectionModel().set_selected_items(saved_selection)
304306

305307
def commit(self):
306308
sub_table = sub_distances = None

0 commit comments

Comments
 (0)