refactored tabhelper function

This commit is contained in:
2026-03-21 01:14:05 +01:00
parent 4d4187ce63
commit 9eb70af1a1
3 changed files with 18 additions and 57 deletions
+5 -8
View File
@@ -1,7 +1,5 @@
from interface.utils.tabhelper import general_tab
from interface.utils.tabhelper import network_tab
from interface.utils.tabhelper import create_tab
from utils.config.settings import save_settings
from interface.utils.tabhelper import paths_tab
from interface.utils.svghelper import svg_icon
from utils.logging.logs import consoleLog
from PySide6.QtCore import Qt, QSize
@@ -19,7 +17,6 @@ from PySide6.QtWidgets import (
QCheckBox,
QFileDialog,
QComboBox,
QTabWidget,
)
import platform
@@ -264,10 +261,10 @@ def settings_dialog(self):
layout.addWidget(cancel_btn)
layout.addWidget(save_btn)
self.tabs = QTabWidget()
self.tab1 = general_tab("General", autoresume_container, update_checkbox_container, transparent_window_container, self.tabs)
self.tab2 = paths_tab("Paths", download_path_container, image_path_container, self.tabs)
self.tab3 = network_tab("Network", interface_container, max_connections_container, max_downloads_container, up_speed_limit_container, down_speed_limit_container, api_url_container, self.tabs)
self.tabs = QtWidgets.QTabWidget()
create_tab("General", [autoresume_container, update_checkbox_container, transparent_window_container], tabs=self.tabs)
create_tab("Paths", [download_path_container, image_path_container], tabs=self.tabs)
create_tab("Network", [interface_container, max_connections_container, max_downloads_container, up_speed_limit_container, down_speed_limit_container, api_url_container], tabs=self.tabs)
dialog_layout.addWidget(self.tabs)
dialog_layout.addLayout(layout)
+2 -2
View File
@@ -164,8 +164,8 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
self.horizontal_layout.addWidget(state.trackertable)
# Tabs
self.tab1 = create_tab("Search", self.searchbar, state.trackertable, self.tabs, self.dlbutton, self.horizontal_layout)
self.tab2 = create_tab("Downloads", self.emptyDownload, self.downloadList, self.tabs, None, None)
create_tab("Search", [self.searchbar, state.trackertable, self.tabs, self.dlbutton, self.horizontal_layout], tabs=self.tabs)
create_tab("Downloads", [self.emptyDownload, self.downloadList], tabs=self.tabs)
# Corner Widget (Settings Button, Tracker list, Tab button container)
self.corner_widget = QWidget()
+9 -45
View File
@@ -1,53 +1,17 @@
from PySide6.QtWidgets import QWidget, QVBoxLayout
from PySide6.QtWidgets import QWidget, QVBoxLayout, QLayout
# Tab creation helper function
def create_tab(title, searchbar, software_list, tabs, dlbutton, layout2):
def create_tab(title, items, *, tabs, stretch=False):
tab = QWidget()
layout = QVBoxLayout()
if searchbar:
layout.addWidget(searchbar)
if layout2:
layout.addLayout(layout2)
for item in items:
if item is None:
continue
if isinstance(item, QLayout):
layout.addLayout(item)
else:
layout.addWidget(software_list)
if dlbutton:
layout.addWidget(dlbutton)
tab.setLayout(layout)
tabs.addTab(tab, title)
return tab
# Settings Tabs
def general_tab(title, autoresume, update_checkbox, transparent_window, tabs):
tab = QWidget()
layout = QVBoxLayout()
layout.addWidget(autoresume)
layout.addWidget(update_checkbox)
layout.addWidget(transparent_window)
layout.addStretch()
tab.setLayout(layout)
tabs.addTab(tab, title)
return tab
def paths_tab(title, download_path, image_path, tabs):
tab = QWidget()
layout = QVBoxLayout()
layout.addWidget(download_path)
layout.addWidget(image_path)
layout.addStretch()
tab.setLayout(layout)
tabs.addTab(tab, title)
return tab
def network_tab(title, network_interface, max_connections, max_downloads, up_speed_limit, down_speed_limit, api_url, tabs):
tab = QWidget()
layout = QVBoxLayout()
layout.addWidget(network_interface)
layout.addWidget(max_connections)
layout.addWidget(max_downloads)
layout.addWidget(up_speed_limit)
layout.addWidget(down_speed_limit)
layout.addWidget(api_url)
layout.addWidget(item)
if stretch:
layout.addStretch()
tab.setLayout(layout)
tabs.addTab(tab, title)