At some point we need to add back in per-account presence, especially if we are to put in the activity support DrDanz wants. At the moment if one account is busy, another online when we auto away, and return both accounts will be set back to online. Which is wrong. The real reason we disabled per account presence was in part because it clashed with the kded, so we need to fix this before we can move forwards. Possibly a good time to do a refactor that we talked about.
Isn't the recent patch of yours to the global presence supposed to solve/help with this? The thing with one busy and one online is wrong assumption to start with; we currently do not support that at all (as in you can't set it from our components unless you manually do so). If we're to refactor kded, we should turn it into a bigger scope refactor/discussion, because either all components have to operate on global presence or all have to work with per-account presences, otherwise everything breaks and explodes and shoots you in the foot. Ok ok it just breaks. We could probably introduce "activity account sets" and then operate on per-activity basis, ie. if you change presence from presence plasmoid or contact list, it modifies only the presence of those accounts that are in the current activity set and leaves the rest untouched. If you do not use activity you'd control all accounts as the set wouldn't be divided in the first place. This behavior is however imho a bit confusing and misleading (all presence controls says "Online" while three of your accounts in other activity are "Away").
"The thing with one busy and one online is wrong assumption to start with; we currently do not support that at all " I know, but at some point in the future we will need to do so. There are 3 things stopping us, the kded (this bug), the global presence bar, and the presence plasmoid. This one is the one we can solve with code so we can do it now, the rest need solving with design. It's not really a bug right now, just trying to plan for future. I'll mark as wishlist to show this. My patch will help fix this notion of accounts not connecting, and them reconnecting, but that doesn't solve this issue of varying presence.
(In reply to comment #1) > The thing with one busy and one online is wrong assumption to start with; we > currently do not support that at all (as in you can't set it from our > components unless you manually do so). I just made a simply test, and it is actually possible to have a set of account with one state and a set of accounts "available", even I don't think that any user will ever use it, and probably this behavior is a bug... The trick is just to disable some accounts from kcm, choose from the presence plasmoid the status, and then enable the disabled accounts from kcm.
Git commit 20f845ce0c2e828700a79efd455f9700deafb1d7 by James D. Smith. Committed on 22/11/2017 at 01:03. Pushed by smithjd into branch 'master'. Independent account presences. Activities support. Make unit testing compile. Implement status message parser with Now Playing. Status message parser unit testing. REVIEW: 130192 Related: bug 284517, bug 294940, bug 297924, bug 334542 M +5 -3 CMakeLists.txt A +208 -0 account-status-helper.cpp [License: LGPL (v2.1+)] A +115 -0 account-status-helper.h [License: LGPL (v2.1+)] M +31 -41 autoaway.cpp M +4 -8 autoaway.h D +0 -62 autoconnect.cpp D +0 -99 autoconnect.h M +0 -2 config/CMakeLists.txt D +0 -80 config/nowplaying-lineedit.cpp D +0 -43 config/nowplaying-lineedit.h D +0 -107 config/nowplaying-listwidget.cpp D +0 -50 config/nowplaying-listwidget.h M +34 -122 config/telepathy-kded-config.cpp M +0 -4 config/telepathy-kded-config.h M +10 -73 config/telepathy-kded-config.ui M +18 -27 screensaveraway.cpp M +2 -5 screensaveraway.h M +182 -149 status-handler.cpp M +24 -32 status-handler.h A +303 -0 status-message-parser.cpp [License: LGPL (v2.1+)] A +97 -0 status-message-parser.h [License: LGPL (v2.1+)] M +17 -13 telepathy-kded-module-plugin.cpp M +34 -22 telepathy-kded-module-plugin.h M +4 -1 telepathy-module.cpp M +0 -1 telepathy-module.h M +192 -236 telepathy-mpris.cpp M +33 -28 telepathy-mpris.h M +33 -11 tests/CMakeLists.txt M +3 -3 tests/status-handling-main.cpp A +132 -0 tests/status-message-parser.cpp [License: LGPL (v2.1+)] https://commits.kde.org/ktp-kded-module/20f845ce0c2e828700a79efd455f9700deafb1d7