mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-04 17:59:43 +02:00
refactor: improve search functionality and code organization in GUI components
This commit is contained in:
@@ -8,11 +8,11 @@ from core.interface.dialogs.downloadlist import download_list_update
|
|||||||
from core.interface.dialogs.update import get_version, UpdateDialog
|
from core.interface.dialogs.update import get_version, UpdateDialog
|
||||||
from core.utils.logging.logs import consoleLog, flush_log_buffer
|
from core.utils.logging.logs import consoleLog, flush_log_buffer
|
||||||
from core.interface.dialogs.downloadmodel import DownloadModel
|
from core.interface.dialogs.downloadmodel import DownloadModel
|
||||||
from core.interface.utils.searchhelper import return_pressed
|
|
||||||
from core.interface.dialogs.settings import settings_dialog
|
from core.interface.dialogs.settings import settings_dialog
|
||||||
from core.interface.assets.base64_icons import logo_base64
|
from core.interface.assets.base64_icons import logo_base64
|
||||||
from core.interface.dialogs.eventfilter import eventFilter
|
from core.interface.dialogs.eventfilter import eventFilter
|
||||||
from core.utils.network.download import download_selected
|
from core.utils.network.download import download_selected
|
||||||
|
from core.interface.utils.searchhelper import run_search
|
||||||
from core.interface.utils.tabhelper import create_tab
|
from core.interface.utils.tabhelper import create_tab
|
||||||
from core.utils.general.shutdown import closehelper
|
from core.utils.general.shutdown import closehelper
|
||||||
from core.utils.general.wrappers import run_thread
|
from core.utils.general.wrappers import run_thread
|
||||||
@@ -295,7 +295,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|||||||
self.searchbar.setEnabled(False)
|
self.searchbar.setEnabled(False)
|
||||||
def _search_thread():
|
def _search_thread():
|
||||||
try:
|
try:
|
||||||
return_pressed(self)
|
run_search(self)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
consoleLog(f"Search error: {e}", True)
|
consoleLog(f"Search error: {e}", True)
|
||||||
self.search_results_signal.emit([])
|
self.search_results_signal.emit([])
|
||||||
|
|||||||
@@ -5,22 +5,30 @@ from core.data.scrapers.monkrus import init_m0nkrus
|
|||||||
from core.utils.logging.logs import consoleLog
|
from core.utils.logging.logs import consoleLog
|
||||||
from core.utils.data.state import state
|
from core.utils.data.state import state
|
||||||
|
|
||||||
|
# Call initialization function for each tracker / site
|
||||||
init_rutracker()
|
init_rutracker()
|
||||||
init_uztracker()
|
init_uztracker()
|
||||||
init_m0nkrus()
|
init_m0nkrus()
|
||||||
init_steamrip()
|
init_steamrip()
|
||||||
|
|
||||||
def return_pressed(self):
|
|
||||||
|
def run_search(self) -> None:
|
||||||
self.show_empty_results(False)
|
self.show_empty_results(False)
|
||||||
|
|
||||||
search_text = self.searchbar.text()
|
search_text = self.searchbar.text()
|
||||||
|
# Check for empty search
|
||||||
if search_text == "":
|
if search_text == "":
|
||||||
consoleLog("Error: Can't search for nothing")
|
consoleLog("Error: Can't search for nothing")
|
||||||
return
|
return
|
||||||
consoleLog(f"User searched for: {search_text}")
|
consoleLog(f"User searched for: {search_text}")
|
||||||
|
|
||||||
|
# Get current tracker and call its search function
|
||||||
tracker = state.trackers[state.currenttracker]
|
tracker = state.trackers[state.currenttracker]
|
||||||
scrapefunc = tracker["scrapeFunc"]
|
scrapefunc = tracker["scrapeFunc"]
|
||||||
state.posts = scrapefunc(search_text)
|
state.posts = scrapefunc(search_text)
|
||||||
|
|
||||||
|
# Late to prevent circular import
|
||||||
from core.interface.gui import MainWindow
|
from core.interface.gui import MainWindow
|
||||||
|
|
||||||
|
# Update GUI Headers
|
||||||
MainWindow._instance.search_results_signal.emit(tracker["headers"])
|
MainWindow._instance.search_results_signal.emit(tracker["headers"])
|
||||||
|
|||||||
@@ -6,11 +6,10 @@ from PySide6.QtGui import QIcon, QPixmap, QPainter
|
|||||||
from PySide6.QtSvg import QSvgRenderer
|
from PySide6.QtSvg import QSvgRenderer
|
||||||
import darkdetect
|
import darkdetect
|
||||||
|
|
||||||
|
# Check if darkmode is enabled
|
||||||
def _is_dark_mode():
|
def _is_dark_mode():
|
||||||
return darkdetect.isDark()
|
return darkdetect.isDark()
|
||||||
|
|
||||||
|
|
||||||
def svg_icon(svg_str, size=20):
|
def svg_icon(svg_str, size=20):
|
||||||
app = QtWidgets.QApplication.instance()
|
app = QtWidgets.QApplication.instance()
|
||||||
if app:
|
if app:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from PySide6.QtWidgets import QWidget, QVBoxLayout
|
from PySide6.QtWidgets import QWidget, QVBoxLayout
|
||||||
|
|
||||||
|
# Tab creation helper function
|
||||||
def create_tab(title, searchbar, software_list, tabs, dlbutton, layout2):
|
def create_tab(title, searchbar, software_list, tabs, dlbutton, layout2):
|
||||||
tab = QWidget()
|
tab = QWidget()
|
||||||
layout = QVBoxLayout()
|
layout = QVBoxLayout()
|
||||||
@@ -16,9 +16,7 @@ def create_tab(title, searchbar, software_list, tabs, dlbutton, layout2):
|
|||||||
tabs.addTab(tab, title)
|
tabs.addTab(tab, title)
|
||||||
return tab
|
return tab
|
||||||
|
|
||||||
#################
|
# Settings Tabs
|
||||||
# SETTINGS TABS #
|
|
||||||
#################
|
|
||||||
def general_tab(title, autoresume, update_checkbox, transparent_window, tabs):
|
def general_tab(title, autoresume, update_checkbox, transparent_window, tabs):
|
||||||
tab = QWidget()
|
tab = QWidget()
|
||||||
layout = QVBoxLayout()
|
layout = QVBoxLayout()
|
||||||
|
|||||||
Reference in New Issue
Block a user