diff --git a/src/leek/qml/Main.qml b/src/leek/qml/Main.qml index af2d497..103b0e7 100644 --- a/src/leek/qml/Main.qml +++ b/src/leek/qml/Main.qml @@ -38,10 +38,40 @@ Kirigami.ApplicationWindow { selectedNameFilter.index: 0 onAccepted: { + installInfoDialog.open(); + QModInstaller.statusChanged.connect(() => { + switch (QModInstaller.status) { + case "initialized": + if (QModInstaller.installed) { + installInfoMessage.text = "This mod is already installed!"; + installInfoDialog.open(); + } + break; + case "NoModExceptionError": + installInfoMessage.text = "This file does not have a mod"; + installInfoDialog.open(); + break; + case "UnsupportedArchiveTypeError": + installInfoMessage.text = "I don't know how to unpack this file, sorry :("; + installInfoDialog.open(); + break; + } + }); QModInstaller.modPath = selectedFile; } } + Kirigami.Dialog { + id: installInfoDialog + title: "Add mod" + standardButtons: Kirigami.Dialog.Ok + padding: Kirigami.Units.largeSpacing + Controls.Label { + id: installInfoMessage + text: "You should never see this text" + } + } + pageStack.columnView.columnResizeMode: Kirigami.ColumnView.SingleColumn pageStack.initialPage: Kirigami.ScrollablePage { title: "Mods" diff --git a/src/leek/qmod_installer.py b/src/leek/qmod_installer.py index 258ce4c..7767ed5 100644 --- a/src/leek/qmod_installer.py +++ b/src/leek/qmod_installer.py @@ -4,7 +4,7 @@ from urllib.parse import urlparse from PySide6.QtCore import Property, QObject, Signal from PySide6.QtQml import QmlElement, QmlSingleton -from leek.mod_installer import ModInstaller, UnsupportedArchiveTypeError +from leek.mod_installer import ModInstaller, UnsupportedArchiveTypeError, NoModExceptionError QML_IMPORT_NAME = "Leek.QModInstaller" QML_IMPORT_MAJOR_VERSION = 1 @@ -43,6 +43,9 @@ class QModInstaller(QObject): except UnsupportedArchiveTypeError: self.__status = "UnsupportedArchiveTypeError" self.status_changed.emit() + except NoModExceptionError: + self.__status = "NoModExceptionError" + self.status_changed.emit() install_status_changed = Signal(name="installStatusChanged")