def __init__(self, tag, typ, fromStore, toStore, item, trayIcon): super(ProgressWidget, self).__init__() self.tag = tag self.__type = typ self.__state = Connector().PROGRESS_RUNNING self.__fromStore = fromStore self.__toStore = toStore self.__trayIcon = trayIcon self.setFrameStyle(QtGui.QFrame.StyledPanel | QtGui.QFrame.Sunken) self.__progressInd = QtGui.QLabel() self.__progressInd.setMargin(4) if typ == Connector().PROGRESS_SYNC: self.fromBtn = DocButton(fromStore, fromStore, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-sync.png")) elif typ == Connector().PROGRESS_REP_DOC: self.fromBtn = DocButton(fromStore, item, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-replicate.png")) elif typ == Connector().PROGRESS_REP_REV: self.fromBtn = RevButton(fromStore, item, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-replicate.png")) self.toBtn = DocButton(toStore, toStore, True) self.progressBar = QtGui.QProgressBar() self.progressBar.setMinimum(0) self.progressBar.setMaximum(0) self.__pauseBtn = QtGui.QToolButton() self.__pauseBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-pause.png")) self.__pauseBtn.setToolTip("Pause") self.__pauseBtn.clicked.connect(self.__pause) self.__stopBtn = QtGui.QToolButton() self.__stopBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__stopBtn.setIcon(QtGui.QIcon("icons/progress-stop.png")) self.__stopBtn.setToolTip("Abort") self.__stopBtn.clicked.connect(self.__stop) self.__skipBtn = QtGui.QToolButton() self.__skipBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__skipBtn.setIcon(QtGui.QIcon("icons/progress-skip.png")) self.__skipBtn.setToolTip("Skip") self.__skipBtn.clicked.connect(self.__skip) self.__skipBtn.hide() self.__errorMsg = QtGui.QLabel() self.__errorMsg.setWordWrap(True) self.__errorMsg.hide() layout = QtGui.QHBoxLayout() layout.setMargin(0) layout.addWidget(self.__progressInd) layout.addWidget(self.fromBtn) layout.addWidget(self.progressBar) layout.addWidget(self.__errorMsg) layout.addWidget(self.toBtn) layout.addWidget(self.__pauseBtn) layout.addWidget(self.__skipBtn) if typ != Connector().PROGRESS_SYNC: layout.addWidget(self.__stopBtn) self.setLayout(layout) Connector().regProgressHandler(progress=self.progress)
class ReplicationProgressWidget(QtGui.QFrame): def __init__(self, tag, typ, uuid, store, parent=None): super(ReplicationProgressWidget, self).__init__(parent) self.tag = tag self.setFrameStyle(QtGui.QFrame.StyledPanel | QtGui.QFrame.Sunken) if typ == PROGRESS_REP_DOC: self.docBtn = DocButton(store, uuid, True) else: self.docBtn = RevButton(store, uuid, True) self.progressBar = QtGui.QProgressBar() self.progressBar.setMaximum(255) self.storeButtons = [] layout = QtGui.QHBoxLayout() layout.setMargin(0) layout.addWidget(self.docBtn) layout.addWidget(self.progressBar) button = DocButton(store, store) self.storeButtons.append(button) layout.addWidget(button) self.setLayout(layout) Connector().regProgressHandler(progress=self.progress) def remove(self): Connector().unregProgressHandler(progress=self.progress) self.docBtn.cleanup() for button in self.storeButtons: button.cleanup() self.deleteLater() def progress(self, tag, value): if self.tag == tag: self.progressBar.setValue(value)
def __init__(self, tag, typ, uuid, store, parent=None): super(ReplicationProgressWidget, self).__init__(parent) self.tag = tag self.setFrameStyle(QtGui.QFrame.StyledPanel | QtGui.QFrame.Sunken) if typ == PROGRESS_REP_DOC: self.docBtn = DocButton(store, uuid, True) else: self.docBtn = RevButton(store, uuid, True) self.progressBar = QtGui.QProgressBar() self.progressBar.setMaximum(255) self.storeButtons = [] layout = QtGui.QHBoxLayout() layout.setMargin(0) layout.addWidget(self.docBtn) layout.addWidget(self.progressBar) button = DocButton(store, store) self.storeButtons.append(button) layout.addWidget(button) self.setLayout(layout) Connector().regProgressHandler(progress=self.progress)
class ProgressWidget(QtGui.QFrame): def __init__(self, tag, typ, fromStore, toStore, item, trayIcon): super(ProgressWidget, self).__init__() self.tag = tag self.__type = typ self.__state = Connector().PROGRESS_RUNNING self.__fromStore = fromStore self.__toStore = toStore self.__trayIcon = trayIcon self.setFrameStyle(QtGui.QFrame.StyledPanel | QtGui.QFrame.Sunken) self.__progressInd = QtGui.QLabel() self.__progressInd.setMargin(4) if typ == Connector().PROGRESS_SYNC: self.fromBtn = DocButton(fromStore, fromStore, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-sync.png")) elif typ == Connector().PROGRESS_REP_DOC: self.fromBtn = DocButton(fromStore, item, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-replicate.png")) elif typ == Connector().PROGRESS_REP_REV: self.fromBtn = RevButton(fromStore, item, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-replicate.png")) self.toBtn = DocButton(toStore, toStore, True) self.progressBar = QtGui.QProgressBar() self.progressBar.setMinimum(0) self.progressBar.setMaximum(0) self.__pauseBtn = QtGui.QToolButton() self.__pauseBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-pause.png")) self.__pauseBtn.setToolTip("Pause") self.__pauseBtn.clicked.connect(self.__pause) self.__stopBtn = QtGui.QToolButton() self.__stopBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__stopBtn.setIcon(QtGui.QIcon("icons/progress-stop.png")) self.__stopBtn.setToolTip("Abort") self.__stopBtn.clicked.connect(self.__stop) self.__skipBtn = QtGui.QToolButton() self.__skipBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__skipBtn.setIcon(QtGui.QIcon("icons/progress-skip.png")) self.__skipBtn.setToolTip("Skip") self.__skipBtn.clicked.connect(self.__skip) self.__skipBtn.hide() self.__errorMsg = QtGui.QLabel() self.__errorMsg.setWordWrap(True) self.__errorMsg.hide() layout = QtGui.QHBoxLayout() layout.setMargin(0) layout.addWidget(self.__progressInd) layout.addWidget(self.fromBtn) layout.addWidget(self.progressBar) layout.addWidget(self.__errorMsg) layout.addWidget(self.toBtn) layout.addWidget(self.__pauseBtn) layout.addWidget(self.__skipBtn) if typ != Connector().PROGRESS_SYNC: layout.addWidget(self.__stopBtn) self.setLayout(layout) Connector().regProgressHandler(progress=self.progress) def remove(self): Connector().unregProgressHandler(progress=self.progress) self.fromBtn.cleanup() self.toBtn.cleanup() self.deleteLater() def progress(self, tag, state, value, err_code=None, err_doc=None, err_rev=None): if self.tag != tag: return if value > 0: self.progressBar.setMaximum(255) self.progressBar.setValue(value) if self.__state == state: return self.__state = state self.progressBar.setVisible(state != Connector().PROGRESS_ERROR) self.__errorMsg.setVisible(state == Connector().PROGRESS_ERROR) self.__skipBtn.setVisible(state == Connector().PROGRESS_ERROR) if state == Connector().PROGRESS_RUNNING: self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-pause.png")) self.__pauseBtn.setToolTip("Pause") if self.__type == Connector().PROGRESS_SYNC: self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-sync.png")) else: self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-replicate.png")) elif state == Connector().PROGRESS_PAUSED: self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-start.png")) self.__pauseBtn.setToolTip("Resume") self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-pause.png")) elif state == Connector().PROGRESS_ERROR: self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-retry.png")) self.__pauseBtn.setToolTip("Retry") self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-error.png")) doc = struct.readTitle(RevLink(self.__fromStore, err_rev), 'unknown document') self.__errorMsg.setText("Error '" + err_code[1] + "' while processing '" + doc + "'!") if self.__type == Connector().PROGRESS_SYNC: title = "Synchronization error" message = "synchronizing" else: title = "Replication error" message = "replicating" message = "Error '" + err_code[1] + "' while " + message + " '" + doc + \ "' \nfrom '" + struct.readTitle(DocLink(self.__fromStore, self.__fromStore), "unknown store") + \ "' to '" + struct.readTitle(DocLink(self.__toStore, self.__toStore), "unknown store") + \ "'!" self.__trayIcon.showMessage(title, message, QtGui.QSystemTrayIcon.Warning) def __pause(self): if self.__state == Connector().PROGRESS_RUNNING: Connector().progressPause(self.tag) else: Connector().progressResume(self.tag) def __stop(self): Connector().progressStop(self.tag) def __skip(self): Connector().progressResume(self.tag, True)
class ProgressWidget(QtGui.QFrame): def __init__(self, tag, typ, fromStore, toStore, item, trayIcon): super(ProgressWidget, self).__init__() self.tag = tag self.__type = typ self.__state = Connector().PROGRESS_RUNNING self.__fromStore = fromStore self.__toStore = toStore self.__trayIcon = trayIcon self.setFrameStyle(QtGui.QFrame.StyledPanel | QtGui.QFrame.Sunken) self.__progressInd = QtGui.QLabel() self.__progressInd.setMargin(4) if typ == Connector().PROGRESS_SYNC: self.fromBtn = DocButton(fromStore, fromStore, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-sync.png")) elif typ == Connector().PROGRESS_REP_DOC: self.fromBtn = DocButton(fromStore, item, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-replicate.png")) elif typ == Connector().PROGRESS_REP_REV: self.fromBtn = RevButton(fromStore, item, True) self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-replicate.png")) self.toBtn = DocButton(toStore, toStore, True) self.progressBar = QtGui.QProgressBar() self.progressBar.setMinimum(0) self.progressBar.setMaximum(0) self.__pauseBtn = QtGui.QToolButton() self.__pauseBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-pause.png")) self.__pauseBtn.setToolTip("Pause") self.__pauseBtn.clicked.connect(self.__pause) self.__stopBtn = QtGui.QToolButton() self.__stopBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__stopBtn.setIcon(QtGui.QIcon("icons/progress-stop.png")) self.__stopBtn.setToolTip("Abort") self.__stopBtn.clicked.connect(self.__stop) self.__skipBtn = QtGui.QToolButton() self.__skipBtn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.__skipBtn.setIcon(QtGui.QIcon("icons/progress-skip.png")) self.__skipBtn.setToolTip("Skip") self.__skipBtn.clicked.connect(self.__skip) self.__skipBtn.hide() self.__errorMsg = QtGui.QLabel() self.__errorMsg.setWordWrap(True) self.__errorMsg.hide() layout = QtGui.QHBoxLayout() layout.setMargin(0) layout.addWidget(self.__progressInd) layout.addWidget(self.fromBtn) layout.addWidget(self.progressBar) layout.addWidget(self.__errorMsg) layout.addWidget(self.toBtn) layout.addWidget(self.__pauseBtn) layout.addWidget(self.__skipBtn) if typ != Connector().PROGRESS_SYNC: layout.addWidget(self.__stopBtn) self.setLayout(layout) Connector().regProgressHandler(progress=self.progress) def remove(self): Connector().unregProgressHandler(progress=self.progress) self.fromBtn.cleanup() self.toBtn.cleanup() self.deleteLater() def progress(self, tag, state, value, err_code=None, err_doc=None, err_rev=None): if self.tag != tag: return if value > 0: self.progressBar.setMaximum(255) self.progressBar.setValue(value) if self.__state == state: return self.__state = state self.progressBar.setVisible(state != Connector().PROGRESS_ERROR) self.__errorMsg.setVisible(state == Connector().PROGRESS_ERROR) self.__skipBtn.setVisible(state == Connector().PROGRESS_ERROR) if state == Connector().PROGRESS_RUNNING: self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-pause.png")) self.__pauseBtn.setToolTip("Pause") if self.__type == Connector().PROGRESS_SYNC: self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-sync.png")) else: self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-replicate.png")) elif state == Connector().PROGRESS_PAUSED: self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-start.png")) self.__pauseBtn.setToolTip("Resume") self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-pause.png")) elif state == Connector().PROGRESS_ERROR: self.__pauseBtn.setIcon(QtGui.QIcon("icons/progress-retry.png")) self.__pauseBtn.setToolTip("Retry") self.__progressInd.setPixmap(QtGui.QPixmap("icons/progress-error.png")) doc = struct.readTitle(RevLink(self.__fromStore, err_rev), "unknown document") self.__errorMsg.setText("Error '" + err_code[1] + "' while processing '" + doc + "'!") if self.__type == Connector().PROGRESS_SYNC: title = "Synchronization error" message = "synchronizing" else: title = "Replication error" message = "replicating" message = ( "Error '" + err_code[1] + "' while " + message + " '" + doc + "' \nfrom '" + struct.readTitle(DocLink(self.__fromStore, self.__fromStore), "unknown store") + "' to '" + struct.readTitle(DocLink(self.__toStore, self.__toStore), "unknown store") + "'!" ) self.__trayIcon.showMessage(title, message, QtGui.QSystemTrayIcon.Warning) def __pause(self): if self.__state == Connector().PROGRESS_RUNNING: Connector().progressPause(self.tag) else: Connector().progressResume(self.tag) def __stop(self): Connector().progressStop(self.tag) def __skip(self): Connector().progressResume(self.tag, True)