GSoC/2016/StatusReports/Batyrenko Vladyslav: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2016‎ | StatusReports
No edit summary
m ("the to" -> "to the")
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Introduction ==
== Introduction ==
Ark is open source universal GUI tool for managing archives. It supports many archive types, such as 7z, zip, rar, tar etc.
Ark is an open source GUI tool for managing archives. It supports many archive types, such as 7z, zip, rar, tar and so on. For now Ark allows adding files and folders only to the root of an archive. As it happens that a user needs to edit the archive content, there has been a proposal to extend Ark functionalities in order to allow users to add new files to any destination, as well as rename, move or copy them. So my GSoC task was to implement those features.  
For now it allows only adding files and folders to root, extracting and deleting them. As it happens that a user needs to edit archive content, besides adding and deleting, there has been a proposal to extend Ark functionality in order to allow users to add files to some destinations, rename, move and copy them. So my GSoC task is to implement those features.


== Status ==
== Status ==
My first task, which was not related to the proposal directly, was to refactor two fundamental classes used to store metadata for archive entries. It was completed merging the classes into one and also choosing new way to store metadata: QProperty system was utilized. For now all the features described in the proposal are implemented and functional.
My first task, which was not directly related to the proposal, was to refactor two fundamental classes used to store metadata for archive entries. It was completed merging the classes into one and also choosing a new way to store the metadata: the QProperty system was utilized. All the features described in the proposal have been implemented and are functional.  


=== Implemented features ===
=== Implemented features ===


* '''Adding entries to specific destination.''' The existing action for adding files to root was changed, so it can now be used for adding files everywhere. If user selects a directory and uses the action, files will be added to the selected destination. If there is no selection or a file or many entries are selected, files will be added to root.
* '''Adding entries to specific destination.''' The existing action for adding files to the root was changed, so it can now be used for adding files everywhere. If the user selects a directory and uses the action, files will be added to the selected destination. Otherwise, If there is no selection or one or more files are selected, the new files will be added to the root as usual.
* '''Renaming entries.''' Renaming allows user to change names of both files and folders. As in Dolphin, it can be called via F2 shortcut and it is done in the inline lineedit widget, what makes Ark feel consistent with the main KDE file manager. There are also filename checks provided, which limit user from entering slashes or use "." or ".." as filename.
* '''Renaming entries.''' Renaming allows users to change names of both files and folders. As in the Dolphin file manager, it can be called via the F2 shortcut and it is done in the inline lineedit widget, which makes Ark feel consistent with the main KDE file manager. There are also filenames checks provided, which limit user from entering slashes or use "." or ".." as filename.
* '''Moving and copying entries.''' As in typical file managers, moving and copying are provided together with "paste" action, which are accessible via CTRL+X, CTRL+C and CTRL+V shortcuts respectively. User can move or copy files from different folders (which are expandable in the tree view) and paste them to the same destination at once. A folder can be copied into itself, but can not be moved. There are also checks for conflicting filenames implemented: user won't be able to copy or move files into the folder, which has entries with the same names - that could lead to data loss.
* '''Moving and copying entries.''' As in typical file managers, moving and copying are provided together with the "paste" action, which are accessible via CTRL+X, CTRL+C and CTRL+V shortcuts respectively. Users can move or copy files from different folders (which are expandable in the tree view) and paste them to the same destination at once. A folder can be copied into itself, but can not be moved. There are also checks for conflicting filenames implemented: users won't be able to copy or move files into a folder that has entries with the same names - that could lead to data loss.
 
=== Some numbers ===
<syntaxhighlight lang="bash">
# git diff master gsoc2016/master --stat
88 files changed, 4193 insertions(+), 1664 deletions(-)
</syntaxhighlight>


=== Screenshots ===
=== Screenshots ===


'''Before:'''
'''Pasting entries.''' Here you can see that cutting one folder recursively selects all the inner entries and makes their icons grayed:
http://mvlabat.github.io/ark-gsoc-2016/assets/2016-08-17/ark-before.png
 
http://mvlabat.github.io/ark-gsoc-2016/assets/2016-08-17/ark-pasting.png
 
'''Renaming entries''' is done via inline editing:


'''After:'''
http://mvlabat.github.io/ark-gsoc-2016/assets/2016-08-17/ark-renaming.png
http://mvlabat.github.io/ark-gsoc-2016/assets/2016-08-17/ark-after.png


== Work Report ==
== Work Report ==

Latest revision as of 21:28, 26 August 2016

Introduction

Ark is an open source GUI tool for managing archives. It supports many archive types, such as 7z, zip, rar, tar and so on. For now Ark allows adding files and folders only to the root of an archive. As it happens that a user needs to edit the archive content, there has been a proposal to extend Ark functionalities in order to allow users to add new files to any destination, as well as rename, move or copy them. So my GSoC task was to implement those features.

Status

My first task, which was not directly related to the proposal, was to refactor two fundamental classes used to store metadata for archive entries. It was completed merging the classes into one and also choosing a new way to store the metadata: the QProperty system was utilized. All the features described in the proposal have been implemented and are functional.

Implemented features

  • Adding entries to specific destination. The existing action for adding files to the root was changed, so it can now be used for adding files everywhere. If the user selects a directory and uses the action, files will be added to the selected destination. Otherwise, If there is no selection or one or more files are selected, the new files will be added to the root as usual.
  • Renaming entries. Renaming allows users to change names of both files and folders. As in the Dolphin file manager, it can be called via the F2 shortcut and it is done in the inline lineedit widget, which makes Ark feel consistent with the main KDE file manager. There are also filenames checks provided, which limit user from entering slashes or use "." or ".." as filename.
  • Moving and copying entries. As in typical file managers, moving and copying are provided together with the "paste" action, which are accessible via CTRL+X, CTRL+C and CTRL+V shortcuts respectively. Users can move or copy files from different folders (which are expandable in the tree view) and paste them to the same destination at once. A folder can be copied into itself, but can not be moved. There are also checks for conflicting filenames implemented: users won't be able to copy or move files into a folder that has entries with the same names - that could lead to data loss.

Some numbers

# git diff master gsoc2016/master --stat
88 files changed, 4193 insertions(+), 1664 deletions(-)

Screenshots

Pasting entries. Here you can see that cutting one folder recursively selects all the inner entries and makes their icons grayed:

ark-pasting.png

Renaming entries is done via inline editing:

ark-renaming.png

Work Report