<table><tr><td style="">hein updated this revision to Diff 42592.<br />hein edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-aycozcgqhraujcu/">(Show Details)</a><br />hein 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/D14542">View Revision</a></tr></table><br /><div><div><p>Fully implement delayed-apply.</p>

<p>Conflicts between user edits and server-side changes are resolved<br />
as follows:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">If the user hasn't made any edits vs. the server state, the KCM keeps in sync transparently.</li>
<li class="remarkup-list-item">If the user has made edits and the server signals a change, an InlineMessage is used to inform the user that saving will over- write the externally-made changes.</li>
<li class="remarkup-list-item">Saving user edits is done via a synchronization loop until the states are in sync again.</li>
</ul>

<p>Call errors while saving user edits are now handled. If a call<br />
error occurs during synchronization, it's aborted in a way that<br />
allows the user to try again with another click on Apply/Ok.</p>

<p>I changed the dummy intro string above the list into something<br />
more appropriate.</p>

<p>I still need Marco to look at the two FIXMEs in the code that<br />
point out KWin quirks (also mentioned in the description).</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);">This is a basic proof of concept</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">A rewrite of the Virtual Desktops</span> KCM using <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Marco's</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">the new</span> DBus<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);"> API from</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">D13887, as he requested as a form of review</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">API</span>.<br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">The KCM currently installs alongside the old one with no<br />
file conflicts</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Depends on D13887</span>.<br />
<br />
The <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">UI is based on ScrollViewKCM. I'll attach a screenshot<br />
seperately. It's OK-ish, I guess, although only the "Rows"<br />
spinbox correctly manages the "Apply" button; adding, removing<br />
and renaming desktops results in direct calls to the compositor.</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">KCM currently installs alongside the old one with no</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Renaming is done with an inline text field on the row delegate</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">file conflicts</span>.<div style="padding: 8px 0;">...</div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>CHANGES SINCE LAST UPDATE</strong><div><a href="https://phabricator.kde.org/D14542?vs=39009&id=42592">https://phabricator.kde.org/D14542?vs=39009&id=42592</a></div></div><br /><div><strong>BRANCH</strong><div><div>arcpatch-D14542</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D14542">https://phabricator.kde.org/D14542</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>kcmkwin/CMakeLists.txt<br />
kcmkwin/kwindesktopng/CMakeLists.txt<br />
kcmkwin/kwindesktopng/Messages.sh<br />
kcmkwin/kwindesktopng/desktopsmodel.cpp<br />
kcmkwin/kwindesktopng/desktopsmodel.h<br />
kcmkwin/kwindesktopng/kcm_kwin_virtualdesktops.desktop<br />
kcmkwin/kwindesktopng/org.kde.kwin.virtualdesktopmanager.xml<br />
kcmkwin/kwindesktopng/package/contents/ui/main.qml<br />
kcmkwin/kwindesktopng/package/metadata.desktop<br />
kcmkwin/kwindesktopng/virtualdesktops.cpp<br />
kcmkwin/kwindesktopng/virtualdesktops.h</div></div></div><br /><div><strong>To: </strong>hein, mart, davidedmundson<br /><strong>Cc: </strong>davidedmundson, broulik, plasma-devel, kwin, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart<br /></div>