From 569653708c79d2a232fcdca46c9945867de4f2a0 Mon Sep 17 00:00:00 2001 From: Papoteur Date: Fri, 26 Jun 2020 22:40:29 +0200 Subject: Add dialog messages when repositories are not enabled for software installation (mga#24695) Suppress warning about int conversion. --- qml/mageiawelcome.py | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) (limited to 'qml/mageiawelcome.py') diff --git a/qml/mageiawelcome.py b/qml/mageiawelcome.py index 20cc8aa..52e0339 100644 --- a/qml/mageiawelcome.py +++ b/qml/mageiawelcome.py @@ -110,6 +110,9 @@ class Callbrowser(QObject): class Launcher(QObject): installed = pyqtSignal() + tainted = pyqtSignal() + repo = pyqtSignal() + def __init__(self): QObject.__init__(self) @@ -119,12 +122,45 @@ class Launcher(QObject): cmd = [] for i in range(0,app.property("length").toInt()): cmd.append(app.property(i).toString()) - proc = subprocess.Popen(cmd) if cmd[0] == "gurpmi": + repo = cmd[2] + # Check if repositories are enabled + core = False + updates = False + tainted = False + t_updates = False + try: + active = subprocess.run(['urpmq','--list-media','active'], capture_output=True, text=True) + active.check_returncode() + except subprocess.CallProcessError: + print("Error with urpmq") + return + for line in active.stdout: + if line.startswith('Core Release'): + core = True + if line.startswith('Core Updates'): + updates = True + if line.startswith('Tainted Release'): + core = True + if line.startswith('Tainted Updates'): + core = True + if repo == 'tainted' and not (tainted and t_updates) : + # repo not enabled + # print("Tainted not active") + self.tainted.emit() + return + + if repo == '' and not (core and updates) : + # repo not enabled + # print("Core not active") + self.repo.emit() + return + proc = subprocess.Popen(['gurpmi',cmd[1]]) proc.wait() - print(proc.returncode) # Give the signal to reload the applist self.installed.emit() + return + proc = subprocess.Popen(cmd) class Norun(QObject): def __init__(self): @@ -196,10 +232,10 @@ if __name__ == '__main__': # if density is high, use at least factor 2 to scale the initial window. Considering high is more than 190 px/inches. if screen.logicalDotsPerInch() > 190 : factor = max(2.0, factor) - defaultHeight = min(700 * factor, screen.availableGeometry().height()) - defaultWidth = min(1000 * factor, screen.availableGeometry().width()) + defaultHeight = min(int(700 * factor), screen.availableGeometry().height()) + defaultWidth = min(int(1000 * factor), screen.availableGeometry().width()) centerPoint = screen.availableGeometry().center() - view.setGeometry(centerPoint.x() -defaultWidth/2, centerPoint.y() - defaultHeight/2, defaultWidth,defaultHeight) + view.setGeometry(centerPoint.x() -defaultWidth//2, centerPoint.y() - defaultHeight//2, defaultWidth,defaultHeight) view.rootContext().setContextProperty('link', cb) view.rootContext().setContextProperty('launch', la) view.rootContext().setContextProperty('user', us) -- cgit v1.2.1