<table><tr><td style="">markg added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D10702">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D10702#273040" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D10702#273040</a>, <a href="https://phabricator.kde.org/p/meven/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@meven</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>Great suggestion Mark !</p>

<p>I am a C++ beginner, I did not consider this neat C++ 14 feature.</p>

<p>This will necessitate a c++ compiler dependency change though.<br />
 Like Kwin did last July <a href="https://github.com/KDE/kwin/commit/ea5d611de1bc33869c13c27d75a7827201a5139d" class="remarkup-link" target="_blank" rel="noreferrer">https://github.com/KDE/kwin/commit/ea5d611de1bc33869c13c27d75a7827201a5139d</a></p></div>
</blockquote>

<p>Well, it's nearly all C++11 :)<br />
Only the "300ms" (specifically the "ms") in there is new in C++14 (chrono literals: <a href="https://en.cppreference.com/w/cpp/chrono/duration" class="remarkup-link" target="_blank" rel="noreferrer">https://en.cppreference.com/w/cpp/chrono/duration</a>). In this case removing the ms would make it C++11 and probably work (i haven't tested that).<br />
You could make it all in Qt (QThread, QFuture, ...). I'm just not that used to those classes en went for the STL ones instead.</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;">

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">That in it's own is slightly different to what the code currently does. Currently it calls slotReport after every 300 files. With this it would call slotReport after every 300ms. I don't think that's much of a problem.</pre></div></blockquote>

<p>I think a time based update would make more sense to the user.</p>

<p>I think deleteFiles and deleteDirs should both be wrapped in the async function.<br />
 Otherwise, at best we would end up with multiple parallel file deletion which is not preferable (given current filesystems and hardware, we should favor sequential deletion) and at worst the same as today blocking the main thread.<br />
 Or we might need some mutex/buffer to synchronize the unlink syscalls through Qt::remove() between different async deletion functions.</p>

<p>So this plus the added necessary synchronizing code, this might end up a big code change.</p></blockquote>

<p>Take care with modifying those class members though. You'd probably want to protect them with a mutex. Even though this code probably won't cause a race condition, better be safe then sorry :)</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>I will give a spin.</p></blockquote>

</div></div><br /><div><strong>REPOSITORY</strong><div><div>R241 KIO</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D10702">https://phabricator.kde.org/D10702</a></div></div><br /><div><strong>To: </strong>meven, Frameworks, dfaure, ngraham, Dolphin, jtamate<br /><strong>Cc: </strong>kde-frameworks-devel, jtamate, markg, ngraham, Frameworks, michaelh, bruns<br /></div>