From d316e13fa6e88cf52b6352dd53a89f052a93b198 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Sat, 5 Jun 2021 15:21:23 -0700 Subject: [PATCH] Suppress events fired while rebuilding model. --- qt_ui/windows/newgame/QCampaignList.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/qt_ui/windows/newgame/QCampaignList.py b/qt_ui/windows/newgame/QCampaignList.py index d67ca32e..1d74e64a 100644 --- a/qt_ui/windows/newgame/QCampaignList.py +++ b/qt_ui/windows/newgame/QCampaignList.py @@ -144,11 +144,15 @@ class QCampaignList(QListView): return self.currentIndex().data(QCampaignList.CampaignRole) def setup_content(self, show_incompatible: bool) -> None: - self.campaign_model.clear() - for campaign in self.campaigns: - if show_incompatible or campaign.is_compatible: - item = QCampaignItem(campaign) - self.campaign_model.appendRow(item) + self.selectionModel().blockSignals(True) + try: + self.campaign_model.clear() + for campaign in self.campaigns: + if show_incompatible or campaign.is_compatible: + item = QCampaignItem(campaign) + self.campaign_model.appendRow(item) + finally: + self.selectionModel().blockSignals(False) self.selectionModel().setCurrentIndex( self.campaign_model.index(0, 0, QModelIndex()), QItemSelectionModel.Select