summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qml/InstallSoftware.qml2
-rw-r--r--qml/mageiawelcome.py21
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):