#!/usr/bin/python3 import sys from PyQt5 import QtCore, QtGui, QtWidgets, uic from libsisyphus import getMirrors, setActiveMirror class SisyphusConfig(QtWidgets.QMainWindow): def __init__(self): super(SisyphusConfig, self).__init__() uic.loadUi('ui/sisyphus-config.ui', self) self.centerOnScreen() self.MIRRORLIST = getMirrors() self.updateMirrorList() self.show() self.closeButton.clicked.connect(self.SisyphusConfigExit) self.applyButton.clicked.connect(self.SisyphusConfigApply) self.mirrorCombo.activated.connect(self.setMirrorList) def centerOnScreen(self): resolution = QtWidgets.QDesktopWidget().screenGeometry() self.move((resolution.width() / 2) - (self.frameSize().width() / 2), (resolution.height() / 2) - (self.frameSize().height() / 2)) def updateMirrorList(self): model = QtGui.QStandardItemModel() for row in self.MIRRORLIST: indx = self.MIRRORLIST.index(row) item = QtGui.QStandardItem() item.setText(row['Url']) model.setItem(indx, item) if row['isActive'] : self.ACTIVEMIRRORINDEX = indx self.mirrorCombo.setModel(model) self.mirrorCombo.setCurrentIndex(self.ACTIVEMIRRORINDEX) def setMirrorList(self): self.MIRRORLIST[self.ACTIVEMIRRORINDEX]['isActive'] = False self.ACTIVEMIRRORINDEX = self.mirrorCombo.currentIndex() self.MIRRORLIST[self.ACTIVEMIRRORINDEX]['isActive'] = True def SisyphusConfigApply(self): setActiveMirror(self.MIRRORLIST) def SisyphusConfigExit(self): self.close() if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = SisyphusConfig() sys.exit(app.exec_())