Commit Graph

598 Commits

Author SHA1 Message Date
Manu c3db61d74a Update translations 2022-11-04 10:23:23 +01:00
real-yfprojects b95da02b97 Fix sorting of diff results.
* src/vorta/views/diff_result.py (DiffSortProxyModel.choose_data): Return correct data for column `2`.
2022-11-03 21:12:40 +01:00
real-yfprojects c5034e171b Remove legacy `tree_view` (tree model) implementation.
* src/vorta/views/partials/tree_view.py : Delete.
2022-11-03 21:12:40 +01:00
real-yfprojects 2126ef769d Remove *unset* repository value from combobox when a repo is selected.
* src/vorta/views/repo_tab.py (init_repo_stats): Remove *unset* item from combobox.

* src/vorta/views/repo_tab.py (populate_from_profile): Move into `populate_repositories`.

* src/vorta/views/repo_tab.py (repo_unlink_action): Update unset condition. And repopulate repo combobox.

* src/vorta/views/repo_tab.py populate_repositories -> populate_from_profile
* src/vorta/views/main_window.py

* tests/test_repo.py : Fix tests.
2022-11-03 20:47:52 +01:00
real-yfprojects 14d587876e Replace `--prefix` with `-a` for borg v1.2.2 also.
* src/vorta/borg/prune.py (BorgPruneJob.prepare)
2022-11-02 17:05:03 +01:00
real-yfprojects 0188b753b4 Use `isomtime` instead of `mtime` from borg v1.2.2 on.
* src/vorta/borg/list_archive.py (BorgListArchiveJob.prepare)

* src/vorta/views/extract_dialog.py (parse_json_lines)
2022-11-02 17:05:03 +01:00
real-yfprojects ceb1a3bd3b Add compatibility feature `V122`.
* src/vorta/borg/_compatibility.py (MIN_BORG_FOR_FEATURE)
2022-11-02 17:05:03 +01:00
yfprojects 055338af2c
Link to report form chooser for critical errors. (#1451)
Currently the link will open an empty issue. Now the user can choose one of the templates.

* src/vorta/__main__.py : Replace link.
2022-10-31 17:50:32 +01:00
yfprojects 93307d278d
Add default `unset` value to repo combobox. By @real-yfprojects (#1429)
First element with index 0 is always the 'unset' option with data `None`.

* src/vorta/views/repo_tab.py (RepoTab.set_repos): Add element.

* src/vorta/views/repo_tab.py (RepoTab.repo_unlink_action): Handle the first element as unset.

* src/vorta/views/repo_tab.py (RepoTab.copy_URL_action): Handle unset state.

* tests/test_repo.py (test_repo_unlink): Fix test.

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
2022-10-13 13:12:20 +02:00
yfprojects 62ba92a0ed
Log the error when parsing a file in `~/.ssh` fails. (#1410)
This should help debugging #1304.

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
Co-authored-by: Manu <3916435+m3nu@users.noreply.github.com>
2022-08-27 21:51:31 +02:00
yfprojects 4e06b6df5a
Hide SSH dropdown for local repos. By @real-yfprojects (#1407)
* src/vorta/assets/UI/repotab.ui : Name `frameRepoSettings` and `layoutSSHKey`.

* src/vorta/views/repo_tab.py (RepoTab.init_repo_stats): Disable `frameRepoSettings` if no repo is selected.
	Disable widgets in `layoutSSHKey` in case of a local repository except from `bAddSSHKey` so the
	the user can add a key for a adding a repo.

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
2022-08-26 12:23:16 +02:00
yfprojects af311c98cf
Improve tooltips in archive tab. By @real-yfprojects (#1401)
* src/vorta/assets/UI/archivetab.ui (bCheck): Fix typo.
* src/vorta/assets/UI/archivetab.ui (compactButton): Add tooltip.
* src/vorta/assets/UI/archivetab.ui (bDelete): Fix typo.
* src/vorta/views/archive_tab.py (on_selection_change): Fix tooltip for `bMountArchive`.
* src/vorta/views/archive_tab.py (bmountarchive_refresh): Fix punctuation and set tooltip correctly. Add option for setting the icon only.
* src/vorta/views/archive_tab.py (bmountrepo_refresh): Fix punctutation.
* src/vorta/views/archive_tab.py (set_icons): Refresh only the icon of `bMountArchive`.

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
2022-08-25 09:11:12 +02:00
real-yfprojects ca497f8815 Run hooks on the code base.
This adds trailing lines to files,
removes trailing white space in all the other lines and unifies line endings.
Additionally it formats the test code with `black`.
2022-08-16 18:20:34 +02:00
Manu b6a24debb7 Apply automatic formatting 2022-08-15 15:23:55 +02:00
Marc Cousin 94e76644c4
Cleanup temp files. By @marco44 (#1384) 2022-08-14 20:42:00 +02:00
real-yfprojects 56de55ed8b
Add icons to display mode combobox.
* src/vorta/assets/icons/view-list-details.svg : Add icon for flat list

* src/vorta/assets/icons/view-list-tree.svg : Add icon for tree

* src/vorta/views/diff_result.py (DiffDialog.set_icons)

* src/vorta/views/extract_dialog.py (ExtractDialog.set_icons)
2022-07-25 16:15:47 +02:00
real-yfprojects cbc0780caa
Add icon for `folder on top` button.
* src/vorta/assets/icons/folder-on-top.svg : Add icon to repo.

* src/vorta/views/diff_result.py (DiffDialog.set_icons): Set icon.
* src/vorta/views/extract_dialog.py (ExtractDialog.set_icons): Set icon.
2022-07-25 16:15:46 +02:00
real-yfprojects 372b7107dd
Improve extract dialog GUI.
Adds a contextmenu and a simplified tree view mode, a button to collapse the tree
and the option to keep folders on top of the list.

* src/vorta/assets/UI/extractdialog.ui
* src/vorta/views/extract_dialog.py

* src/vorta/views/extract_dialog.py (ExtractFileItem): Add this variable holding the type
	 `FileSystemItem[FileData]`.
2022-07-25 16:15:46 +02:00
real-yfprojects e7772f517b
Add sorting to ExtractDialog.
* src/vorta/views/extract_dialog.py : Implement `ExtractSortProxyModel` inheriting from
	 `FileTreeSortProxyModel`.

* src/vorta/views/extract_dialog.py (ExtractDialog.__init__): Use sortproxymodel.

* src/vorta/views/extract_dialog.py (ExtractDialog): Implement `slot_sorted` that moves the viewport.
2022-07-25 16:15:45 +02:00
real-yfprojects 7eedd39319
Implement extracting exactly the selected files.
* src/vorta/borg/extract.py (BorgExtractJob.prepare): Use `patterns-from` to include only the selected items.
2022-07-25 16:15:45 +02:00
real-yfprojects 71af54f59b
Use new treemodel for extract dialog.
* src/vorta/views/extract_dialog.py: Add `ParseThread`, `ExtractTree` and `parse_json_lines`.

* src/vorta/views/extract_dialog.py (ExtractTree.__init__): Adjust signature.

* src/vorta/borg/list_archive.py (BorgListArchiveJob.prepare): Adjust format to
	include additional attributes.

* src/vorta/views/archive_tab.py (ArchiveTab): Parse extract data using `ParseThread` and
	open `ExtractDialog` afterwards.

* tests/test_archives.py (test_archive_extract): Update tests.

* src/vorta/borg/extract.py (BorgExtractJob.prepare): Adjust signature.
	Handling of the data isn't implemented yet.

* tests/test_extract.py
2022-07-25 16:15:45 +02:00
real-yfprojects 71aed9ba0e
Keep GUI responsive while processing diff results.
* src/vorta/views/archive_tab.py (ArchiveTab.list_diff_result): Start `ParseThread` that does the processing and creates the dialog.

* src/vorta/views/archive_tab.py (ArchiveTab.show_diff_result): Implement method showing `DiffResultDialog`.

* src/vorta/views/diff_result.py (ParseThread): Move processing of diff results to this thread.
2022-07-25 16:13:28 +02:00
real-yfprojects bdbc172157
Open `DiffResultDialog` as a normal dialog instead of a sheet.
* src/vorta/views/archive_tab.py (ArchiveTab.list_diff_result)
2022-07-25 16:13:28 +02:00
real-yfprojects 7003d69577
Update `diffresult.ui` with new features and prettyfy it.
* src/vorta/assets/UI/diffresult.ui : Replace `okButton` with `QDialogButtonBox`
	that has a `close` button.

* src/vorta/views/diff_result.py : Connect `buttonBox` instead of `okButton` to Dialog.

* src/vorta/assets/UI/diffresult.ui : Add title to `DiffResult` dialog and simplify file name display.

* src/vorta/assets/UI/diffresult.ui : Add comboBox to change display mode of tree view.

* src/vorta/views/diff_result.py : Connect comboBox to `DiffTree`.

* src/vorta/application.py : Remove `eventFilter` setup for palette changes.

* src/vorta/tray_menu.py : Connect directly to `app.paletteChanged`.
* src/vorta/views/archive_tab.py
* src/vorta/views/repo_tab.py
* src/vorta/views/schedule_tab.py
* src/vorta/views/source_tab.py

* src/vorta/assets/UI/diffresult.ui : Add buttons to keep folders on top when sorting and
	to expand and collapse all items.

* src/vorta/views/diff_result.py : Connect the added buttons.

* src/vorta/assets/icons/angle-up-solid.svg : Add icon for `bCollapseAll`.

* src/vorta/views/diff_result.py : Add context menu to `treeView` that allows expanding
	and copying of an item.

* src/vorta/views/diff_result.py : Add copy shortcut to `treeView`.
2022-07-25 16:13:28 +02:00
real-yfprojects c8ba273079
Use new treemodel for diff view.
Subclass `treemodel.FileTreeModel` for the purposes of the diff dialog.
Rewrite diff output parsing.
Add sorting through `QSortFilterProxyModel`.

* src/vorta/views/diff_result.py (DiffResult.__init__): Remove doubled if statement.

* src/vorta/views/diff_result.py : Rename `DiffResult` to `DiffResultDialog`.

* src/vorta/views/diff_result.py (DiffTree.__init__): Remove the use of `QVariant`.
	Since python has no type enforcement `QVariant` is not needed.

* src/vorta/views/diff_result.py (DiffTree): Subclass `treemodel.FileTreeModel` and add additional info tooltip.

* src/vorta/views/diff_result.py (parse_diff_json): Some changes for use with new model.

* src/vorta/views/diff_result.py (parse_diff_lines): Full regex based line parsing and
	other modifications to go with the new model.

* src/vorta/views/diff_result.py (FileType): Enum of possible file types.

* src/vorta/views/diff_result.py (ChangeType): Enum of possible change types.
	Currently all are mapped to `ADDED`, `MODIFIED` and `REMOVED`.

* src/vorta/views/diff_result.py (calc_size): Rename to `size_to_byte`.

* src/vorta/assets/UI/diffresult.ui : Move `alternatingRowColours` to the .ui file.

* src/vorta/views/diff_result.py (DiffResultDialog): Move `alternatingRowColours` to the .ui file.

* tests/test_diff.py : Fix tests for diff parser.

* src/vorta/views/diff_result.py : Connect to `sorted` of `DiffSortProxyModel`
	to reveal selected items in view.

* src/vorta/views/partials/treemodel.py : Add `FileTreeSortProxyModel` with abstract code.

* src/vorta/views/diff_result.py (DiffSortProxyModel): Implement `FileTreeSortProxyModel`.

* src/vorta/views/diff_result.py (DiffItem): This variable holds the type `FileSystemItem[DiffData]`.
2022-07-25 16:13:27 +02:00
real-yfprojects 3cd940455c
Implement fresh TreeModel for TreeViews.
* src/vorta/views/partials/treemodel.py
* tests/test_treemodel.py : Write tests.
2022-07-25 16:13:26 +02:00
yfprojects fd88d7ff21
Fix seconds and microseconds for fixed schedule and fix scheduling for the same day. (#1368)
Previously the seconds of the current time or the last backup time were be copied. Fixes #1363.
This also fixes an issue when the scheduled time was missed and the backup is scheduled
for the current day although the time of day set has already passed.

* src/vorta/scheduler.py (VortaScheduler.set_timer_for_profile)
2022-07-03 19:41:27 +00:00
yfprojects 305db92d4a
Log json diff line parsing errors. By @real-yfprojects (#1369) 2022-07-03 09:59:33 +04:00
Manu e53aa966fc Bump version to v0.8.7 2022-06-17 08:13:18 +04:00
Manuel Riel 170ff954ff
Deal with new archive_progress key (#1353) 2022-06-08 19:22:05 +04:00
yfprojects 091c0dcacd
Raise `ValueError` in case of unknown change type in diff json. By @real-yfprojects (#1350)
Currently an assert statement checks whether a change type was recognized.
This assert statement won't give any information on the actual change type that
is not implemented. Now a ValueError that mentiones the unknown change type in
its message will be raised instead.

* src/vorta/views/diff_result.py (parse_diff_json_lines): Replace assert statement by
	if and raise statements.

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
2022-06-07 10:32:58 +04:00
yfprojects 492a3128f8
Fix unlink action when repo combobox is empty. By @real-yfprojects (#1342)
Fixes #1341
2022-05-30 18:46:09 +04:00
tal66 422ca7f418
Show date of next backup. By @tal66 (#1319) 2022-05-29 17:44:17 +04:00
Manu c5dd5f1970 Bump version to v0.8.6 2022-05-26 07:46:27 +04:00
yfprojects 56e5c5049f
Remove call to `QTranslator.language()` in `get_locale`. (#1316) 2022-05-25 19:42:54 +04:00
Manu e58c83b5c9 Bump version to v0.8.5 2022-05-24 10:04:21 +04:00
Manuel Riel 6f3964c192
Fix macOS Archive settings form sizing (#1311) 2022-05-22 14:36:27 +04:00
yfprojects 4b6d080f05
Fix copying the current repo to the clipboard. By@real-yfprojects (#1313) 2022-05-22 11:32:57 +04:00
Manuel Riel 37850b15a2
Remove leftovers in repo selector (#1308) 2022-05-22 07:52:30 +04:00
yfprojects c797719513
Pause scheduling temporarily on failures. By @real-yfprojects (#1299) 2022-05-22 07:40:46 +04:00
yfprojects 182d3fbe0d
Only schedule backup after a manual run, improve labels. @real-yfprojects (#1302) 2022-05-21 15:06:10 +04:00
yfprojects 03480112e6
Select and delete multiple archives. By @real-yfprojects (#1307) 2022-05-21 14:49:46 +04:00
yfprojects b650ed3eb6
Preserve last creation log per profile for scheduler. By @real-yfprojects (#1296) 2022-05-16 16:00:31 +04:00
yfprojects f76aa5a5f4
Don't schedule if no repo is set. (#1288)
Fixes #1286.
2022-05-08 17:30:48 +04:00
yfprojects a06ba048c1
Hotfix for right-click archive menu. By @real-yfprojects (#1285) 2022-05-07 10:13:48 +04:00
Manu 98443036eb Bump version to v0.8.4 2022-05-06 13:59:48 +04:00
Manu c2e048546f Update translations 2022-05-06 13:59:17 +04:00
yfprojects de1ca052b5
Add support for special file types in `borg diff` output. By @real-yfprojects (#1265)
New item types were introduced to borg with borgbackup/borg#6624.
2022-05-06 11:33:13 +04:00
yfprojects b57414cfc2
Better diff selection without extra dialog. By @real-yfprojects (#1235) 2022-05-05 13:21:54 +04:00
yfprojects add1ac7041
Improve keyring logging. By @real-yfprojects (#1263)
They now log storing and retrieving passwords.
2022-04-20 12:07:01 +04:00
yfprojects 2be9ebb228
Set repo stats to `N/A` after delete or prune. By @real-yfprojects (#1251) 2022-04-20 11:54:27 +04:00
Aeysol 75014a756e
Improve SecretStorage locking behavior. By @Aeysol (#1255) 2022-04-20 08:15:08 +04:00
yfprojects c36ac81d5e
Clarify `enable_background_question` label. By @real-yfprojects (#1262) 2022-04-16 10:41:20 +04:00
yfprojects 6eaed0a8e9
Add a button to mount full repository. By @real-yfprojects (#1257) 2022-04-16 09:30:31 +04:00
yfprojects 1b2d39e8f7
Use fnmatch for exclude patterns. By @real-yfprojects (#1253) 2022-04-09 15:42:42 +04:00
yfprojects 5e94679507
Add logging to `source_tab.py`. By @real-yfprojects (#1254) 2022-04-09 15:34:43 +04:00
yfprojects 94fd8a0edf
Remove extra space in`archivetab.ui`. By @real-yfprojects (#1249) 2022-04-02 09:40:40 +04:00
Delfino Nunez 7ef088de86
Properly set dialog titles. By @delfino-nunez (#1246) 2022-04-02 09:28:05 +04:00
yfprojects a461b06efc
Fix use of `self.tr` for translation. By @real-yfprojects (#1236) 2022-03-28 12:10:25 +04:00
Delfino Nunez 5b8f3a2915
Use accept-new for host keys. By @delfino-nunez (#1238) 2022-03-28 11:59:44 +04:00
Delfino Nunez 9cadcc0e97
Add missing translation marking. By @delfino-nunez (#1240) 2022-03-28 11:22:40 +04:00
yfprojects fb5a24f66d
Improve UX and HIG-conformity. By @real-yfprojects (#1176)
* Remove fullstops in the labels of the settings.

* src/vorta/store/settings.py (get_misc_setting): Remove fullstops in the `label` fields of each setting.

* Fix *Add Profile*-Dialog.

* src/vorta/assets/UI/profileadd.ui (label_2): Rename to `profileExplainer`.

* src/vorta/assets/UI/profileadd.ui (profileExplainer): Remove unnecessary text and rephrase it in simpler terms.

* src/vorta/assets/UI/profileadd.ui (formLayout): Move into frame for better layout in dialog.

* src/vorta/assets/UI/profileadd.ui (Dialog): Make dialog modal.

* src/vorta/assets/UI/profileadd.ui : Modify spacing a bit and change all widgets to `expanding` mode.

* src/vorta/assets/UI/profileadd.ui (Dialog): Set title to `Add Profile`.

* src/vorta/assets/UI/profileadd.ui : Make `label_3` a buddy of `profileNameField`.

* Add colon after entry label in `Add Profile`-Dialog.

* src/vorta/assets/UI/profileadd.ui (label_3): Add colon at the end of label.

* Fix capitalization in schedule tab.

* src/vorta/assets/UI/scheduletab.ui (pruneCheckBox): Replace `Archive` by `archive`.

* Fix tooltips.

Ensure sentence capitalization.
Rephrase some tooltips that do not mention the action they provide a tip for. (There are still many to go.)
Remove fullstop from tooltips that aren't a sentence.
Add fullstop to tooltips that are a sentence.

* src/vorta/assets/UI/archivetab.ui
* src/vorta/assets/UI/mainwindow.ui
* src/vorta/assets/UI/repoadd.ui
* src/vorta/assets/UI/repotab.ui
* src/vorta/assets/UI/sourcetab.ui
* src/vorta/views/export_window.py
* src/vorta/views/import_window.py
* src/vorta/views/source_tab.py

* Replace `n't` by `not` in GUI strings.

* src/vorta/application.py
* src/vorta/assets/UI/repotab.ui
* src/vorta/assets/UI/scheduletab.ui
* src/vorta/assets/UI/sshadd.ui
* src/vorta/notifications.py
* src/vorta/views/main_window.py
* src/vorta/views/main_window.py
* src/vorta/views/repo_tab.py

* Shorten unlink button tooltip.

* src/vorta/assets/UI/repotab.ui (repoRemoveToolbutton): Shorten tooltip by only keeping the most valuable information needed to understand the feature.

* Fix entry being embedded in label text.

Sentences should not be constructed from text in several controls.
Sentences that run from one control to another will often not make sense when translated into other languages.

* src/vorta/assets/UI/archivetab.ui
* src/vorta/assets/UI/scheduletab.ui

* Rewrite tooltips to make them HIG conform.

The KDE HIG was used.

* src/vorta/assets/UI/exportwindow.ui
* src/vorta/assets/UI/importwindow.ui
* src/vorta/assets/UI/mainwindow.ui
* src/vorta/assets/UI/repoadd.ui
* src/vorta/assets/UI/repotab.ui
* src/vorta/assets/UI/sourcetab.ui
* src/vorta/views/export_window.py

* src/vorta/views/import_window.py (ImportWindow.init_overwrite_profile_checkbox): Make tooltip static as the HIG suggests.

* src/vorta/views/main_window.py

* Replace `...` with unicode ellipses `…` (U+2028) in GUI text.

* src/vorta/borg/break_lock.py
* src/vorta/borg/check.py
* src/vorta/borg/create.py
* src/vorta/borg/delete.py
* src/vorta/borg/diff.py
* src/vorta/borg/extract.py
* src/vorta/borg/info_archive.py
* src/vorta/borg/info_repo.py
* src/vorta/borg/init.py
* src/vorta/borg/list_archive.py
* src/vorta/borg/list_archive.py
* src/vorta/borg/list_repo.py

* Clean prune tab in `archivetab.ui`.

* src/vorta/assets/UI/archivetab.ui

* Prettify `repotab`.

* src/vorta/assets/UI/repotab.ui

* Fix tooltips for pruning in `archivetab.ui`.

* src/vorta/assets/UI/archivetab.ui

* Use affirmative phrase in checkbox for metered networks.

* src/vorta/assets/UI/scheduletab.ui (dontRunOnMeteredNetworksCheckbox): Rename to `meteredNetworksCheckBox`.

* src/vorta/assets/UI/scheduletab.ui (meteredNetworksCheckBox): Change text into affirmative phrase.

* src/vorta/views/schedule_tab.py : Invert values for `meteredNetworksCheckBox`.

* Add label in shell commands pane in `scheduletab` and fix placeholders.

Placeholders shouldn't be a replacement for a label.

* src/vorta/assets/UI/scheduletab.ui

* Group settings widgets in `misctab`.

* src/vorta/assets/UI/misctab.ui (checkboxLayout): Replace with frame `frameSettings` containing a form layout.

* src/vorta/utils.py (search): Added. Searches for a key inside an iterable
	applying a given function before comparison.

* src/vorta/store/models.py (SettingsModel): Add field `group` to assign settings to a group.

* src/vorta/store/migrations.py (run_migrations): Add new schema version `19` and
	implement migration adding the `group` field.

* src/vorta/store/connection.py (SCHEMA_VERSION): Update to `19`.

* src/vorta/store/settings.py (get_misc_settings): Add and assign settings groups.

* src/vorta/store/connection.py (init_db): Update group and type of settings if needed.

* src/vorta/views/misc_tab.py (Imports): Import `search` from `..utils`.

* src/vorta/views/misc_tab.py : Instanciate logger.

* src/vorta/views/misc_tab.py (MiscTab.__init__): Create a checkboxLayout for `frameSettings`.

* src/vorta/views/misc_tab.py (populate): Add settings widgets in groups with labels in spacer in between.

* Fix tests for `misctab`.

* tests/test_misc.py

* Fix margins.

* src/vorta/assets/UI/archivetab.ui
* src/vorta/assets/UI/misctab.ui
* src/vorta/assets/UI/repotab.ui
* src/vorta/assets/UI/scheduletab.ui
* src/vorta/assets/UI/sourcetab.ui

* Morph buttons in `sourcetab` into toolbuttons with icons.

Adds gradient buttons along the way. Fixes #933.

* src/vorta/assets/UI/sourcetab.ui : Change layout and buttons.
	Merge buttons with adding capabilities into one toolbutton (with menu).

* src/vorta/assets/UI/sourcetab.ui : Rename `sourceRemove` to `removeButton`.
	Rename `sourceUpdate` to `updateButton`.
	Add `addButton`.

* src/vorta/assets/icons/minus.svg : Add minus sign icon from *fontawesome* v6.0.

* src/vorta/views/source_tab.py (SourceTab.set_icons): Added.

* src/vorta/views/source_tab.py (SourceTab.__init__): Create Menu for the `addButton` with
	actions to add files and folders and to paste.

* src/vorta/application.py (VortaApp.eventFilter): Call `set_icons` of `sourceTab` as well.

* Fix tests for `sourcetab`.

* tests/test_source.py

* Add paste icon to paste action in `sourcetab`.

* src/vorta/assets/icons/paste.svg : Added from fontawesome (paste-solid, v6.0)

* src/vorta/views/source_tab.py (SourceTab.__init__): Save paste action in `pasteAction`.

* src/vorta/views/source_tab.py (SourceTab.set_icons): Set icon for `pasteAction`.

* Add icons to open actions in `sourcetab`.

* src/vorta/assets/icons/file.svg : Added `file-solid` from fontawesome, v6.0

* src/vorta/assets/icons/folder.svg : Added `folder-solid` from fontawesome, v6.0

* src/vorta/views/source_tab.py (SourceTab.__init__): Save files and folders action
	to `addFilesAction` and `addFoldersAction`.

* src/vorta/views/source_tab.py (SourceTab.set_icons): Set icons for `addFilesAction` and `addFolderAction`.

* Fix icon size of `file.svg`.

* src/vorta/assets/icons/file.svg

* Set fill of added svgs to `#000000`.

* src/vorta/assets/icons/file.svg
* src/vorta/assets/icons/folder.svg
* src/vorta/assets/icons/minus.svg
* src/vorta/assets/icons/paste.svg

* Improve UX and consistency within the app for `scheduletab`.

* src/vorta/assets/UI/scheduletab.ui : Arrange schedule pane in a form layout.

* src/vorta/views/schedule_tab.py (ScheduleTab.__init__): Connect enabled state of entries
	to radiobuttons and checkboxes.

* Workaround scheduletab tests being broken in github actions.

For some unknown reason clicking the `scheduleFixedRadio` won't work
when running using github action on ubuntu.

* tests/test_schedule.py

* Fix labels and spacing in `scheduletab`.

* src/vorta/assets/UI/scheduletab.ui

* Make archive operations more accessible and rename actions of `ArchiveTab`.

* src/vorta/views/archive_tab.py (ArchiveTab): Rename `list_action` to `refresh_archive_list`.
	Rename `refresh_archive_action` to `refresh_archive_info`.
	Rename `refresh_archive_result` to `info_result`.
	Rename `list_archive_action` to `extract_action`.
	Rename `list_archive_result` to `extract_list_result`.

* src/vorta/views/main_window.py : Apply renaming.

* src/vorta/assets/UI/archivetab.ui : Create own buttons for the archive actions.
	Remove `archiveActionButton`. And some other layout changes.

* src/vorta/assets/UI/archivetab.ui : Rename `pruneButton` to `bPrune`.
	Rename `checkButton` to `bCheck`.
	Rename `diffButton` to `bDiff`.
	Rename `listButton` to `bList`.

* tests/test_archives.py : Apply renaming.

* src/vorta/views/archive_tab.py : Connect new action buttons.

* src/vorta/views/archive_tab.py : Remove `archiveActionButton`.

* tests/test_archives.py : Fix tests.

* Enable and disable archive actions depending on selection.

* src/vorta/assets/UI/archivetab.ui : Put archive actions into a frame.

* src/vorta/views/archive_tab.py (ArchiveTab): Added `on_selection_change` that
	enables/disables the frame depending on the selection count.

* src/vorta/views/archive_tab.py (ArchiveTab.populate_from_profile): Clear selection.

* src/vorta/views/archive_tab.py (ArchiveTab.__toggle_all_buttons): Add `fArchiveActions`.
	Call `on_selection_change` at the end.

* Fix tests for `archivetab`.

* tests/test_archives.py

* Replace line by spacer in repotab.

* src/vorta/assets/UI/repotab.ui

* Show labels for archive action buttons.

* src/vorta/assets/UI/archivetab.ui

* Add tooltips and ellipses to archivetab.

* src/vorta/assets/UI/archivetab.ui
* src/vorta/views/archive_tab.py

* Fix tooltips.

* src/vorta/assets/UI/sourcetab.ui : Add tooltips.

* src/vorta/views/archive_tab.py (ArchiveTab.on_selection_change): Add reason for disabled state dynamically to archive action buttons.

* Add context menu to source view.

* src/vorta/views/source_tab.py (SourceTab): Implement `sourceitem_contextmenu` and `source_copy`.
	Set context menu policiy of `sourceFilesWidget` to `CustomContextMenu`.

* src/vorta/assets/UI/sourcetab.ui: Change size hints.

* Add context menu to archive view.

* src/vorta/views/archive_tab.py (ArchiveTab): Set context menu policy of `archiveTable` to `CustomContextMenu`.
	Implement `archiveitem_contextmenu`.

* Replace `Type` column in sources view by icon.

* src/vorta/views/source_tab.py (SourceColumn): Remove `Type` column.

* src/vorta/views/source_tab.py (SourceTab.set_icons): Set icon for each item in source view.

* src/vorta/views/source_tab.py (SourceTab.set_path_info): Set icon instead of `Type` column.

* src/vorta/assets/UI/sourcetab.ui : Remove `Type` column.

* Fix initial sort indicator of source view.

* src/vorta/views/source_tab.py

* Fix adding items while sorting enabled.

* src/vorta/views/source_tab.py

* Remove status bar and remove fix size hint for log text label.

* src/vorta/assets/UI/mainwindow.ui

* src/vorta/views/main_window.py (MainWindow.__init__): Set minimum height of `logText` to
	two times the height of a line calculated by `QFontMetrics`.

* Resize main window height to `670`.

* src/vorta/assets/UI/mainwindow.ui

* Replace `QToolbutton` by `QPushbutton`.

* src/vorta/assets/UI/archivetab.ui
* src/vorta/assets/UI/repotab.ui
* src/vorta/assets/UI/sourcetab.ui
* src/vorta/views/source_tab.py

* Fix flake8

* Improve label of entry for `borg create` extra arguments.

* src/vorta/assets/UI/scheduletab.ui

* Unify label font size in `repotab`.

* src/vorta/assets/UI/repotab.ui

* Morph `QPushButton`s into `QToolButton`s.

Some exceptions were made, especially in the dialog windows.

* src/vorta/assets/UI/archivetab.ui
* src/vorta/assets/UI/mainwindow.ui
* src/vorta/assets/UI/repotab.ui
* src/vorta/assets/UI/sourcetab.ui

* Add copy capabilities to archive view and a copy shortcut to it and to source tab.

* src/vorta/views/source_tab.py (SourceTab): Add QShortcut for copying.

* src/vorta/views/archive_tab.py (ArchiveTab.archiveitem_contextmenu): Add copy action.

* src/vorta/views/archive_tab.py (ArchiveTab): Add QShortcut for copying.

* Move actions in comboBoxes to buttons.

* src/vorta/assets/UI/repotab.ui : Add `bAddSSHKey` and `bAddRepo`.

* src/vorta/views/repo_tab.py : Move code out of `ssh_select_action` and `repo_select_action` into `add_existing_repo`, `new_repo` and `create_ssh_key`.

* src/vorta/views/repo_tab.py

* Make tooltip of `storePassword` checkbox more fluent.

* src/vorta/assets/UI/exportwindow.ui

* Introduce `QDialogButtonBox` to modal dialogs in vorta.

* src/vorta/assets/UI/extractdialog.ui
* src/vorta/views/extract_dialog.py

* src/vorta/assets/UI/repoadd.ui
* src/vorta/views/repo_add_dialog.py

* src/vorta/assets/UI/sshadd.ui
* src/vorta/views/ssh_dialog.py

* Move some options in scheduletab to the side.

This results in two columns of options and fixes vertical scrolling.

* src/vorta/assets/UI/scheduletab.ui

* Changes for macOS layout

* Set `sizeAdjustPolicy` of comboBoxes to `AdustToContents`.

* src/vorta/assets/UI/mainwindow.ui

* src/vorta/assets/UI/repotab.ui

* Fix some icons, translations strings and link

* Lint

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
Co-authored-by: Manu <3916435+m3nu@users.noreply.github.com>
Co-authored-by: Manu <manu@snapdragon.cc>
2022-03-24 10:27:07 +04:00
yfprojects 0c2fabd28c
Fix setting a timer value too large for C++ int. (#1230)
Fixes #1227. Set timer only if value is smaller than `2**31-1` = 2147483647 else do nothing. Every 15 min vorta will trigger a reschedule.
2022-03-23 10:14:18 +04:00
Delfino Nunez 0a78bd5342
Add missing translate strings. By @delfino-nunez (#1229) 2022-03-22 12:16:45 +04:00
yfprojects 8126f4e696
Change keyring label to improve UX on Gnome. By @real-yfprojects (#1181) 2022-03-06 13:14:28 +04:00
Manu c4cd054033
Support new `borg compact` command (#1205) 2022-02-21 21:23:56 +04:00
yfprojects 4bbd091c59
Rewrite scheduler logic. By @real-yfprojects (#1204)
The scheduler now will react to a new fixed time also if 24h haven't passed yet.
All in all the code is supposed to be cleaner and easier understandable.
The logging was slightly modified.
2022-02-20 10:04:12 +04:00
yfprojects de971d6cd3
Update next backup time label. By @real-yfprojects (#1180) 2022-02-09 14:55:26 +04:00
yfprojects da766c5172
Change default returncode for log. By @real-yfprojects (#1193) 2022-02-06 15:21:17 +04:00
Manu 4a3d994f92 Bump version to v0.8.3 2022-01-27 08:15:28 +04:00
yfprojects 23c47673c0
Distinguish different errors in case `borg check` failed. By @real-yfprojects (#1163) 2022-01-09 14:39:39 +04:00
Manu 4b5b7e20ef
Ignore encoding errors in Wifi names (darwin) (#1158) 2022-01-06 16:53:54 +04:00
Jonah Petri eadb3e709a
Shows folder sizes in diff view. By @skrap (#1156) 2022-01-04 21:37:40 +04:00
Manu 60075318a6
Create missing parents of autostart folder. See #930 (#1146) 2021-12-24 14:04:15 +04:00
Manu 2d85641d55
Update translations, ensure new store module is included (#1139) 2021-12-17 19:56:37 +04:00
Miro Hrončok e6b247f9f0
Close SVG files after reading. By @hroncok (#1135) 2021-12-11 22:51:24 +04:00
Manu 17eb71a346 Bump version to v0.8.2 2021-11-27 20:41:45 +04:00
Manu 332d5ac0a8 Update translations 2021-11-27 20:41:42 +04:00
Manu 324104bdf4
Properly save folder stats based on profile (#1118)
And bug in removing jobs when removing profile
2021-11-19 17:26:59 +04:00
Manu 0dafa9de85 Bump version to v0.8.1 2021-11-17 13:32:02 +04:00
Manu 13a25a79a2 Update translations 2021-11-17 13:31:24 +04:00
Manu 8f1fc6deb7
Notify on failed repo checks (#1113) 2021-11-17 13:29:22 +04:00
Manu 4c3e97a76c
Refactor: Split up vorta/models.py (#1112) 2021-11-17 13:14:11 +04:00
Manu 0c77fdde97
Address DB Locking issues (#1109) 2021-11-16 10:32:40 +04:00
Manu 5b769b104f
Make sure correct sources are removed (#1110) 2021-11-16 09:25:46 +04:00
Manu 09fe3aa5b8
More accurate text, when Borg is running. (#1111) 2021-11-15 17:21:07 +04:00
Manu 0b2a7c02c3
Remove jobs before deleting profile (#1107) 2021-11-15 15:18:11 +04:00
Manu d8b61a0e33
Remove jobs if scheduler setting is changed. (#1105) 2021-11-15 15:02:27 +04:00
Jay Clark 228e580def
Fix next_job timer logic. By @jayeclark (#1100) 2021-11-12 18:31:41 +04:00
Manu b38e986683
Use native threading module in job_manager. (#1096) 2021-11-12 11:05:31 +04:00
Manu b2a08b9eb0 Update all translations 2021-11-04 14:45:11 +04:00
Manu b88600b762 Bump version to v0.8.0 2021-11-04 14:41:38 +04:00
Philipp Hossner fba6a2fbe7
Always handle autosave setting when saving SettingsModel (fixes #1092) (#1093) 2021-11-02 17:10:47 +04:00
Bastien cdb1ee26ac
Fix for #1075 (#1090) 2021-10-28 15:02:09 +04:00
Luka fbbd788629
Increases the maximum allowed number in prune keep hourly to 9999 and daily to 999. (#1089)
Signed-off-by: lstrz <lstrz@users.noreply.github.com>
2021-10-27 14:56:28 +04:00
Manu c7a1077fec
Remove APScheduler dependency, Python 3.10 support (#1086) 2021-10-27 08:37:28 +04:00
Frederic Brodbeck 9bad152a80
Show backup size with excludes applied. By @freder (#961) 2021-10-18 15:41:37 +04:00
XXXBold 9919070e49
Add tooltip containing path name. By @XXXBold (#1072) 2021-10-13 18:40:19 +04:00
Bastien 54d8bbe6b1
Implement multiple queues. By @bastiencyr (#1045)
Scheduler now has the ability to run jobs on multiple repositories concurrently and run multiple jobs on one repo (by queuing them).

For each repository, there is one queue. I have represented a queue by a 'site'. Between sites (ie repository), tasks run concurrently. On one site, tasks run one by one. The user also run tasks by adding them to the queue but he can't run multiple backups because start backup button is disabled when a job is running.
2021-10-04 15:31:41 +04:00
Manu 06dc2489d7
Add new SSH key error (#1070) 2021-09-29 17:10:37 +04:00
Manu 901992f026 Bump version to v0.7.8 2021-08-26 13:02:10 +04:00
Philipp Hossner ff010b3bc4
Handle malformed .vorta-init.json on import. Fixes #1053. By @phihos (#1054)
Show error dialog when .vorta-init.json is malformed.
2021-08-12 08:32:08 +04:00
Olivier Le Moal 7d2dbe001d
Fix double call to on_user_click. By @olivierlemoal (#1031) 2021-08-02 15:02:37 +04:00
Manu ea40d7b359 Bump version to v0.7.7 2021-06-21 10:01:18 +04:00
Manu 05efc27a2c Update translations. Add SK .ts file. Fixes #1013 2021-06-21 10:00:42 +04:00
bastiencyr 5700f096bb
Fix for diff command (#1019)
Fixes #1016
2021-06-20 14:15:19 +04:00
Manu eb037dd41b Build fixes 2021-06-08 18:50:56 +04:00
Manu 748e546b9c Bump version to v0.7.6 2021-06-08 18:09:43 +04:00
Philipp Hossner 5192bd132c
Import/export settings (or bootstrap with default config). By @phihos (#955) 2021-06-05 15:15:38 +04:00
bastiencyr 0862c827d8
Alert when deleting last profile. By @bastiencyr. (#1006)
Fixes #918
2021-06-04 11:33:16 +04:00
bastiencyr 292066f8b7
Put folders first in diff/extract. Fixes #915. By @bastiencyr (#999) 2021-05-30 19:21:27 +04:00
Manu be6a39bc29
Skip sizing folders on permission error. Fixes #968 (#969) 2021-05-04 08:45:49 +08:00
Manu b96e8d460e
Called set_progress() on wrong class. (#965) 2021-04-28 09:30:04 +08:00
Manu 33f0c4c4e4
Fix color for eye icon when masking password (#959) 2021-04-25 15:14:35 +08:00
Manu 0e91775091
Refuse to add inaccessible folders, warn on inaccessible files during backup (#951)
* Refuse to add inaccessible folders
* Warn when Borg returns a warning (e.g. for inaccessible files)
2021-04-21 15:15:31 +08:00
Manu 96ed84b28d
Check for full disk access on macOS (#952) 2021-04-18 21:24:49 +08:00
Manu 15a97e4570
Open window on left-click. Fixes #938 (#945)
* XDG-compliant tray behavior
2021-04-17 16:18:00 +08:00
Robert Blenis 61326e1814
Fix issue #940 - KeyError in get_dict_from_list. By @rblenis (#947)
* fix issue #940 - KeyError in get_dict_from_list
- cause of error : defaultdict added more defaultdict while attempting to traverse the tree, but once a 'potential leaf' node was added, it was added as a dict, not a defaultdict.
- two possible solutions:
    - 1 - change everywhere that adds a 'potential' leaf node to add a defaultdict (ie nested_dict()) - this occurs in several places, but not many.
    - 2 - change get_dict_from_list to add a default dict (not defaultdict) when traversing the tree, for the case where a multi-level node is added on top of an existing node. This requires only changing a single location, and means that the dictionaries returned by accessing the tree will behave like normal dict (ie, won't by default add missing keys).
* Add test case for issues #940 and #925
2021-04-12 22:54:32 +08:00
Manu 518df6ff55
Correctly rename profile in dropdown. Fixes #943 (#944) 2021-04-09 22:55:12 +08:00
Robert Blenis 0f5335ed7f
Add support for 'diff --json-lines'. By @rblenis (#909)
* add support for 'diff --json-lines' available in borg 1.1.16.
* fixes issue #901 (diff not handling CR/LF in filenames)
* improve `pretty_bytes()` formatting function
2021-03-30 07:47:27 +08:00
Manu 064ba7c50a
Delete dialogs on close. Fixes #456 (#922) 2021-03-16 14:24:56 +08:00
Robert Blenis 08797aba77
Fix 'list --json-lines' command when only a single result line is output. By @rblenis (#910) 2021-03-12 22:47:11 +08:00
Manu 2b009c517f Minor: Add hidden keyring imports for macOS 2021-03-03 22:01:34 +08:00
Manu af2d6a9e73 Bump version to v0.7.5, update translations 2021-03-03 10:37:35 +08:00
Robert Blenis c66b1026c7
Use json mode to list archive files. By @rblenis (#885) 2021-03-01 16:49:49 +08:00
samuel-w bd3c479d1e
Add untranslated strings. By @samuel-w (#902) 2021-03-01 16:03:39 +08:00
Manu 6d8ad901fb
Allow to fully disable using the system keychain. (#898)
- Add option to avoid using system keychain.
- Prioritize keychains first. Then try to start them.
- Maintenance: Possible fixes for hung tests and segfault on exit on some setups.
2021-03-01 15:25:31 +08:00
Manu 824707c798
Fix issue with unassigned self.handle (#899) 2021-02-27 14:59:22 +08:00
Manu 84c3d3c822 Bump version to v0.7.4 2021-02-26 11:07:42 +08:00
Manu b19fa1ab6f Add Swedish translation by. Update existing translations. 2021-02-26 09:22:16 +08:00
samuel-w 46c3eee9a4
Improve kwallet verification. By @samuel-w (#889) 2021-02-24 21:25:17 +08:00
Manu 8da81e73b6
Remove failing SSH key check (#887) 2021-02-23 21:38:27 +08:00
Robert Blenis 3c0dd72205
Add option to refresh individual archives. By @rblenis (#878) 2021-02-23 10:12:09 +08:00
Manu 7949e80381
More test fixes, avoid segfault when quitting (#877) 2021-02-22 09:45:43 +08:00
Robert Blenis d701211037
Fix log table sorting. By @rblenis (#881)
Fixes #880
2021-02-22 09:38:35 +08:00
Manu 563b0a0bb7 Bump version to v0.7.3 2021-02-18 15:10:25 +08:00
samuel-w 95d964c40f
Add mount option override checkbox. By @samuel-w (#682)
* Tests: avoid clicking other window
2021-02-18 15:01:32 +08:00
Manu 9a4bbf0d65
Remove support for deprecated macOS XML wifi list. (#868)
* Use pytest-cov plugin to avoid hangers and subproc issues.
2021-02-18 13:50:58 +08:00
samuel-w bd0a1b8f4d
Add custom options to borg create command. By @samuel-w (#677)
And slight refactor of schedule tab.
2021-02-18 11:03:03 +08:00
Manu 355ddda0ec
Simplify default archive name (#861) 2021-02-18 09:52:59 +08:00
Manu 3cf2ac0c41
Add rename action. By @samuel-w and @m3nu (#864)
- Add rename action for archives
- Move archive actions to submenu
- Improve tests: remove window manager dependency
2021-02-18 09:44:10 +08:00
Manu 4e44c88605
Minor: Improve break-lock dialog. (#867) 2021-02-17 22:45:51 +08:00
Manu 848bcc57ba
Give option to break repository lock. By @samuel-w (#863) 2021-02-17 09:58:42 +08:00
samuel-w cbe8e8e72e
Attempt to unlock secretstorage keyring before returning lock state (#745) 2021-02-15 09:11:11 +08:00
Manu 7b0c7f3c79
Catch more possible SSH key parsing errors. (#789) 2021-02-11 16:04:34 +08:00
Manu 09e978220f
Improve cancelling Borg process (#786)
* Try SIGINT and then SIGTERM
* Minor: shlex.join needs Python >=3.8
2021-02-11 14:24:24 +08:00
Robert Blenis 38cd7cd2e6
Fix corrupted archive table list during refresh if sorting is enabled. By @rblenis (#784) 2021-02-11 14:19:37 +08:00
Manu aa04d72252
Add QTimer to ensure background jobs are scheduled correctly. (#780)
* Add QTimer to ensure background jobs are scheduled correctly.
* Exclude from App Nap to keep timer enabled.
* Remove notifications for schedule changes, since we do it very often now.
2021-02-11 14:09:22 +08:00
samuel-w 227e06d228
Add background settings to all non macos (#778) 2021-02-02 09:18:16 +08:00
samuel-w c99ac04b36
Change keyring priority (#779) 2021-02-02 09:10:39 +08:00