Review Request 124018: Implement multiple DND selection
Ragnar Thomsen
rthomsen6 at gmail.com
Wed Sep 9 21:06:49 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124018/
-----------------------------------------------------------
(Updated Sept. 9, 2015, 11:06 p.m.)
Review request for KDE Utils, Elvis Angelaccio and Raphael Kubo da Costa.
Changes
-------
I discovered a bug in the previous diff. It broke extraction of selected files by using the Extract button/menu option. The bug was caused by not always passing a FileRootNodePair in the QVariantList to Archive::copyFiles(). This should now be fixed.
I also renamed some functions and moved some code around in Part to be more sensible.
Bugs: 187152
http://bugs.kde.org/show_bug.cgi?id=187152
Repository: ark
Description
-------
This patch implements multiple drag'n'drop selection. This is used when dragging multiple files from Ark to e.g. Dolphin for extraction. It's based partially on work done by Raphael in the multiple-dnd-selection branch. However, in the multiple-dnd-selection branch, each cluster of files with a common parent node had to be run in an individual ExtractJob. This patch does the following:
1. Create a struct fileRootNodePair, which contains two QStrings: The filename including relative path and a RootNode.
2. fileRootNodePair is passed as first argument to ExtractJob::ExtractJob (in a QVariant).
This allows us to pass an individual RootNode for each file, enabling the extraction to be done in a single ExtractJob, which is more appropriate since the UI can then display the total number of entries being extracted and a single progress bar.
The CLI plugins, e.g. zip and rar, still extract with full path, due to not supporting RootNodes. However, this is a separate issue and will be fixed in another commit.
Diffs (updated)
-----
kerfuffle/archive_kerfuffle.h f6fbbd8
kerfuffle/archive_kerfuffle.cpp 7b9990d
kerfuffle/cliinterface.cpp 36ac337
kerfuffle/jobs.cpp 3dabb4e
part/archivemodel.cpp 5a81cda
part/archiveview.cpp 176e474
part/part.h 5098bd5
part/part.cpp e2b40be
plugins/libarchive/libarchivehandler.cpp 6cc3f1f
Diff: https://git.reviewboard.kde.org/r/124018/diff/
Testing
-------
1. Selecting and dragging a subfolder from an archive results in the folder being extracted without path to destination and all its subfolders/files being extracted with relative path (i.e. path below selected subfolder).
2. Selecting and dragging one or more files results in the file being extracted without path.
3. A single job tracker is displayed with the total number of files+folders and the progress bar works as expected.
4. Selecting and dragging files/folders from zip/rar archives results in the selected entries being extracted with full path.
5. Batch-extracting using ark -b <archive> works as expected.
Thanks,
Ragnar Thomsen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-utils-devel/attachments/20150909/1cf519e5/attachment.html>
More information about the Kde-utils-devel
mailing list