mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-03 17:39:42 +02:00
fix: fixed absolutely nothing by changing some qt worker stuff
This commit is contained in:
@@ -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'):
|
||||||
|
|||||||
Reference in New Issue
Block a user