123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #!/usr/bin/env python3
- import worker
- from PySide2 import QtCore, QtWidgets, QtGui
- class MainWindow(QtWidgets.QWidget):
- def __init__(self, app):
- super().__init__()
- self.app = app
- self.setGeometry(500, 400, 500, 400)
- self.setWindowModified(True)
- self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
- self.setWindowIcon(QtGui.QIcon(app.get_icon()))
- qRect = self.frameGeometry()
- qRect.moveCenter(QtWidgets.QDesktopWidget().availableGeometry().center())
- self.move(qRect.topLeft())
- layout = QtWidgets.QVBoxLayout()
- self.setLayout(layout)
- img = QtGui.QPixmap(app.get_icon())
- logo = QtWidgets.QLabel(self)
- logo.setPixmap(img)
- logo.setAlignment(QtCore.Qt.AlignBaseline| QtCore.Qt.AlignCenter)
- layout.addWidget(logo, 1, QtCore.Qt.AlignBaseline| QtCore.Qt.AlignCenter)
- title = QtWidgets.QLabel(self)
- title.setText("OZW Admin")
- title.setFont(QtGui.QFont("Times", 28, QtGui.QFont.Bold))
- layout.addWidget(title, 0, QtCore.Qt.AlignBaseline| QtCore.Qt.AlignCenter)
- self.header = QtWidgets.QLabel(self)
- self.header.setText("Checking plugs")
- self.header.setAlignment(QtCore.Qt.AlignCenter)
- layout.addWidget(self.header, 0, QtCore.Qt.AlignBaseline| QtCore.Qt.AlignCenter)
- self.desc = QtWidgets.QLabel(self)
- self.desc.setText('...')
- self.desc.setAlignment(QtCore.Qt.AlignCenter)
- layout.addWidget(self.desc, 0, QtCore.Qt.AlignBaseline| QtCore.Qt.AlignCenter)
- self.pgbar = QtWidgets.QProgressBar(self)
- layout.addWidget(self.pgbar)
- self.plugs = []
- self.pgval = 0
- self.pw = worker.PlugsWorker(self)
- self.exit_code = 0
- def close(self):
- return super().close()
- def quit(self):
- self.pw.stop()
- self.close()
- self.app.exit(self.exit_code)
- def updateExitCode(self, code):
- if code in [0, 255, 256]:
- self.exit_code = code
- def showEvent(self, event):
- super().showEvent(event)
- self.pw.run()
- def updateFinised(self):
- if self.exit_code != 0:
- self.header.setText(f'{self.header.text()} - A manual restart is required!')
- self.desc.setText("Exit and launch OZWAdmin again.")
- self.layout().removeWidget(self.pgbar)
- self.pgbar.deleteLater()
- button = QtWidgets.QPushButton("Exit")
- button.clicked.connect(self.quit)
- self.layout().addWidget(button)
- else:
- self.quit()
- def updateProgress(self):
- self.pgval = (self.pgval + 1)
- self.pgbar.setValue(self.pgval)
- def updateText(self, header, desc):
- self.header.setText(header)
- self.desc.setText(desc)
- def get_plugs(self):
- if len(self.plugs) != 0:
- return self.plugs
- yaml = self.app.get_yaml()
- for app_data in yaml['apps'].values():
- for plug in app_data['plugs']:
- provider = None
- for xplug, values in yaml['plugs'].items():
- if xplug != plug:
- continue
- provider = values['default-provider']
- break
- self.plugs.append({'provider': provider, 'name': plug})
- self.pgbar.setRange(0,len(self.plugs))
- return self.plugs
|