mirror of
https://github.com/onionshare/onionshare.git
synced 2025-01-12 07:49:39 -05:00
Chose the active tab in settings based on what is clicked
This commit is contained in:
parent
74f0c9d86b
commit
3b7655824d
@ -149,7 +149,7 @@ class AutoConnectTab(QtWidgets.QWidget):
|
|||||||
self.curr_settings.save()
|
self.curr_settings.save()
|
||||||
|
|
||||||
def open_tor_settings(self):
|
def open_tor_settings(self):
|
||||||
self.parent.open_settings_tab(from_autoconnect=True)
|
self.parent.open_settings_tab(from_autoconnect=True, active_tab='tor')
|
||||||
|
|
||||||
def first_launch_widget_connect_clicked(self):
|
def first_launch_widget_connect_clicked(self):
|
||||||
"""
|
"""
|
||||||
|
@ -106,24 +106,6 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
)
|
)
|
||||||
self.status_bar.addPermanentWidget(self.status_bar.server_status_indicator)
|
self.status_bar.addPermanentWidget(self.status_bar.server_status_indicator)
|
||||||
|
|
||||||
# Tor settings button
|
|
||||||
self.tor_settings_button = QtWidgets.QPushButton()
|
|
||||||
self.tor_settings_button.setDefault(False)
|
|
||||||
self.tor_settings_button.setFixedSize(40, 50)
|
|
||||||
self.tor_settings_button.setIcon(
|
|
||||||
QtGui.QIcon(
|
|
||||||
GuiCommon.get_resource_path(
|
|
||||||
"images/{}_tor_settings.png".format(self.common.gui.color_mode)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self.tor_settings_button.clicked.connect(self.open_tor_settings)
|
|
||||||
self.tor_settings_button.setStyleSheet(self.common.gui.css["settings_button"])
|
|
||||||
self.status_bar.addPermanentWidget(self.tor_settings_button)
|
|
||||||
|
|
||||||
if os.environ.get("ONIONSHARE_HIDE_TOR_SETTINGS") == "1":
|
|
||||||
self.tor_settings_button.hide()
|
|
||||||
|
|
||||||
# Settings button
|
# Settings button
|
||||||
self.settings_button = QtWidgets.QPushButton()
|
self.settings_button = QtWidgets.QPushButton()
|
||||||
self.settings_button.setDefault(False)
|
self.settings_button.setDefault(False)
|
||||||
@ -240,25 +222,22 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
"""
|
"""
|
||||||
Open the TorSettingsTab
|
Open the TorSettingsTab
|
||||||
"""
|
"""
|
||||||
self.common.log("MainWindow", "open_tor_settings")
|
self._open_settings(active_tab='tor')
|
||||||
from_autoconnect = False
|
|
||||||
for tab_id in self.tabs.tabs:
|
|
||||||
if type(self.tabs.tabs[tab_id]) is AutoConnectTab:
|
|
||||||
from_autoconnect = True
|
|
||||||
break
|
|
||||||
self.tabs.open_settings_tab(from_autoconnect)
|
|
||||||
|
|
||||||
def open_settings(self):
|
def open_settings(self):
|
||||||
"""
|
"""
|
||||||
Open the SettingsTab
|
Open the general SettingsTab
|
||||||
"""
|
"""
|
||||||
self.common.log("MainWindow", "open_settings")
|
self._open_settings(active_tab='general')
|
||||||
|
|
||||||
|
def _open_settings(self, active_tab):
|
||||||
|
self.common.log("MainWindow", f"open settings with active tab: {active_tab}")
|
||||||
from_autoconnect = False
|
from_autoconnect = False
|
||||||
for tab_id in self.tabs.tabs:
|
for tab_id in self.tabs.tabs:
|
||||||
if type(self.tabs.tabs[tab_id]) is AutoConnectTab:
|
if type(self.tabs.tabs[tab_id]) is AutoConnectTab:
|
||||||
from_autoconnect = True
|
from_autoconnect = True
|
||||||
break
|
break
|
||||||
self.tabs.open_settings_tab(from_autoconnect)
|
self.tabs.open_settings_tab(from_autoconnect, active_tab=active_tab)
|
||||||
|
|
||||||
def settings_have_changed(self):
|
def settings_have_changed(self):
|
||||||
self.common.log("OnionShareGui", "settings_have_changed")
|
self.common.log("OnionShareGui", "settings_have_changed")
|
||||||
|
@ -60,6 +60,7 @@
|
|||||||
"gui_autoconnect_circumventing_censorship_got_bridges": "Got bridges! Trying to reconnect to Tor",
|
"gui_autoconnect_circumventing_censorship_got_bridges": "Got bridges! Trying to reconnect to Tor",
|
||||||
"gui_autoconnect_could_not_connect_to_tor_api": "Could not connect to the Tor API. Make sure you are connected to the internet before trying again.",
|
"gui_autoconnect_could_not_connect_to_tor_api": "Could not connect to the Tor API. Make sure you are connected to the internet before trying again.",
|
||||||
"gui_settings_window_title": "Settings",
|
"gui_settings_window_title": "Settings",
|
||||||
|
"gui_general_settings_window_title": "Settings",
|
||||||
"gui_settings_autoupdate_label": "Check for new version",
|
"gui_settings_autoupdate_label": "Check for new version",
|
||||||
"gui_settings_autoupdate_option": "Notify me when a new version is available",
|
"gui_settings_autoupdate_option": "Notify me when a new version is available",
|
||||||
"gui_settings_autoupdate_timestamp": "Last checked: {}",
|
"gui_settings_autoupdate_timestamp": "Last checked: {}",
|
||||||
|
@ -20,7 +20,7 @@ class SettingsParentTab(QtWidgets.QTabWidget):
|
|||||||
bring_to_front = QtCore.Signal()
|
bring_to_front = QtCore.Signal()
|
||||||
close_this_tab = QtCore.Signal()
|
close_this_tab = QtCore.Signal()
|
||||||
|
|
||||||
def __init__(self, common, tab_id, parent=None, active_tab='tor', from_autoconnect=False):
|
def __init__(self, common, tab_id, parent=None, active_tab='general', from_autoconnect=False):
|
||||||
super(SettingsParentTab, self).__init__()
|
super(SettingsParentTab, self).__init__()
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.common = common
|
self.common = common
|
||||||
@ -29,38 +29,35 @@ class SettingsParentTab(QtWidgets.QTabWidget):
|
|||||||
# Keep track of tabs in a dictionary that maps tab_id to tab.
|
# Keep track of tabs in a dictionary that maps tab_id to tab.
|
||||||
# Each tab has a unique, auto-incremented id (tab_id). This is different than the
|
# Each tab has a unique, auto-incremented id (tab_id). This is different than the
|
||||||
# tab's index, which changes as tabs are re-arranged.
|
# tab's index, which changes as tabs are re-arranged.
|
||||||
# self.tabs = {}
|
self.tabs = {
|
||||||
|
'general': 0,
|
||||||
|
'tor': 1,
|
||||||
|
}
|
||||||
self.tab_id = tab_id
|
self.tab_id = tab_id
|
||||||
# self.current_tab_id = 0 # Each tab has a unique id
|
self.current_tab_id = self.tabs[active_tab]
|
||||||
# self.tor_settings_tab = None
|
|
||||||
|
|
||||||
# Use a custom tab bar
|
# Use a custom tab bar
|
||||||
tab_bar = TabBar()
|
tab_bar = TabBar()
|
||||||
self.setTabBar(tab_bar)
|
self.setTabBar(tab_bar)
|
||||||
settings_tab = SettingsTab(self.common, 0, parent=self)
|
settings_tab = SettingsTab(self.common, self.tabs['general'], parent=self)
|
||||||
self.tor_settings_tab = TorSettingsTab(
|
self.tor_settings_tab = TorSettingsTab(
|
||||||
self.common,
|
self.common,
|
||||||
1,
|
self.tabs['tor'],
|
||||||
self.parent.are_tabs_active(),
|
self.parent.are_tabs_active(),
|
||||||
self.parent.status_bar,
|
self.parent.status_bar,
|
||||||
parent=self,
|
parent=self,
|
||||||
from_autoconnect=from_autoconnect,
|
from_autoconnect=from_autoconnect,
|
||||||
)
|
)
|
||||||
|
self.addTab(settings_tab, strings._("gui_general_settings_window_title"))
|
||||||
self.addTab(
|
self.addTab(
|
||||||
self.tor_settings_tab, strings._("gui_tor_settings_window_title")
|
self.tor_settings_tab, strings._("gui_tor_settings_window_title")
|
||||||
)
|
)
|
||||||
self.addTab(settings_tab, strings._("gui_settings_window_title"))
|
|
||||||
|
|
||||||
# Set up the tab widget
|
# Set up the tab widget
|
||||||
self.setMovable(False)
|
self.setMovable(False)
|
||||||
self.setTabsClosable(False)
|
self.setTabsClosable(False)
|
||||||
self.setUsesScrollButtons(False)
|
self.setUsesScrollButtons(False)
|
||||||
# self.setDocumentMode(True)
|
self.setCurrentIndex(self.current_tab_id)
|
||||||
# self.setStyleSheet(self.common.gui.css["tab_widget"])
|
|
||||||
|
|
||||||
# self.tabCloseRequested.connect(self.close_tab)
|
|
||||||
|
|
||||||
# self.move_new_tab_button()
|
|
||||||
|
|
||||||
class TabBar(QtWidgets.QTabBar):
|
class TabBar(QtWidgets.QTabBar):
|
||||||
"""
|
"""
|
||||||
|
@ -26,8 +26,6 @@ from . import strings
|
|||||||
from .tab import Tab
|
from .tab import Tab
|
||||||
from .threads import EventHandlerThread
|
from .threads import EventHandlerThread
|
||||||
from .gui_common import GuiCommon
|
from .gui_common import GuiCommon
|
||||||
from .tor_settings_tab import TorSettingsTab
|
|
||||||
from .settings_tab import SettingsTab
|
|
||||||
from .settings_parent_tab import SettingsParentTab
|
from .settings_parent_tab import SettingsParentTab
|
||||||
from .connection_tab import AutoConnectTab
|
from .connection_tab import AutoConnectTab
|
||||||
|
|
||||||
@ -228,7 +226,7 @@ class TabWidget(QtWidgets.QTabWidget):
|
|||||||
index = self.addTab(connection_tab, strings._("gui_autoconnect_start"))
|
index = self.addTab(connection_tab, strings._("gui_autoconnect_start"))
|
||||||
self.setCurrentIndex(index)
|
self.setCurrentIndex(index)
|
||||||
|
|
||||||
def open_settings_tab(self, from_autoconnect=False, active_tab='tor'):
|
def open_settings_tab(self, from_autoconnect=False, active_tab='general'):
|
||||||
self.common.log("TabWidget", "open_settings_tab")
|
self.common.log("TabWidget", "open_settings_tab")
|
||||||
|
|
||||||
# See if a settings tab is already open, and if so switch to it
|
# See if a settings tab is already open, and if so switch to it
|
||||||
@ -237,7 +235,13 @@ class TabWidget(QtWidgets.QTabWidget):
|
|||||||
self.setCurrentIndex(self.indexOf(self.tabs[tab_id]))
|
self.setCurrentIndex(self.indexOf(self.tabs[tab_id]))
|
||||||
return
|
return
|
||||||
|
|
||||||
settings_tab = SettingsParentTab(self.common, self.current_tab_id,active_tab=active_tab, parent=self, from_autoconnect=from_autoconnect)
|
settings_tab = SettingsParentTab(
|
||||||
|
self.common,
|
||||||
|
self.current_tab_id,
|
||||||
|
active_tab=active_tab,
|
||||||
|
parent=self,
|
||||||
|
from_autoconnect=from_autoconnect
|
||||||
|
)
|
||||||
settings_tab.close_this_tab.connect(self.close_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 = settings_tab.tor_settings_tab
|
||||||
self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected)
|
self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected)
|
||||||
|
Loading…
Reference in New Issue
Block a user