* 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
* 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
- It now heavily relies on regex. This was done in order to make the code more stable and easier to maintain.
- Share common code for file tree view between extract and diff.
- Adds support for translating Python strings and .UI files with Qt's `QTranslator` class.
- Integrates the Transifex cloud translation service for managing translations.
- Adds translation policy and guidelines to `CONTRIBUTING.md`
* Simplify non-blocking BorgThread.run.
* Fix issue with displaying nested folders in extract-dialog.
* Fix error text expansion.
* Add many new tests. Dont open main window on startup.