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]`.
* 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
* 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.
* 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`.
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]`.
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)
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>