From fecc6f752a7c4388d949a7379f2b4118cc2a1648 Mon Sep 17 00:00:00 2001 From: Manu Date: Sat, 27 Oct 2018 19:21:14 +0800 Subject: [PATCH] Add Screencast --- README.md | 2 ++ vorta/UI/mainwindow.ui | 18 ++++++++++++++++++ vorta/borg_runner.py | 6 ++++-- vorta/main.py | 9 ++++----- vorta/repo_init.py | 29 ----------------------------- 5 files changed, 28 insertions(+), 36 deletions(-) delete mode 100644 vorta/repo_init.py diff --git a/README.md b/README.md index e9666cfe..6b11f39e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Vorta - BorgBackup GUI +[[ https://files.qmax.us/vorta-screencast.gif | width = 100% ]] + [Vorta](http://memory-alpha.wikia.com/wiki/Vorta) is a GUI for [BorgBackup](https://borgbackup.readthedocs.io). It's in alpha status and currently has the following features: - Select and manage SSH keys diff --git a/vorta/UI/mainwindow.ui b/vorta/UI/mainwindow.ui index 8d41186b..c1d18aa2 100644 --- a/vorta/UI/mainwindow.ui +++ b/vorta/UI/mainwindow.ui @@ -10,9 +10,24 @@ 600 + + + 800 + 600 + + + + + 800 + 600 + + MainWindow + + 1.000000000000000 + @@ -496,6 +511,9 @@ + + true + diff --git a/vorta/borg_runner.py b/vorta/borg_runner.py index 44279e03..baa1a1b1 100644 --- a/vorta/borg_runner.py +++ b/vorta/borg_runner.py @@ -33,9 +33,11 @@ class BorgThread(QtCore.QThread): def run(self): with Popen(self.cmd, stdout=PIPE, stderr=PIPE, bufsize=1, universal_newlines=True, env=self.env) as p: for line in p.stderr: - print(line) parsed = json.loads(line) - self.updated.emit(f'{parsed["levelname"]}: {parsed["message"]}') + if parsed['type'] == 'log_message': + self.updated.emit(f'{parsed["levelname"]}: {parsed["message"]}') + elif parsed['type'] == 'file_status': + self.updated.emit(f'{parsed["path"]} ({parsed["status"]})') p.wait() stdout = p.stdout.read() diff --git a/vorta/main.py b/vorta/main.py index a06dc54a..9b0b9d0d 100644 --- a/vorta/main.py +++ b/vorta/main.py @@ -49,9 +49,8 @@ class MainWindow(MainWindowBase, MainWindowUI): self.createStartBtn.setEnabled(False) self.createStartBtn.repaint() - repo_id = self.repoSelector.currentData() - repo = RepoModel.get(id=repo_id) - cmd = ['borg', 'create', '--log-json', '--json', '-C', self.profile.compression, + repo = self.profile.repo + cmd = ['borg', 'create', '--list', '--info', '--log-json', '--json', '-C', self.profile.compression, f'{repo.url}::{platform.node()}-{dt.now().isoformat()}' ] for i in range(n_backup_folders): @@ -69,12 +68,12 @@ class MainWindow(MainWindowBase, MainWindowUI): self.createStartBtn.setEnabled(True) self.createStartBtn.repaint() if result['returncode'] == 0: - self.set_status('Finished backup.', 100) + self.set_status(progress_max=100) new_snapshot = SnapshotModel( snapshot_id=result['data']['archive']['id'], name=result['data']['archive']['name'], time=parser.parse(result['data']['archive']['start']), - repo=self.repoSelector.currentData() + repo=self.profile.repo ) new_snapshot.save() if 'cache' in result['data']: diff --git a/vorta/repo_init.py b/vorta/repo_init.py deleted file mode 100644 index b92d2eae..00000000 --- a/vorta/repo_init.py +++ /dev/null @@ -1,29 +0,0 @@ -import os -from PyQt5 import uic -from .borg_runner import BorgThread - -uifile = os.path.join(os.path.dirname(__file__), 'UI/initrepo.ui') -InitRepoUI, InitRepoBase = uic.loadUiType(uifile) - - -class InitRepoWindow(InitRepoBase, InitRepoUI): - def __init__(self, cmd, env): - super().__init__() - self.setupUi(self) - self.closeButton.clicked.connect(self.close) - - self.logText.appendPlainText('Connecting to repo...') - self._thread = BorgThread(self, cmd, env) - self._thread.updated.connect(self.update_log) - self._thread.result.connect(self.get_result) - - def update_log(self, text): - self.logText.appendPlainText(text) - - def get_result(self, result): - if result['returncode'] == 0: - self.logText.appendPlainText('Finished successfully.') - self.closeButton.setEnabled(True) - else: - self.logText.appendPlainText('Finished with errors.') - self.closeButton.setEnabled(True)