mirror of
https://github.com/onionshare/onionshare.git
synced 2025-02-10 19:58:52 -05:00
73 lines
2.2 KiB
Python
73 lines
2.2 KiB
Python
from PySide6 import QtCore, QtWidgets, QtGui
|
|
|
|
from onionshare_cli.mode_settings import ModeSettings
|
|
|
|
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 .connection_tab import AutoConnectTab
|
|
|
|
|
|
class SettingsParentTab(QtWidgets.QTabWidget):
|
|
"""
|
|
The settings tab widget containing the tor settings
|
|
and app settings subtabs
|
|
"""
|
|
|
|
bring_to_front = QtCore.Signal()
|
|
close_this_tab = QtCore.Signal()
|
|
|
|
def __init__(
|
|
self, common, tab_id, parent=None, active_tab="general", from_autoconnect=False
|
|
):
|
|
super(SettingsParentTab, self).__init__()
|
|
self.parent = parent
|
|
self.common = common
|
|
self.common.log("SettingsParentTab", "__init__")
|
|
|
|
# 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
|
|
# tab's index, which changes as tabs are re-arranged.
|
|
self.tabs = {
|
|
"general": 0,
|
|
"tor": 1,
|
|
}
|
|
self.tab_id = tab_id
|
|
self.current_tab_id = self.tabs[active_tab]
|
|
|
|
# Use a custom tab bar
|
|
tab_bar = TabBar(self.common)
|
|
self.setTabBar(tab_bar)
|
|
settings_tab = SettingsTab(self.common, self.tabs["general"], parent=self)
|
|
self.tor_settings_tab = TorSettingsTab(
|
|
self.common,
|
|
self.tabs["tor"],
|
|
self.parent.are_tabs_active(),
|
|
self.parent.status_bar,
|
|
parent=self,
|
|
from_autoconnect=from_autoconnect,
|
|
)
|
|
self.addTab(settings_tab, strings._("gui_general_settings_window_title"))
|
|
self.addTab(self.tor_settings_tab, strings._("gui_tor_settings_window_title"))
|
|
|
|
# Set up the tab widget
|
|
self.setMovable(False)
|
|
self.setTabsClosable(False)
|
|
self.setUsesScrollButtons(False)
|
|
self.setCurrentIndex(self.current_tab_id)
|
|
|
|
|
|
class TabBar(QtWidgets.QTabBar):
|
|
"""
|
|
A custom tab bar
|
|
"""
|
|
|
|
move_new_tab_button = QtCore.Signal()
|
|
|
|
def __init__(self, common):
|
|
super(TabBar, self).__init__()
|
|
self.setStyleSheet(common.gui.css["settings_subtab_bar"])
|