diff options
-rw-r--r-- | qml/InstallSoftware.qml | 2 | ||||
-rw-r--r-- | qml/mageiawelcome.py | 21 |
2 files changed, 21 insertions, 2 deletions
diff --git a/qml/InstallSoftware.qml b/qml/InstallSoftware.qml index af90294..f7d964b 100644 --- a/qml/InstallSoftware.qml +++ b/qml/InstallSoftware.qml @@ -37,7 +37,7 @@ Rectangle { anchors.left: parent.left; anchors.leftMargin: 20; width: slideshow.width * .35 objectName: "launch" - onMbuttonClicked: { launch.command(["/usr/bin/dnfdragora",])} + onMbuttonClicked: { launch.install_and_launch(["dnfdragora","/usr/bin/dnfdragora"])} buttonText: qsTr("Dnfdragora") } Label { diff --git a/qml/mageiawelcome.py b/qml/mageiawelcome.py index 1a181e0..da3fec6 100644 --- a/qml/mageiawelcome.py +++ b/qml/mageiawelcome.py @@ -176,10 +176,13 @@ class Launcher(QObject): cmd = [] for i in range(0, app.property("length").toInt()): cmd.append(app.property(i).toString()) + self._command(cmd[0]) + + def _command(self, cmd): try: subprocess.Popen(cmd) except: - print(f"Exception running {cmd[0]}") + print(f"Exception running {cmd}") self.noprogram.emit() return @@ -249,6 +252,22 @@ class Launcher(QObject): self.installed.emit() return + @pyqtSlot(QVariant) + def install_and_launch(self, app): + """ + app should be an array with the package name to install and then the command to launch + """ + if app.isArray(): + cmd = [] + # app should contain package, repository + for i in range(0, app.property("length").toInt()): + cmd.append(app.property(i).toString()) + print(cmd) + is_app_installed, inst_repo = is_installed(cmd[0]) + if not is_app_installed: + proc = subprocess.Popen(["/usr/bin/gurpmi", cmd[0]]) + proc.wait() + self._command(cmd[1]) class Norun(QObject): def __init__(self): |