<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/120337/">https://git.reviewboard.kde.org/r/120337/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I've just realized that whish 234375 is highly related to the renaming feature. Indeed, renaming an entry is just a particular case of moving an entry (i.e. when the destination directory is equal to the source directory). So, I'd better to generalize the renaming feature into a <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">move</em> feature. This would require a filemanager-like set of actions (e.g. Cut, Copy, Paste, etc.) and this would also allow us to address other bugs like, for instance, 162054.
Having said that, before to start writing new code (possibly a lot of code), I'd really appreciate some feedback whether this strategy makes sense or not.</p></pre>
 <br />









<p>- Elvis Angelaccio</p>


<br />
<p>On settembre 23rd, 2014, 2:18 p.m. UTC, Elvis Angelaccio wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDE Utils and Raphael Kubo da Costa.</div>
<div>By Elvis Angelaccio.</div>


<p style="color: grey;"><i>Updated Set. 23, 2014, 2:18 p.m.</i></p>







<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=65576">65576</a>


</div>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
ark
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">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.</p>
<h1 style="font-size: 100%;text-rendering: inherit;padding: 0;white-space: normal;margin: 0;line-height: inherit;">The goal</h1>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">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 <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">rename action</em> is enabled only when there is a single selection.</p>
<h1 style="font-size: 100%;text-rendering: inherit;padding: 0;white-space: normal;margin: 0;line-height: inherit;">What has been implemented</h1>
<ul style="padding: 0;text-rendering: inherit;margin: 0 0 0 1em;line-height: inherit;white-space: normal;">
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Rename using libarchive and the rar plugin.</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Rename a file</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Rename a directory</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Overwrite an existing file after renaming one of its sibling (if the user confirmed the operation)</li>
</ul>
<h1 style="font-size: 100%;text-rendering: inherit;padding: 0;white-space: normal;margin: 0;line-height: inherit;">What is still missing</h1>
<ul style="padding: 0;text-rendering: inherit;margin: 0 0 0 1em;line-height: inherit;white-space: normal;">
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Rename using the zip e 7z plugin. For the zip plugin, there is an <a href="http://www.linuxquestions.org/questions/linux-software-2/problems-with-zipnote-writing-to-files-4175502552/" style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">upstream bug</a> that makes <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">zipnote</code> crash. For the 7z plugin, its <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">rename</em> 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).</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">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 <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">ArchiveNode</code>/<code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">ArchiveEntry</code> usage.</li>
</ul></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><ul style="padding: 0;text-rendering: inherit;margin: 0 0 0 1em;line-height: inherit;white-space: normal;">
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Rename a file and then preview/extract it, to check its content. Repeat the check after reopening the archive.</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Rename a directory and then preview/extract/rename one of its children. Repeat the check after reopening the archive.</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Rename a file with the name of a sibling, confirm the overwriting and then preview/extract it. Repeat the check after reopening the archive.</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">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.</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">Rename a file or directory multiple times in the same Ark session.</li>
</ul></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>plugins/libarchive/libarchivehandler.h <span style="color: grey">(088c0fe8e25c3674c091c51b02692ca88b5a4928)</span></li>

 <li>plugins/libarchive/libarchivehandler.cpp <span style="color: grey">(0fba52864523bf07ba8c898aa6b15cd867001de6)</span></li>

 <li>plugins/clirarplugin/cliplugin.h <span style="color: grey">(e11fca40571b2a551bca5e9042f6319984594939)</span></li>

 <li>plugins/clirarplugin/cliplugin.cpp <span style="color: grey">(f5f7b184cb9f7ee16efd74968f2e86dc83668b4d)</span></li>

 <li>plugins/clizipplugin/cliplugin.h <span style="color: grey">(3a310e0a6d486e9abddc77ff24d81a0b7328d93d)</span></li>

 <li>plugins/clizipplugin/cliplugin.cpp <span style="color: grey">(1be2a10f722865c23fba6df5c25993742ce38d69)</span></li>

 <li>part/archivemodel.h <span style="color: grey">(7f8c527fc331778e0ec74dce047eba5c56507499)</span></li>

 <li>part/archivemodel.cpp <span style="color: grey">(43262689ad989e3a9233e279db6dcd532084a031)</span></li>

 <li>part/ark_part.rc <span style="color: grey">(044c11a562d03589314f05e86eb1d68e633ee35e)</span></li>

 <li>part/part.h <span style="color: grey">(5379b9fc1aaa4ce451c8b1745ca46ee78630b005)</span></li>

 <li>part/part.cpp <span style="color: grey">(b4ebcd27c462d2b8037b5ea40c56969eda71bdcb)</span></li>

 <li>plugins/cli7zplugin/cliplugin.h <span style="color: grey">(9f122e4abbabd5698622fba25c104dc4398e7ae7)</span></li>

 <li>plugins/cli7zplugin/cliplugin.cpp <span style="color: grey">(500f121de97ef395110658a6ca495298bc797b46)</span></li>

 <li>plugins/clilhaplugin/cliplugin.h <span style="color: grey">(10aedad9a62b92274caa1dc584b738e3831f3de7)</span></li>

 <li>plugins/clilhaplugin/cliplugin.cpp <span style="color: grey">(5c2aa6e3b8f033f4747dabc9aa433cabd411f4a4)</span></li>

 <li>kerfuffle/archive.h <span style="color: grey">(515788f978c1d29146c25dcb57a9dad2d46371f7)</span></li>

 <li>kerfuffle/archive.cpp <span style="color: grey">(c2c5b18528def63405a8703475b1c592ca945973)</span></li>

 <li>kerfuffle/archiveinterface.h <span style="color: grey">(801318b7842d78a0de54700ffdb43a945f513fbf)</span></li>

 <li>kerfuffle/archiveinterface.cpp <span style="color: grey">(3319de074225ccf8cb0fe54ffadca5882cf29342)</span></li>

 <li>kerfuffle/cliinterface.h <span style="color: grey">(b4d79ed2f3ffbbbe28f7087f1fbff36de5138f36)</span></li>

 <li>kerfuffle/cliinterface.cpp <span style="color: grey">(eab1c6a3200543989fd501e4d54e3e0b06b48999)</span></li>

 <li>kerfuffle/jobs.h <span style="color: grey">(d704dfc764e9f83d69d1f82242730e1977667c22)</span></li>

 <li>kerfuffle/jobs.cpp <span style="color: grey">(472a6e05616fef3eeedd071a31d87d6a32bfe8c3)</span></li>

 <li>kerfuffle/queries.h <span style="color: grey">(0abf6890539d49806dee02af5cc17f73d3fd1183)</span></li>

 <li>kerfuffle/queries.cpp <span style="color: grey">(2067d0f0e475828e04231ff45dd1d72fe784d07a)</span></li>

 <li>kerfuffle/tests/jsonarchiveinterface.h <span style="color: grey">(e74c4f1b6d630df736045151389183fbf1f7f556)</span></li>

 <li>kerfuffle/tests/jsonarchiveinterface.cpp <span style="color: grey">(14e62f44cc9ab4bbb611a1bbb1f22ae223de2899)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/120337/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>








  </div>
 </body>
</html>