def __init__(self, parent=None): super(Launchbox, self).__init__(parent) self.__server = LauchServer() self.setSizePolicy( QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Minimum ) self.progressWidgets = {} self.progressContainer = QtGui.QWidget() self.progressLayout = QtGui.QVBoxLayout() self.progressLayout.setMargin(0) self.progressContainer.setLayout(self.progressLayout) self.mainLayout = QtGui.QVBoxLayout() self.mainLayout.setSizeConstraint(QtGui.QLayout.SetMinimumSize) enum = Connector().enum() for store in enum.allStores(): if not enum.isSystem(store): self.mainLayout.addWidget(StoreWidget(store)) syncButton = QtGui.QPushButton("Synchronization") syncButton.clicked.connect(lambda: SyncEditor().exec_()) setupLayout = QtGui.QHBoxLayout() setupLayout.addWidget(syncButton) setupLayout.addStretch() hLine = QtGui.QFrame() hLine.setFrameStyle(QtGui.QFrame.HLine | QtGui.QFrame.Raised) self.mainLayout.addWidget(hLine) self.mainLayout.addLayout(setupLayout) hLine = QtGui.QFrame() hLine.setFrameStyle(QtGui.QFrame.HLine | QtGui.QFrame.Raised) self.mainLayout.addWidget(hLine) self.mainLayout.addWidget(self.progressContainer) self.mainLayout.addStretch() self.setLayout(self.mainLayout) self.setWindowTitle("Hotchpotch launch box") self.setWindowIcon(QtGui.QIcon("icons/launch.png")) self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint) Connector().regProgressHandler(start=self.progressStart, stop=self.progressStop)
def __init__(self, parent=None): super(SyncEditor, self).__init__(parent) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.__changed = False self.__buttons = [] self.__rules = SyncRules() enum = Connector().enum() stores = zip(itertools.count(1), [enum.doc(s) for s in enum.allStores() if not enum.isSystem(s) and enum.isMounted(s)]) mainLayout = QtGui.QVBoxLayout() layout = QtGui.QGridLayout() layout.addWidget(QtGui.QLabel("From \\ To"), 0, 0) for (pos, store) in stores: button = DocButton(store, True) self.__buttons.append(button) layout.addWidget(button, 0, pos) button = DocButton(store, True) self.__buttons.append(button) layout.addWidget(button, pos, 0) for (row, store) in stores: for (col, peer) in stores: if store==peer: continue box = QtGui.QComboBox() box.addItems([SyncEditor.MAP[m] for m in SyncEditor.MODES]) box.setCurrentIndex(SyncEditor.MODES.index(self.__rules.mode(store, peer))) box.currentIndexChanged.connect( lambda i, store=store, peer=peer: self.__setRule(store, peer, i)) layout.addWidget(box, row, col) mainLayout.addLayout(layout) buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel); buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("Synchronization rules")