aboutsummaryrefslogtreecommitdiff
path: root/desktop/onionshare/tab_widget.py
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/onionshare/tab_widget.py')
-rw-r--r--desktop/onionshare/tab_widget.py105
1 files changed, 34 insertions, 71 deletions
diff --git a/desktop/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py
index 4892b15f..3c1a1703 100644
--- a/desktop/onionshare/tab_widget.py
+++ b/desktop/onionshare/tab_widget.py
@@ -26,8 +26,7 @@ from . import strings
from .tab import Tab
from .threads import EventHandlerThread
from .gui_common import GuiCommon
-from .tor_settings_tab import TorSettingsTab
-from .settings_tab import SettingsTab
+from .settings_parent_tab import SettingsParentTab
from .connection_tab import AutoConnectTab
@@ -98,8 +97,7 @@ class TabWidget(QtWidgets.QTabWidget):
# Clean up each tab
for tab_id in self.tabs:
if not (
- type(self.tabs[tab_id]) is SettingsTab
- or type(self.tabs[tab_id]) is TorSettingsTab
+ type(self.tabs[tab_id]) is SettingsParentTab
or type(self.tabs[tab_id]) is AutoConnectTab
):
self.tabs[tab_id].cleanup()
@@ -139,8 +137,7 @@ class TabWidget(QtWidgets.QTabWidget):
# If it's Settings or Tor Settings, ignore
if (
- type(self.tabs[tab_id]) is SettingsTab
- or type(self.tabs[tab_id]) is TorSettingsTab
+ type(self.tabs[tab_id]) is SettingsParentTab
or type(self.tabs[tab_id]) is AutoConnectTab
):
# Blank the server status indicator
@@ -230,46 +227,29 @@ class TabWidget(QtWidgets.QTabWidget):
index = self.addTab(connection_tab, strings._("gui_autoconnect_start"))
self.setCurrentIndex(index)
- def open_settings_tab(self):
+ def open_settings_tab(self, from_autoconnect=False, active_tab="general"):
self.common.log("TabWidget", "open_settings_tab")
# See if a settings tab is already open, and if so switch to it
for tab_id in self.tabs:
- if type(self.tabs[tab_id]) is SettingsTab:
+ if type(self.tabs[tab_id]) is SettingsParentTab:
self.setCurrentIndex(self.indexOf(self.tabs[tab_id]))
return
- settings_tab = SettingsTab(self.common, self.current_tab_id)
- settings_tab.close_this_tab.connect(self.close_settings_tab)
- self.tabs[self.current_tab_id] = settings_tab
- self.current_tab_id += 1
- index = self.addTab(settings_tab, strings._("gui_settings_window_title"))
- self.setCurrentIndex(index)
-
- def open_tor_settings_tab(self, from_autoconnect=False):
- self.common.log("TabWidget", "open_tor_settings_tab")
-
- # See if a settings tab is already open, and if so switch to it
- for tab_id in self.tabs:
- if type(self.tabs[tab_id]) is TorSettingsTab:
- self.setCurrentIndex(self.indexOf(self.tabs[tab_id]))
- return
-
- self.tor_settings_tab = TorSettingsTab(
+ settings_tab = SettingsParentTab(
self.common,
self.current_tab_id,
- self.are_tabs_active(),
- self.status_bar,
- from_autoconnect,
+ active_tab=active_tab,
+ parent=self,
+ from_autoconnect=from_autoconnect,
)
- self.tor_settings_tab.close_this_tab.connect(self.close_tor_settings_tab)
+ settings_tab.close_this_tab.connect(self.close_settings_tab)
+ self.tor_settings_tab = settings_tab.tor_settings_tab
self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected)
self.tor_settings_tab.tor_is_disconnected.connect(self.tor_is_disconnected)
- self.tabs[self.current_tab_id] = self.tor_settings_tab
+ self.tabs[self.current_tab_id] = settings_tab
self.current_tab_id += 1
- index = self.addTab(
- self.tor_settings_tab, strings._("gui_tor_settings_window_title")
- )
+ index = self.addTab(settings_tab, strings._("gui_settings_window_title"))
self.setCurrentIndex(index)
def change_title(self, tab_id, title):
@@ -315,8 +295,7 @@ class TabWidget(QtWidgets.QTabWidget):
persistent_tabs = []
for tab_id in self.tabs:
if not (
- type(self.tabs[tab_id]) is SettingsTab
- or type(self.tabs[tab_id]) is TorSettingsTab
+ type(self.tabs[tab_id]) is SettingsParentTab
or type(self.tabs[tab_id]) is AutoConnectTab
):
tab = self.widget(self.indexOf(self.tabs[tab_id]))
@@ -333,13 +312,12 @@ class TabWidget(QtWidgets.QTabWidget):
tab_id = tab.tab_id
if (
- type(self.tabs[tab_id]) is SettingsTab
- or type(self.tabs[tab_id]) is TorSettingsTab
+ type(self.tabs[tab_id]) is SettingsParentTab
or type(self.tabs[tab_id]) is AutoConnectTab
):
self.common.log("TabWidget", "closing a settings tab")
- if type(self.tabs[tab_id]) is TorSettingsTab:
+ if type(self.tabs[tab_id]) is SettingsParentTab:
self.tor_settings_tab = None
# Remove the tab
@@ -382,14 +360,6 @@ class TabWidget(QtWidgets.QTabWidget):
def close_settings_tab(self):
self.common.log("TabWidget", "close_settings_tab")
- for tab_id in self.tabs:
- if type(self.tabs[tab_id]) is SettingsTab:
- index = self.indexOf(self.tabs[tab_id])
- self.close_tab(index)
- return
-
- def close_tor_settings_tab(self):
- self.common.log("TabWidget", "close_tor_settings_tab")
for tab_id in list(self.tabs):
if type(self.tabs[tab_id]) is AutoConnectTab:
# If we are being returned to the AutoConnectTab, but
@@ -399,7 +369,7 @@ class TabWidget(QtWidgets.QTabWidget):
if self.common.gui.onion.is_authenticated():
self.common.log(
"TabWidget",
- "close_tor_settings_tab",
+ "close_settings_tab",
"Tor is connected and we can auto-connect, so closing the tab",
)
index = self.indexOf(self.tabs[tab_id])
@@ -408,13 +378,13 @@ class TabWidget(QtWidgets.QTabWidget):
self.tabs[tab_id].reload_settings()
self.common.log(
"TabWidget",
- "close_tor_settings_tab",
+ "close_settings_tab",
"Reloading settings in case they changed in the TorSettingsTab. Not auto-connecting",
)
break
# List of indices may have changed due to the above, so we loop over it again as another copy
for tab_id in list(self.tabs):
- if type(self.tabs[tab_id]) is TorSettingsTab:
+ if type(self.tabs[tab_id]) is SettingsParentTab:
index = self.indexOf(self.tabs[tab_id])
self.close_tab(index)
return
@@ -425,8 +395,7 @@ class TabWidget(QtWidgets.QTabWidget):
"""
for tab_id in self.tabs:
if not (
- type(self.tabs[tab_id]) is SettingsTab
- or type(self.tabs[tab_id]) is TorSettingsTab
+ type(self.tabs[tab_id]) is SettingsParentTab
or type(self.tabs[tab_id]) is AutoConnectTab
):
mode = self.tabs[tab_id].get_mode()
@@ -449,29 +418,23 @@ class TabWidget(QtWidgets.QTabWidget):
def tor_is_connected(self):
for tab_id in self.tabs:
- if type(self.tabs[tab_id]) is SettingsTab:
- self.tabs[tab_id].tor_is_connected()
- else:
- if not (
- type(self.tabs[tab_id]) is TorSettingsTab
- or type(self.tabs[tab_id]) is AutoConnectTab
- ):
- mode = self.tabs[tab_id].get_mode()
- if mode:
- mode.tor_connection_started()
+ if not (
+ type(self.tabs[tab_id]) is SettingsParentTab
+ or type(self.tabs[tab_id]) is AutoConnectTab
+ ):
+ mode = self.tabs[tab_id].get_mode()
+ if mode:
+ mode.tor_connection_started()
def tor_is_disconnected(self):
for tab_id in self.tabs:
- if type(self.tabs[tab_id]) is SettingsTab:
- self.tabs[tab_id].tor_is_disconnected()
- else:
- if not (
- type(self.tabs[tab_id]) is TorSettingsTab
- or type(self.tabs[tab_id]) is AutoConnectTab
- ):
- mode = self.tabs[tab_id].get_mode()
- if mode:
- mode.tor_connection_stopped()
+ if not (
+ type(self.tabs[tab_id]) is SettingsParentTab
+ or type(self.tabs[tab_id]) is AutoConnectTab
+ ):
+ mode = self.tabs[tab_id].get_mode()
+ if mode:
+ mode.tor_connection_stopped()
class TabBar(QtWidgets.QTabBar):