From 76fbfc2822110c8866d8d10ba1dbe694edbbe19e Mon Sep 17 00:00:00 2001 From: glubsy Date: Sun, 2 Aug 2020 16:12:47 +0200 Subject: [PATCH] Fix adding new Result tab if already existed * Whenever the Result Window already existed and its tab was in second position, and if the ignore list tab was in 3rd position, asking to show the Result window through the View menu would add a new tab and push the Result tab to the third position (ignore list tab would then become 2nd position). * Fix view menu Directories entry not switching to index "0" in custom tab bar. --- qt/app.py | 9 ++++----- qt/tabbed_window.py | 7 ++++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/qt/app.py b/qt/app.py index 8f02c341..4ed70b54 100644 --- a/qt/app.py +++ b/qt/app.py @@ -223,17 +223,14 @@ class DupeGuru(QObject): def showResultsWindow(self): if self.resultWindow is not None: if self.use_tabs: - self.main_window.addTab( - self.resultWindow, "Results", switch=True) + self.main_window.showTab(self.resultWindow) else: self.resultWindow.show() def showDirectoriesWindow(self): if self.directories_dialog is not None: if self.use_tabs: - index = self.main_window.indexOfWidget(self.directories_dialog) - self.main_window.setTabVisible(index, True) - self.main_window.setCurrentIndex(index) + self.main_window.showTab(self.directories_dialog) else: self.directories_dialog.show() @@ -354,6 +351,8 @@ class DupeGuru(QObject): if self.use_tabs: self.resultWindow = self.main_window.createPage( "ResultWindow", parent=self.main_window, app=self) + self.main_window.addTab( + self.resultWindow, "Results", switch=False) else: # We don't use a tab widget, regular floating QMainWindow self.resultWindow = ResultWindow(self.directories_dialog, self) self.directories_dialog._updateActionsState() diff --git a/qt/tabbed_window.py b/qt/tabbed_window.py index 30f004ec..f7fc13d7 100644 --- a/qt/tabbed_window.py +++ b/qt/tabbed_window.py @@ -171,6 +171,11 @@ class TabWindow(QMainWindow): self.setCurrentIndex(index) return index + def showTab(self, page): + index = self.indexOfWidget(page) + self.setTabVisible(index, True) + self.setCurrentIndex(index) + def indexOfWidget(self, widget): return self.tabWidget.indexOf(widget) @@ -302,7 +307,7 @@ class TabBarWindow(TabWindow): @pyqtSlot(int) def setTabIndex(self, index): - if not index: + if index is None: return self.tabBar.setCurrentIndex(index)