Go to file
Nathaniel Graham 405dd624fb Add Duplicate feature
Summary: Adds a Duplicate feature to Dolphin, showing up as a menu item in the File menu that appears when one or more items are selected and the directory is writable. Duplicated items receive the names of the original files with " copy" appended before the file extension, if any.

Test Plan:

{F5201386} {F5201393}

Test cases:

- Try to duplicate when nothing is selected: **PASS**: menu item is grayed out
- Try to duplicate anything on a read-only local volume: **PASS**:  menu item is grayed out
- Try to duplicate anything on a read-only samba share: **PASS**: menu item is grayed out
- Duplicate single local file on R/W volume: **PASS**: item is duplicated and named correctly
- Duplicate multiple local files on R/W volume: **PASS**: 3 items are duplicated, named correctly, and selected
- Duplicate single local directory on  R/W volume: **PASS**: item is duplicated and named correctly, but a rename operation is not initiated
- Duplicate multiple local directories on R/W volume: **PASS**: 3 items are duplicated, named correctly, and selected
- Duplicate single file on R/W samba share: **PASS**: item is duplicated and correctly
- Duplicate multiple files on R/W samba share: **PASS**: 3 items are duplicated, named correctly, and selected
- Duplicate single directory on R/W samba share: **PASS**: item is duplicated and named correctly
- Duplicate multiple directory on R/W samba share: **PASS**: 3 items are duplicated, named correctly, and selected
- Try to undo a successful duplication: **PASS**: operation is undone

This is my first attempt at a big change like this and I'm sure it's full of issues. I will accept any and all suggestions for improvement. :)

Reviewers: #dolphin, #kde_applications, elvisangelaccio, dfaure, broulik, davidedmundson

Subscribers: kfm-devel, meven, markg, fazevedo, cfeck, #dolphin

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D8208
2020-03-15 13:13:08 -06:00
cmake Use non-deprecated install dir variables from ECM 2019-12-24 19:30:44 +01:00
doc Fix issues found by ebn 2020-02-21 16:21:37 +01:00
src Add Duplicate feature 2020-03-15 13:13:08 -06:00
.arcconfig Add .arcconfig file for phabricator 2017-02-05 11:09:21 +01:00
.gitignore Exclude build* repository 2019-08-23 08:10:41 +02:00
AUTHORS updated to KDE 4 (the file was valid for Dolphin for KDE 3) 2008-07-07 09:18:51 +00:00
CMakeLists.txt GIT_SILENT Upgrade release service version to 20.03.80. 2020-03-15 19:54:17 +01:00
COPYING commited initial version of Dolphin 2006-11-21 06:02:05 +00:00
COPYING.DOC updates for new licence policy 2008-01-12 16:39:07 +00:00
dolphin.categories Autogenerate debug file + install debug categories file 2018-11-02 13:23:10 +01:00
DolphinVcsConfig.cmake.in Use CMakePackageConfigHelpers instead of the ECM variant 2017-12-01 19:27:57 +01:00
org.kde.dolphin.FileManager1.service.in Add dbus interface to dolphin 2015-04-22 18:59:39 +05:30
README Improve README documentation 2019-06-23 12:57:45 +02:00

User Documentation
==================
See https://userbase.kde.org/Special:myLanguage/Dolphin



Development Information
=======================
Dolphin's source code can be found at https://cgit.kde.org/dolphin.git.

To build Dolphin from source, see https://community.kde.org/Get_Involved/development#Applications

To submit a patch to Dolphin, use https://phabricator.kde.org. See https://community.kde.org/Infrastructure/Phabricator



Development philosophy
======================
Dolphin is a file manager focusing on usability. When reading the term Usability people often assume that the focus is on newbies and only basic features are offered. This is not the case; Dolphin is quite full-featured, but the features are carefully chosen so as to not impede any of the users in the target user groups.


Target User Groups
------------------
Focusing on usability means that features are discoverable and efficient to use. The feature set is defined indirectly by the target user group of Dolphin:

- **Lisa**: Lisa has been familiar with computers for 10 years. From her job, she has experience with Word, Excel and Outlook. At home she mainly uses the computer for browsing the web and writing e-mails. She requires a file manager for managing photos from the camera, documents she gets via e-mail, or PDFs she downloads with a browser. Lisa knows concepts like folders and a file hierarchy, but she is not familiar with the file hierarchy of Linux.

- **Simon**: Simon has been a developer at a software company for 8 years. At home he uses a file manager to maintain his large collection of photos and music. Additionally he owns a small homepage and needs to transfer updated files on the FTP server. Moving and copying files are regular tasks in Simon's workflow.

Not part of the target user group of Dolphin are Fred and Jeff:

- **Fred**: Fred is 75 years old and is able to write e-mails and browsing the web. He is not familiar with file hierarchies and stores all his documents on the desktop.

- **Jeff**: Jeff is Linux-freak since the age of 16 a few years ago. He is a developer and in his spare time he acts as administrator for a small company. Jeff has two monitors to keep the overview about his huge number of opened applications.

This does not mean that Fred or Jeff cannot work with Dolphin. But there might be features and concepts of Dolphin that overburden Fred. Also Jeff might miss some features which are a must-have for his daily work. This is acceptable; there are other tools that cater specifically to their needs.


Non-Intrusive Features
-----------------------
Before a feature is added in Dolphin, check whether the feature is mandatory for the target user group. If this is not the case, then this does not mean that the feature cannot be added; first it must be clarified whether the feature might be non-intrusive, so that it adds value for users outside the primary target user group of Dolphin. The term "non-intrusive" is mainly related to the user interface. A feature that adds a lot of clutter to the main menu, context menus or toolbar might harm the target user group. In this case the feature should not be added.

A good example of a feature that is non-intrusive is the embedded terminal in Dolphin. It only requires one entry inside a sub-menu, but adds great value for Jeff, who is not part of the target user group.


Options
-------
Options are mandatory as the "average Joe" user does not exist. Still it is not the goal of Dolphin to offer options for all kind of things. Again the focus is on the possible needs of the target user group. Each additional option makes it harder finding other options, so the same rules for features are applied to options too.