<table><tr><td style="">broulik created this revision.<br />broulik added reviewers: Plasma, VDG.<br />Herald added a project: Plasma.<br />Herald added a subscriber: plasma-devel.<br />broulik requested review of this revision.
</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/D26506">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>This rewrites the "Background services" KCM in QML using <tt style="background: #ebebeb; font-size: 13px;">ScrollViewKCM</tt>.<br />
The two separate list views are merged into a single one with the configurable services at the top, and the ones that are loaded on-demand and "only for your convenience" at the bottom.<br />
A search field is added searching through name and plugin ID. Since the sortable table headers are gone, a filter combo is provided instead to filter for all, running, or non running services.<br />
As an extra Schmankerl when starting a service that immediately disables itself again (which technically isn't an error that would be indicated as such) a hint is shown to the user so they're not left wondering why it doesn't start.<br />
Furthermore, the code is cleaned up a lot (quite eerie, adding a 2020 Copyright to an existing 2002 one :), ported to json plugin data, and a proper <tt style="background: #ebebeb; font-size: 13px;">QAbstractListModel</tt> added.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p><a href="https://phabricator.kde.org/F7868523" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">F7868523: Screenshot_20200107_223707.png</a><br />
<a href="https://phabricator.kde.org/F7868524" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">F7868524: Screenshot_20200107_223814.png</a><br />
Trying to start the device automounter which disables itself on load when automounting is disabled in the KCM<br />
<a href="https://phabricator.kde.org/F7868525" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">F7868525: Screenshot_20200107_223859.png</a><br />
Starting or stopping a service shows a little animation<br />
<a href="https://phabricator.kde.org/F7868531" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">F7868531: Screenshot_20200107_224027.png</a><br />
This is mostly for when you apply changes and kded reloads, it will start all autoloaded modules, even if user manually stopped them. Originally I wanted to show an inline message along the lines of "some services were started again when you saved your changes because..." but that turned out to be too brittle/unreliable.</p>

<p>Issues remaining:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Somehow that Kirigami listdelegate feature of adding right padding to take into account the scrollbar doesn't work in ScrollViewKCM</li>
<li class="remarkup-list-item">Since it's using delegaterecycler, the animation will play as you scroll up and down since as far as the item is concerned, status does change.</li>
<li class="remarkup-list-item">Some qt 5.14 adjustments (qregisteranonymoustype)</li>
<li class="remarkup-list-item">I get a binding loop on <tt style="background: #ebebeb; font-size: 13px;">Kirigami.AbstractListItem.implicitHeight</tt> for my delegate for some reason</li>
</ul></div></div><br /><div><strong>REPOSITORY</strong><div><div>R119 Plasma Desktop</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D26506">https://phabricator.kde.org/D26506</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>kcms/kded/CMakeLists.txt<br />
kcms/kded/filterproxymodel.cpp<br />
kcms/kded/filterproxymodel.h<br />
kcms/kded/kcmkded.cpp<br />
kcms/kded/kcmkded.desktop<br />
kcms/kded/kcmkded.h<br />
kcms/kded/modulesmodel.cpp<br />
kcms/kded/modulesmodel.h<br />
kcms/kded/package/contents/ui/main.qml<br />
kcms/kded/package/metadata.desktop</div></div></div><br /><div><strong>To: </strong>broulik, Plasma, VDG<br /><strong>Cc: </strong>plasma-devel, LeGast00n, The-Feren-OS-Dev, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>