From 4c0cbb877b0dcc2ddb19dd8b0a710c0c1c56bc78 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Sat, 30 Apr 2022 13:20:30 +0530 Subject: [PATCH] Opens new tab if the only other tab is a settings tab --- desktop/onionshare/tab_widget.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/desktop/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py index c272c4e8..8ef88433 100644 --- a/desktop/onionshare/tab_widget.py +++ b/desktop/onionshare/tab_widget.py @@ -314,6 +314,11 @@ class TabWidget(QtWidgets.QTabWidget): self.common.settings.set("persistent_tabs", persistent_tabs) self.common.settings.save() + def has_no_onionshare_tab(self): + # Check if the last tab is closed, or there is only one tab + # which is the settings tab + return self.count() == 0 or (self.count() == 1 and type(list(self.tabs.values())[0]) is SettingsParentTab) + def close_tab(self, index): self.common.log("TabWidget", "close_tab", f"{index}") tab = self.widget(index) @@ -332,8 +337,8 @@ class TabWidget(QtWidgets.QTabWidget): self.removeTab(index) del self.tabs[tab.tab_id] - # If the last tab is closed, open a new one - if self.count() == 0: + # If no onionshare feature tab, open a new main window tab + if self.has_no_onionshare_tab(): self.new_tab_clicked() else: @@ -352,8 +357,8 @@ class TabWidget(QtWidgets.QTabWidget): self.removeTab(index) del self.tabs[tab.tab_id] - # If the last tab is closed, open a new one - if self.count() == 0: + # If no onionshare feature tab, open a new main window tab + if self.has_no_onionshare_tab(): self.new_tab_clicked() else: self.common.log("TabWidget", "user does not want to close the tab")