diff options
author | Papoteur <papoteur@mageia.org> | 2018-12-09 18:22:29 +0100 |
---|---|---|
committer | Papoteur <papoteur@mageia.org> | 2018-12-17 10:19:29 +0100 |
commit | 7438cd8ea20fd04b3273329cae3a1410d4b8ad89 (patch) | |
tree | 1febe341be67a8edeecb01d5661ffd86e1902eb4 /qml/mw.py | |
parent | bfe0c95481b8b0e3cd9a9e5965db0579504808c2 (diff) | |
download | mageiawelcome-7438cd8ea20fd04b3273329cae3a1410d4b8ad89.tar mageiawelcome-7438cd8ea20fd04b3273329cae3a1410d4b8ad89.tar.gz mageiawelcome-7438cd8ea20fd04b3273329cae3a1410d4b8ad89.tar.bz2 mageiawelcome-7438cd8ea20fd04b3273329cae3a1410d4b8ad89.tar.xz mageiawelcome-7438cd8ea20fd04b3273329cae3a1410d4b8ad89.zip |
Rename the main program
Diffstat (limited to 'qml/mw.py')
-rw-r--r-- | qml/mw.py | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/qml/mw.py b/qml/mw.py deleted file mode 100644 index b0b4258..0000000 --- a/qml/mw.py +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -from PyQt5.QtGui import QGuiApplication -from PyQt5.QtQuick import QQuickView -from PyQt5.QtQml import qmlRegisterType -from PyQt5.QtCore import QUrl, QLocale, QTranslator, QLibraryInfo, QVariant, QAbstractListModel, \ - QModelIndex, Qt, QObject, pyqtSlot, pyqtProperty -import sys -import os -import subprocess -from helpers import * -import pwd - -class ConfList(QAbstractListModel): - NameRole = Qt.UserRole + 1 - def __init__(self, parent=None): - super().__init__(parent) - # Changing working directory - abspath = os.path.abspath(__file__) - dname = os.path.dirname(abspath) - os.chdir(dname) - - #collect sys info - #release = open("/etc/release", "r").read() - release = subprocess.getoutput('lsb_release -sd') - release = release[1:-1] - release_nb = subprocess.getoutput('lsb_release -sr') - release_nb = release_nb.strip() - kernel = subprocess.getoutput('uname -r') - if os.uname()[4] == 'x86_64': - arch = '64-bit' - else: - arch = '32-bit' - home = os.getenv("HOME") - username = os.getenv("USER") - try: - desktop = get_desktop_name(os.path.basename(os.getenv("DESKTOP_SESSION"))) - except: - desktop = 'Other' - - if desktop == 'Other': - desktop = get_desktop_name2(os.getenv("XDG_CURRENT_DESKTOP")) - if desktop == 'unknown': - desktop = os.getenv("XDG_CURRENT_DESKTOP") - - self.configuration = [ - {'name': _("Congratulations! You have completed the installation of {}").format(release)}, - {'name': _("You are using linux kernel: {}").format(kernel)}, - {'name': _("Your system architecture is: {}").format(arch)}, - {'name': _("You are now using the Desktop: {}").format(desktop)}, - {'name': _("Your user's id is: {}").format(os.getuid())}, - ] - - def data(self, index, role=Qt.DisplayRole): - row = index.row() - return self.configuration[row]["name"] - - def rowCount(self, parent=QModelIndex()): - return len(self.configuration) - - def roleNames(self): - return { - ConfList.NameRole: b'name', - } - -class Callbrowser(QObject): - def __init__(self): - QObject.__init__(self) - - @pyqtSlot(str) - def weblink(self, link): - subprocess.Popen(["xdg-open", link]) - -class Launcher(QObject): - def __init__(self): - QObject.__init__(self) - - @pyqtSlot(QVariant) - def command(self, app): - if app.isArray(): - cmd = [] - for i in range(0,app.property("length").toInt()): - cmd.append(app.property(i).toString()) - subprocess.Popen(cmd) - -class Norun(QObject): - def __init__(self): - QObject.__init__(self) - self.home = os.getenv("HOME") - self.conffile = self.home + "/.config/mageiawelcome/norun.flag" - print(self.conffile, os.path.exists(self.conffile)) - - @pyqtSlot(bool) - def setRunAtLaunch(self, checked): - print("Setting",checked) - if checked: - if os.path.exists(self.conffile): - os.remove( self.conffile) - else: - os.makedirs(self.home + "/.config/mageiawelcome", exist_ok=True) - with open( self.conffile, 'w') as f: - pass - - @pyqtSlot(result=bool) - def startupcheck(self): - return not os.path.exists(self.conffile) - -class Installable(QObject): - def __init__(self): - QObject.__init__(self) - - @pyqtSlot(str, str, result=bool) - def installable(self, app,repo): - is_app_installed, inst_repo = is_installed(app) - installable = (not is_app_installed) or (repo != inst_repo and inst_repo != "") - return installable - -def username(): - user = pwd.getpwuid(os.getuid())[4] # pw_gecos, i e the real name - if user == "": - user = pwd.getpwuid(os.getuid())[0] # login - return user - -if __name__ == '__main__': - app = QGuiApplication(sys.argv) - locale = QLocale.system().name() - qtTranslator = QTranslator() - if qtTranslator.load("qt_" + locale,QLibraryInfo.location(QLibraryInfo.TranslationsPath)): - app.installTranslator(qtTranslator) - appTranslator = QTranslator() - if appTranslator.load("mageiawelcome_" + locale,':/languages'): - app.installTranslator(appTranslator) - view = QQuickView() - view.setResizeMode(QQuickView.SizeRootObjectToView) - view.setTitle(app.tr("Welcome to Mageia")) - cb = Callbrowser() - la = Launcher() - us = username() - ins = Installable() - cl = ConfList() - nr = Norun() - sc = nr.startupcheck() - view.rootContext().setContextProperty('link', cb) - view.rootContext().setContextProperty('launch', la) - view.rootContext().setContextProperty('user', us) - view.rootContext().setContextProperty('ConfList', cl) - view.rootContext().setContextProperty('installable', ins) - view.rootContext().setContextProperty('startupcheck', sc) - view.rootContext().setContextProperty('norun', nr) - current_path = os.path.abspath(os.path.dirname(__file__)) - qml_file = os.path.join(current_path, 'mw-ui.qml') - view.setSource(QUrl.fromLocalFile(qml_file)) - if view.status() == QQuickView.Error: - for error in view.errors(): - print(error.description()) - sys.exit(-1) - view.show() - res = app.exec_() - del view - sys.exit(res) |