def askPasswordDialog(parent, title, prompt, timeout=None): if parent is None: app = qttools.createQApplication() translator = qttools.translator() app.installTranslator(translator) import icon dialog = QInputDialog() timer = QTimer() if not timeout is None: timer.timeout.connect(dialog.reject) timer.setInterval(timeout * 1000) timer.start() dialog.setWindowIcon(icon.BIT_LOGO) dialog.setWindowTitle(title) dialog.setLabelText(prompt) dialog.setTextEchoMode(QLineEdit.Password) QApplication.processEvents() ret = dialog.exec_() timer.stop() if ret: password = dialog.textValue() else: password = '' del (dialog) return (password)
def askPasswordDialog(parent, title, prompt, timeout = None): if parent is None: app = qttools.createQApplication() translator = qttools.translator() app.installTranslator(translator) import icon dialog = QInputDialog() timer = QTimer() if not timeout is None: timer.timeout.connect(dialog.reject) timer.setInterval(timeout * 1000) timer.start() dialog.setWindowIcon(icon.BIT_LOGO) dialog.setWindowTitle(title) dialog.setLabelText(prompt) dialog.setTextEchoMode(QLineEdit.Password) QApplication.processEvents() ret = dialog.exec_() timer.stop() if ret: password = dialog.textValue() else: password = '' del(dialog) return(password)
def contextMenuClicked(self, point): menu = QMenu() clipboard = qttools.createQApplication().clipboard() cursor = self.txtLogView.textCursor() btnCopy = menu.addAction(_('Copy')) btnCopy.triggered.connect(lambda: clipboard.setText(cursor.selectedText())) btnCopy.setEnabled(cursor.hasSelection()) btnAddExclude = menu.addAction(_('Add to Exclude')) btnAddExclude.triggered.connect(self.btnAddExcludeClicked) btnAddExclude.setEnabled(cursor.hasSelection()) btnDecode = menu.addAction(_('Decode')) btnDecode.triggered.connect(self.btnDecodeClicked) btnDecode.setEnabled(cursor.hasSelection()) btnDecode.setVisible(self.config.snapshotsMode() == 'ssh_encfs') menu.exec_(self.txtLogView.mapToGlobal(point))
with TemporaryDirectory() as tmp: cfgFile = os.path.join(tmp, 'config') appInstanceFile = os.path.join(tmp, 'appinstance') cfg = config.Config(cfgFile) appInstance = GUIApplicationInstance(appInstanceFile, '') cfg.setSnapshotsPath(tmp) cfg.setInclude([('/home/janedoe', 0),]) cfg.checkConfig() cfg.save() sn = snapshots.Snapshots(cfg) rootSid = snapshots.RootSnapshot(cfg) global qapp qapp = qttools.createQApplication(cfg.APP_NAME) translator = qttools.translator() qapp.installTranslator(translator) ######################### ### Snapshot Log View ### ######################### cmd = ['../backintime/common/backintime', '--config', cfgFile, 'backup'] proc = subprocess.Popen(cmd) proc.communicate() mainWindow = app.MainWindow(cfg, appInstance, qapp) log = LogViewDialog(mainWindow, snapshots.lastSnapshot(cfg)) setScreenshotTimer(log, '_images/snapshot_log_view.png')
def __init__(self): self.snapshots = snapshots.Snapshots() self.config = self.snapshots.config self.decode = None if len(sys.argv) > 1: if not self.config.setCurrentProfile(sys.argv[1]): logger.warning("Failed to change Profile_ID %s" % sys.argv[1], self) self.qapp = qttools.createQApplication(self.config.APP_NAME) translator = qttools.translator() self.qapp.installTranslator(translator) self.qapp.setQuitOnLastWindowClosed(False) import icon self.icon = icon self.qapp.setWindowIcon(icon.BIT_LOGO) self.status_icon = QSystemTrayIcon(icon.BIT_LOGO) #self.status_icon.actionCollection().clear() self.contextMenu = QMenu() self.menuProfileName = self.contextMenu.addAction( _('Profile: "%s"') % self.config.profileName()) qttools.setFontBold(self.menuProfileName) self.contextMenu.addSeparator() self.menuStatusMessage = self.contextMenu.addAction(_('Done')) self.menuProgress = self.contextMenu.addAction('') self.menuProgress.setVisible(False) self.contextMenu.addSeparator() self.btnPause = self.contextMenu.addAction(icon.PAUSE, _('Pause snapshot process')) action = lambda: os.kill(self.snapshots.pid(), signal.SIGSTOP) self.btnPause.triggered.connect(action) self.btnResume = self.contextMenu.addAction( icon.RESUME, _('Resume snapshot process')) action = lambda: os.kill(self.snapshots.pid(), signal.SIGCONT) self.btnResume.triggered.connect(action) self.btnResume.setVisible(False) self.btnStop = self.contextMenu.addAction(icon.STOP, _('Stop snapshot process')) self.btnStop.triggered.connect(self.onBtnStop) self.contextMenu.addSeparator() self.btnDecode = self.contextMenu.addAction(icon.VIEW_SNAPSHOT_LOG, _('decode paths')) self.btnDecode.setCheckable(True) self.btnDecode.setVisible(self.config.snapshotsMode() == 'ssh_encfs') self.btnDecode.toggled.connect(self.onBtnDecode) self.openLog = self.contextMenu.addAction(icon.VIEW_LAST_LOG, _('View Last Log')) self.openLog.triggered.connect(self.onOpenLog) self.startBIT = self.contextMenu.addAction(icon.BIT_LOGO, _('Start BackInTime')) self.startBIT.triggered.connect(self.onStartBIT) self.status_icon.setContextMenu(self.contextMenu) self.pixmap = icon.BIT_LOGO.pixmap(24) self.progressBar = QProgressBar() self.progressBar.setMinimum(0) self.progressBar.setMaximum(100) self.progressBar.setValue(0) self.progressBar.setTextVisible(False) self.progressBar.resize(24, 6) self.progressBar.render(self.pixmap, sourceRegion=QRegion(0, -14, 24, 6), flags=QWidget.RenderFlags( QWidget.DrawChildren)) self.first_error = self.config.notify() self.popup = None self.last_message = None self.timer = QTimer() self.timer.timeout.connect(self.updateInfo) self.ppid = os.getppid()
appInstanceFile = os.path.join(tmp, 'appinstance') cfg = config.Config(cfgFile) appInstance = GUIApplicationInstance(appInstanceFile, '') cfg.setSnapshotsPath(tmp) cfg.setInclude([ ('/home/janedoe', 0), ]) cfg.checkConfig() cfg.save() sn = snapshots.Snapshots(cfg) rootSid = snapshots.RootSnapshot(cfg) global qapp qapp = qttools.createQApplication(cfg.APP_NAME) translator = qttools.translator() qapp.installTranslator(translator) ######################### ### Snapshot Log View ### ######################### cmd = ['../backintime/common/backintime', '--config', cfgFile, 'backup'] proc = subprocess.Popen(cmd) proc.communicate() mainWindow = app.MainWindow(cfg, appInstance, qapp) log = LogViewDialog(mainWindow, snapshots.lastSnapshot(cfg)) setScreenshotTimer(log, '_images/snapshot_log_view.png')
def __init__(self): self.snapshots = snapshots.Snapshots() self.config = self.snapshots.config self.decode = None if len(sys.argv) > 1: if not self.config.setCurrentProfile(sys.argv[1]): logger.warning("Failed to change Profile_ID %s" %sys.argv[1], self) self.qapp = qttools.createQApplication(self.config.APP_NAME) translator = qttools.translator() self.qapp.installTranslator(translator) self.qapp.setQuitOnLastWindowClosed(False) import icon self.icon = icon self.qapp.setWindowIcon(icon.BIT_LOGO) self.status_icon = QSystemTrayIcon(icon.BIT_LOGO) #self.status_icon.actionCollection().clear() self.contextMenu = QMenu() self.menuProfileName = self.contextMenu.addAction(_('Profile: "%s"') % self.config.profileName()) qttools.setFontBold(self.menuProfileName) self.contextMenu.addSeparator() self.menuStatusMessage = self.contextMenu.addAction(_('Done')) self.menuProgress = self.contextMenu.addAction('') self.menuProgress.setVisible(False) self.contextMenu.addSeparator() self.btnPause = self.contextMenu.addAction(icon.PAUSE, _('Pause snapshot process')) action = lambda: os.kill(self.snapshots.pid(), signal.SIGSTOP) self.btnPause.triggered.connect(action) self.btnResume = self.contextMenu.addAction(icon.RESUME, _('Resume snapshot process')) action = lambda: os.kill(self.snapshots.pid(), signal.SIGCONT) self.btnResume.triggered.connect(action) self.btnResume.setVisible(False) self.btnStop = self.contextMenu.addAction(icon.STOP, _('Stop snapshot process')) self.btnStop.triggered.connect(self.onBtnStop) self.contextMenu.addSeparator() self.btnDecode = self.contextMenu.addAction(icon.VIEW_SNAPSHOT_LOG, _('decode paths')) self.btnDecode.setCheckable(True) self.btnDecode.setVisible(self.config.snapshotsMode() == 'ssh_encfs') self.btnDecode.toggled.connect(self.onBtnDecode) self.openLog = self.contextMenu.addAction(icon.VIEW_LAST_LOG, _('View Last Log')) self.openLog.triggered.connect(self.onOpenLog) self.startBIT = self.contextMenu.addAction(icon.BIT_LOGO, _('Start BackInTime')) self.startBIT.triggered.connect(self.onStartBIT) self.status_icon.setContextMenu(self.contextMenu) self.pixmap = icon.BIT_LOGO.pixmap(24) self.progressBar = QProgressBar() self.progressBar.setMinimum(0) self.progressBar.setMaximum(100) self.progressBar.setValue(0) self.progressBar.setTextVisible(False) self.progressBar.resize(24, 6) self.progressBar.render(self.pixmap, sourceRegion = QRegion(0, -14, 24, 6), flags = QWidget.RenderFlags(QWidget.DrawChildren)) self.first_error = self.config.notify() self.popup = None self.last_message = None self.timer = QTimer() self.timer.timeout.connect(self.updateInfo)