D14542: WIP: Basic KCM using new virtual desktops DBus interface

David Edmundson noreply at phabricator.kde.org
Mon Oct 8 09:40:19 BST 2018


davidedmundson added a comment.


  QML and the rest is all fine.
  
  I don't understand why desktopmodel is the way it is.
  
  There are 2 DBus patterns one could do here.
  
  - we buffer all changes in a model locally, when the user clicks save we apply them on the server and recall initialise.
  - we do things async-realtime. The model is always in sync with remote changes. When the user clicks create/remove we send a request to the server; the model only updates when it gets the callback.
  
  This seems to be doing both patterns at once.

INLINE COMMENTS

> desktopsmodel.cpp:402
> +    // If the user didn't make any changes, we can just stay in sync.
> +    if (!m_userModified) {
> +        beginInsertRows(QModelIndex(), data.position, data.position);

but if it is userModified don't we need to update the ID to be the non-dummy value in case that entry is then later removed?

> desktopsmodel.cpp:416
> +{
> +    const int desktopIndex = m_serverSideDesktops.indexOf(id);
> +

needs a guard.

could be emitted before the first load finishes

> org.kde.kwin.virtualdesktopmanager.xml:1
> +<interface name="org.kde.KWin.VirtualDesktopManager">
> +    <signal name="desktopCreated">

You're not using this file?

I would strongly suggest generating the iface, it makes the C++ a lot nicer and you get compile errors if the iface ever changes.

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D14542

To: hein, mart, davidedmundson, ltoscano
Cc: zzag, davidedmundson, broulik, plasma-devel, kwin, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20181008/8b839538/attachment-0001.html>


More information about the Plasma-devel mailing list