diff --git a/src/leek/qml/Main.qml b/src/leek/qml/Main.qml index a4c70b9..048a0b5 100644 --- a/src/leek/qml/Main.qml +++ b/src/leek/qml/Main.qml @@ -47,6 +47,8 @@ Kirigami.ApplicationWindow { installInfoDialog.open(); } else { installDialog.open(); + QModInstaller.finishedInstall.connect(() => installDialog.close()) + QModInstaller.install(); } break; case "NoModExceptionError": diff --git a/src/leek/qmod_installer.py b/src/leek/qmod_installer.py index 9b3825b..7d7939f 100644 --- a/src/leek/qmod_installer.py +++ b/src/leek/qmod_installer.py @@ -1,4 +1,3 @@ -import time from pathlib import Path from urllib.parse import urlparse @@ -68,21 +67,22 @@ class QModInstaller(QObject): @Slot() def install(self) -> None: - worker = InstallWorker(InstallWorkerSignals()) - # worker.signals.installed.connect(self.mod_finished_installing) + worker = InstallWorker(InstallWorkerSignals(), self.__mod_installer) worker.signals.installed.connect(self.finished_install) QThreadPool.globalInstance().start(worker) class InstallWorker(QRunnable): - def __init__(self, signals) -> None: + __installer: ModInstaller + + def __init__(self, signals, installer: ModInstaller) -> None: super().__init__() self.signals = signals + self.__installer = installer # @Slot() def run(self) -> None: - # Fake installing for now - time.sleep(4) + self.__installer.install() self.signals.installed.emit()