Review Request 120337: Implement the renaming feature in Ark

Elvis Angelaccio elvis.angelaccio at kdemail.net
Sat Sep 26 13:03:24 UTC 2015


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

(Updated Sept. 26, 2015, 1:03 p.m.)


Status
------

This change has been discarded.


Review request for KDE Utils and Raphael Kubo da Costa.


Bugs: 65576
    http://bugs.kde.org/show_bug.cgi?id=65576


Repository: ark


Description
-------

This is a review request for an implementation of the renaming feature in Ark. While the implementation is partial, it fulfills most of the use cases expected by the users and provided by other archivers, e.g. Gnome's File Roller.

# The goal
Allow the user to rename a file or a directory within an archive. To keep it simple, only one entry at time can be renamed, i.e. the *rename action* is enabled only when there is a single selection.

# What has been implemented
- Rename using libarchive and the rar plugin.
- Rename a file
- Rename a directory
- Overwrite an existing file after renaming one of its sibling (if the user confirmed the operation)

# What is still missing
- Rename using the zip e 7z plugin. For the zip plugin, there is an [upstream bug](http://www.linuxquestions.org/questions/linux-software-2/problems-with-zipnote-writing-to-files-4175502552/) that makes `zipnote` crash. For the 7z plugin, its *rename* command is available only beginning from version 9.28 or later, that is still a beta (even Arch Linux repo are stuck to stable version 9.20). So, for both these formats, either we wait that the renaming feature is made available upstream, or we could try to use libarchive (even if just for renaming).
- Merging between directories. At the moment is not possible to merge two sibling directories when one of the two is renamed with the name of the other one. It's also not possible to overwrite a directory by a sibling file and viceversa. This feature needs much more work, a own review request and probably a deep refactoring of the `ArchiveNode`/`ArchiveEntry` usage.


Diffs
-----

  plugins/libarchive/libarchivehandler.h 088c0fe8e25c3674c091c51b02692ca88b5a4928 
  plugins/libarchive/libarchivehandler.cpp 0fba52864523bf07ba8c898aa6b15cd867001de6 
  plugins/clirarplugin/cliplugin.h e11fca40571b2a551bca5e9042f6319984594939 
  plugins/clirarplugin/cliplugin.cpp f5f7b184cb9f7ee16efd74968f2e86dc83668b4d 
  plugins/clizipplugin/cliplugin.h 3a310e0a6d486e9abddc77ff24d81a0b7328d93d 
  plugins/clizipplugin/cliplugin.cpp 1be2a10f722865c23fba6df5c25993742ce38d69 
  part/archivemodel.h 7f8c527fc331778e0ec74dce047eba5c56507499 
  part/archivemodel.cpp 43262689ad989e3a9233e279db6dcd532084a031 
  part/ark_part.rc 044c11a562d03589314f05e86eb1d68e633ee35e 
  part/part.h 5379b9fc1aaa4ce451c8b1745ca46ee78630b005 
  part/part.cpp b4ebcd27c462d2b8037b5ea40c56969eda71bdcb 
  plugins/cli7zplugin/cliplugin.h 9f122e4abbabd5698622fba25c104dc4398e7ae7 
  plugins/cli7zplugin/cliplugin.cpp 500f121de97ef395110658a6ca495298bc797b46 
  plugins/clilhaplugin/cliplugin.h 10aedad9a62b92274caa1dc584b738e3831f3de7 
  plugins/clilhaplugin/cliplugin.cpp 5c2aa6e3b8f033f4747dabc9aa433cabd411f4a4 
  kerfuffle/archive.h 515788f978c1d29146c25dcb57a9dad2d46371f7 
  kerfuffle/archive.cpp c2c5b18528def63405a8703475b1c592ca945973 
  kerfuffle/archiveinterface.h 801318b7842d78a0de54700ffdb43a945f513fbf 
  kerfuffle/archiveinterface.cpp 3319de074225ccf8cb0fe54ffadca5882cf29342 
  kerfuffle/cliinterface.h b4d79ed2f3ffbbbe28f7087f1fbff36de5138f36 
  kerfuffle/cliinterface.cpp eab1c6a3200543989fd501e4d54e3e0b06b48999 
  kerfuffle/jobs.h d704dfc764e9f83d69d1f82242730e1977667c22 
  kerfuffle/jobs.cpp 472a6e05616fef3eeedd071a31d87d6a32bfe8c3 
  kerfuffle/queries.h 0abf6890539d49806dee02af5cc17f73d3fd1183 
  kerfuffle/queries.cpp 2067d0f0e475828e04231ff45dd1d72fe784d07a 
  kerfuffle/tests/jsonarchiveinterface.h e74c4f1b6d630df736045151389183fbf1f7f556 
  kerfuffle/tests/jsonarchiveinterface.cpp 14e62f44cc9ab4bbb611a1bbb1f22ae223de2899 

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


Testing
-------

- Rename a file and then preview/extract it, to check its content. Repeat the check after reopening the archive.
- Rename a directory and then preview/extract/rename one of its children. Repeat the check after reopening the archive.
- Rename a file with the name of a sibling, confirm the overwriting and then preview/extract it. Repeat the check after reopening the archive.
- Rename a file with the name of a sibling, prevent the overwriting by choosing another name and then preview/extract it. Repeat the check after reopening the archive.
- Rename a file or directory multiple times in the same Ark session.


Thanks,

Elvis Angelaccio

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-utils-devel/attachments/20150926/eb2fb553/attachment-0001.html>


More information about the Kde-utils-devel mailing list