def mount_action(self): profile = self.profile() params = BorgMountThread.prepare(profile) if not params['ok']: self._set_status(params['message']) return # Conditions are met (borg binary available, etc) archive_name = self.selected_archive_name() if archive_name: params['cmd'][-1] += f'::{archive_name}' params['current_archive'] = archive_name def receive(): mount_point = dialog.selectedFiles() if mount_point: params['cmd'].append(mount_point[0]) if params.get('current_archive', False): self.mount_points[ params['current_archive']] = mount_point[0] if params['ok']: self._toggle_all_buttons(False) thread = BorgMountThread(params['cmd'], params, parent=self.app) thread.updated.connect(self.mountErrors.setText) thread.result.connect(self.mount_result) thread.start() dialog = choose_file_dialog(self, self.tr("Choose Mount Point"), want_folder=True) dialog.open(receive)
def list_archive_result(self, result): self._set_status('') if result['returncode'] == 0: archive = ArchiveModel.get(name=result['params']['archive_name']) window = ExtractDialog(result['data'], archive) self._toggle_all_buttons(True) window.setParent(self, QtCore.Qt.Sheet) self._window = window # for testing window.show() if window.exec_(): def receive(): extraction_folder = dialog.selectedFiles() if extraction_folder: params = BorgExtractThread.prepare( self.profile(), archive.name, window.selected, extraction_folder[0]) if params['ok']: self._toggle_all_buttons(False) thread = BorgExtractThread(params['cmd'], params, parent=self.app) thread.updated.connect(self.mountErrors.setText) thread.result.connect(self.extract_archive_result) thread.start() else: self._set_status(params['message']) dialog = choose_file_dialog(self, self.tr("Choose Extraction Point"), want_folder=True) dialog.open(receive)
def mount_action(self): profile = self.profile() params = BorgMountThread.prepare(profile) if not params['ok']: self._set_status(params['message']) return # Conditions are met (borg binary available, etc) row_selected = self.archiveTable.selectionModel().selectedRows() if row_selected: snapshot_cell = self.archiveTable.item(row_selected[0].row(), 3) if snapshot_cell: snapshot_name = snapshot_cell.text() params['cmd'][-1] += f'::{snapshot_name}' def receive(): mount_point = dialog.selectedFiles() if mount_point: params['cmd'].append(mount_point[0]) self.mount_point = mount_point[0] if params['ok']: self._toggle_all_buttons(False) thread = BorgMountThread(params['cmd'], params, parent=self) thread.updated.connect(self.mountErrors.setText) thread.result.connect(self.mount_result) thread.start() dialog = choose_file_dialog(self, "Choose Mount Point") dialog.open(receive)
def choose_local_backup_folder(self): def receive(): folder = dialog.selectedFiles() if folder: self.repoURL.setText(folder[0]) self.repoURL.setEnabled(False) self.sshComboBox.setEnabled(False) self.repoLabel.setText(self.tr('Repository Path:')) self.is_remote_repo = False dialog = choose_file_dialog(self, self.tr("Choose Location of Borg Repository")) dialog.open(receive)
def process_result(): def receive(): extraction_folder = dialog.selectedFiles() if extraction_folder: params = BorgExtractJob.prepare( self.profile(), archive.name, window.selected, extraction_folder[0]) if params['ok']: self._toggle_all_buttons(False) job = BorgExtractJob(params['cmd'], params, self.profile().repo.id) job.updated.connect(self.mountErrors.setText) job.result.connect(self.extract_archive_result) self.app.jobs_manager.add_job(job) else: self._set_status(params['message']) dialog = choose_file_dialog(self, self.tr("Choose Extraction Point"), want_folder=True) dialog.open(receive)
def process_result(): def receive(): extraction_folder = dialog.selectedFiles() if extraction_folder: params = BorgExtractThread.prepare( self.profile(), archive.name, window.selected, extraction_folder[0]) if params['ok']: self._toggle_all_buttons(False) thread = BorgExtractThread(params['cmd'], params, parent=self.app) thread.updated.connect(self.mountErrors.setText) thread.result.connect(self.extract_archive_result) thread.start() else: self._set_status(params['message']) dialog = choose_file_dialog(self, self.tr("Choose Extraction Point"), want_folder=True) dialog.open(receive)
def source_add(self, want_folder): def receive(): dirs = dialog.selectedFiles() for dir in dirs: if not os.access(dir, os.R_OK): msg = QMessageBox() msg.setText( self.tr(f"You don't have read access to {dir}.")) msg.exec() return new_source, created = SourceFileModel.get_or_create( dir=dir, profile=self.profile()) if created: self.add_source_to_table(new_source) new_source.save() msg = self.tr( "Choose directory to back up") if want_folder else self.tr( "Choose file(s) to back up") dialog = choose_file_dialog(self, msg, want_folder=want_folder) dialog.open(receive)