Review Request 126972: GSoC 2016 File Trays Project Idea; Implementation Detais

arnav dhamija arnav.dhamija at gmail.com
Tue Feb 2 18:19:03 GMT 2016


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126972/
-----------------------------------------------------------

Review request for Baloo, Dolphin, Emmanuel Pescosta, and Heiko Tietze.


Description
-------

I have thought of an original idea for the GSoC. My project deals with making file management in Dolphin. The full description of the project idea containing several details about use cases, features, user interaction model and more is attached with this Review Request. It can also be found here: [https://goo.gl/eDnCJZ](https://goo.gl/eDnCJZ)

A short abstract of the description is as follows: 

Selecting multiple files in any file manager for copying and pasting has never been a pleasant experience, especially if the files are in a non-continuous order. Often, when copying files between devices we might find that we need to select only a subset of the required files we have selected and this leads to the unwieldy operation of removing files from our selection. Of course, the common workaround is to create a new folder and to put all the items in but this is a very inefficient process and can be very slow if large files need to be copied between devices.

My solution to this problem is to add a panel/view in Dolphin where the links to files and folders can be temporarily saved for a session. The files and folders are "staged" on this panel. Hence, the user can add folders and files from several different directories to this panel and can then collectively perform actions on all the items in the tray such as copy, paste, cut, archive, rename, create list of symbolic links, etc. This makes complex file operations easy by staging the operation before performing it. This panel works very similarly to the Split view already existing in Dolphin to make additions such as drag and drop very easy.

The **implementation** of the project is subject under discussion. Most feedback I have received involves using a dedicated KIO Slave for this as well as adopting a kind of taggging mechanism for files.

Implementing a KIO Slave will make this project extremely versatile as it will allow several other KDE programs (such as Konqueror) to also benefit from such a feature.

This KIO Slave will work similarly to the Tags KIO Slave for Baloo. 

Hence, the KIO Slave will work by tagging files using their extended attributes tag whenever a file is added to the File Tray through any of the user interaction models. This tag will be set to ‘true’ when a file is added and will be set to ‘false’ when the file is removed. By using a simple Baloo query, it will be easy to populate the list of files marked on the File Tray. This can be displayed using Dolphin’s existing File view. 

This KIO Slave will also call other KIO Slaves for actions such as copying from the Tray and moving files to the Trash. There will be two deletion options - one to move the files to the Trash and another for purging the File Tray.

Creating a Plasmoid (see Future Roadmap) for the same will also be much easier as it will be no more difficult than simply using the existing Folder view Plasmoid by setting the directory to filetray:/ and creating some more context menu specific actions (I will probably need a better name than filetray:/ for it though).

This will be followed up with minor changes to the Dolphin GUI. For instance, File Tray will appear as another option under the Places panel and the view in Dolphin for displaying the File Tray will undergo minor changes in the context menu to incorporate some File Tray specific options. For example, a context menu option to add files to the File Tray. Keyboard shortcuts for quick additions to the File Tray will also be incorporated.

The File Open dialog will also have a new panel listing to allow users to select files directly off the File Tray. This will be also be implemented using the same KIO Slave used for populating the File Tray listing.


Diffs
-----


Diff: https://git.reviewboard.kde.org/r/126972/diff/


Testing
-------


File Attachments
----------------

gsoc-proposal-link.pdf
  https://git.reviewboard.kde.org/media/uploaded/files/2016/02/02/7c866135-eddc-478e-adce-2d9610764628__gsoc-proposal-link.pdf


Thanks,

arnav dhamija

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20160202/28f7802e/attachment.htm>


More information about the kfm-devel mailing list