diff --git a/Orange/widgets/data/utils/tableview.py b/Orange/widgets/data/utils/tableview.py index af19f03c475..4527dfa9644 100644 --- a/Orange/widgets/data/utils/tableview.py +++ b/Orange/widgets/data/utils/tableview.py @@ -125,7 +125,12 @@ def setModel(self, model: QAbstractItemModel): self.horizontalHeader().setSortIndicator(-1, Qt.AscendingOrder) sortable = self.isModelSortable(model) - self.setSortingEnabled(sortable) + if sortable != self.isSortingEnabled(): + # setSortingEnabled disconnects/reconnects Qt's internal + # connections to model.sort(), causing client + # sortIndicatorChange connections to trigger before the model + # is actually sorted. Avoid unnecessary calls. + self.setSortingEnabled(sortable) header = self.horizontalHeader() header.setSectionsClickable(sortable) header.setSortIndicatorShown(sortable)