fix: fixed absolutely nothing by changing some qt worker stuff

This commit is contained in:
2026-04-09 22:27:26 +02:00
parent dcba60c695
commit b4ba9ea4d1
+13 -26
View File
@@ -1,4 +1,4 @@
from PySide6.QtCore import Qt, QPoint, QObject, Signal, QRunnable, QThreadPool from PySide6.QtCore import Qt, QPoint, Signal, QThreadPool, QThread
from utils.logging.logs import consoleLog, remove_download_log from utils.logging.logs import consoleLog, remove_download_log
from utils.network.download import download_selected from utils.network.download import download_selected
from utils.data.tracker import get_magnet_link from utils.data.tracker import get_magnet_link
@@ -15,20 +15,17 @@ import time
import os import os
class WorkerSignals(QObject): class MagnetWorker(QThread):
finished = Signal(str) finished = Signal(str)
def __init__(self, url, parent=None):
class Worker(QRunnable): super().__init__(parent)
def __init__(self, url):
super().__init__()
self.url = url self.url = url
self.signals = WorkerSignals()
def run(self): def run(self):
magnet = get_magnet_link(self.url) magnet = get_magnet_link(self.url)
if magnet: if magnet:
self.signals.finished.emit(magnet) self.finished.emit(magnet)
class ContextMenu_Downloads: class ContextMenu_Downloads:
def __init__(self, main_window): def __init__(self, main_window):
@@ -228,8 +225,6 @@ class ContextMenu_TrackerTable:
def copyMagnetURIAction(self): def copyMagnetURIAction(self):
if not hasattr(self, '_context_menu_row'): if not hasattr(self, '_context_menu_row'):
return return
if not hasattr(self, "_workers"):
self._workers = []
row = self._context_menu_row row = self._context_menu_row
if row < 0 or row >= len(state.trackers): if row < 0 or row >= len(state.trackers):
return return
@@ -248,23 +243,15 @@ class ContextMenu_TrackerTable:
if not url: if not url:
return return
def copy_to_clipboard(magnet): worker = MagnetWorker(url, parent=self.main_window)
clipboard = QtWidgets.QApplication.clipboard() worker.finished.connect(self._on_magnet_fetched)
clipboard.setText(magnet) worker.finished.connect(worker.deleteLater)
consoleLog("Magnet URI copied to clipboard!", True) worker.start()
def _on_magnet_fetched(self, magnet):
def start_worker(url): clipboard = QtWidgets.QApplication.clipboard()
worker = Worker(url) clipboard.setText(magnet)
worker.signals.finished.connect(copy_to_clipboard) consoleLog("Magnet URI copied to clipboard!", True)
self._workers.append(worker)
worker.signals.finished.connect(lambda _: self._workers.remove(worker))
QThreadPool.globalInstance().start(worker)
start_worker(url)
def openInBrowserAction(self): def openInBrowserAction(self):
if not hasattr(self, '_context_menu_row'): if not hasattr(self, '_context_menu_row'):