<table><tr><td style="">mwolff updated this revision to Diff 22458.<br />mwolff edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-t2ct6yovkidgvt6/" rel="noreferrer">(Show Details)</a><br />mwolff 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/D8598" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>update message</p></div></div><br /><div><strong>CHANGES TO REVISION SUMMARY</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>Remember the drop event target position and move the items once<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>they become available. This requires us to allow moving while no<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>drag image is being shown. Otherwise, we listen to the<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>copy job signals, which gets created by the drop job. This allows<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>us to map target <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">URLs</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">filenames</span> in their final form, i.e. after the user<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>potentially renamed the files to handle conflicts, to some desired<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>visual position. To stay on the safe side, we also periodically<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>cleanup the mapping after an idle timeout of 10s. This ensures we<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>don't grow the mapping with stale items. This is required to handle<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>errors in the file lister, or situations like overwriting an existing<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>file which would not trigger a rowAdded signal.<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    <br />
    </span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);"><br />
</span>Overall, I'm quite happy with this approach. It seems to be quite<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>stable and requires minimal invasive changes only. That said, in<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>the long term we could, and should, cleanup this code to move<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>more of the visual representation into the Positioner. That is a big<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>change though, due to the way the Positioner is currently written.<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>Most notably, that one reacts on rowsAboutToBeInserted which makes<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">    </span>it impossible to query for any data of the row that gets inserted...<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);"><br />
    <br />
    Differential Revision: https://phabricator.kde.org/D8598</span></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R119 Plasma Desktop</div></div></div><br /><div><strong>CHANGES SINCE LAST UPDATE</strong><div><a href="https://phabricator.kde.org/D8598?vs=22457&id=22458" rel="noreferrer">https://phabricator.kde.org/D8598?vs=22457&id=22458</a></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D8598" rel="noreferrer">https://phabricator.kde.org/D8598</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>containments/desktop/plugins/folder/foldermodel.cpp<br />
containments/desktop/plugins/folder/foldermodel.h</div></div></div><br /><div><strong>To: </strong>mwolff, hein, amantia<br /><strong>Cc: </strong>plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br /></div>