Version: (using KDE 3.5.9) Compiler: gcc-4.3.1 OS: Linux Installed from: Gentoo Packages Setting custom color for a particular account in Settings->Configure does not update colors of icons in actionMenu (popup menus in Kopete's statusbar). This bug is due to reusing previously created KActions in libkopete/kopeteonlinestatusmanager.cpp, void OnlineStatusManager::createAccountStatusActions() Gadu-gadu protocol is unaffected, because it uses its own internal methods of showing actionMenu. Affected are all protocols using OnlineStatusManager to map protocol states onto actionMenu. Steps to reproduce: 1. Create account with one of the affected protocols (jabber, IRC, probably most of them). 2. Change custom color. 3. Unfold protocol's actionMenu from status bar and notice that only the icon in menu's titlebar is rendered correctly. Patch is tested based mostly on code from OnlineStatusManager::createAccountStatusActions(). Tested on KDE 3.5.9; changelog for 3.5.10 doesn't mention any changes of this kind for Kopete, so bug probably persists there.
Created attachment 27155 [details] proposed patch
Would it be possible for you to port this patch to KDE 4 so that I can apply it and get the bug fixed?
Not for at least a week, probably two. I'm still using mostly KDE 3 series, so I'm not accustomed to KDE 4 code base. I planned to try hacking K4 anyway, then I guess it's a good time to start.
Additional question: should I target 4.1.x or rather SVN head for the patch to be applied?
Ping? BTW, as far as I can see, Kopete from SVN head doesn't support changing account colors yet (or am I missing something?). BTW #2, can't this patch be applied at least to 3.5.10? It's tested by me and confirmed to work. I can tackle the bug for KDE4 when proper support for changing account colors appears, supposing the same error persists, of course.
Kopete SVN will support changing custom colors very soon (my patch is waiting to get committed). The problem persists, please port the patch to SVN HEAD...
Just let me know when your patch gets there and I'll be happy to help.
(In reply to comment #7) > Just let me know when your patch gets there and I'll be happy to help. The support for changing account colors just got in (SVN r915668), enjoy!
Thanks. Will do in a couple of days, after I pass my exams.
Created attachment 31484 [details] Patch for Kopete @ KDE4 Ported patch. This fixes stale color settings for contact icons on popup menu launched from main window's account list. Unfortunately, in KDE4 there's another place where icons' colors are not updated - right in the list, from which the popups are opened the main window. I wasn't able to track down appropriate code path yet. Any hints about its whereabouts are gladly welcomed. I'll try to tackle it again tomorrow.
Bartosz: your latest patch looks fine. Do I need to commit it for you or do you have an account to commit it with?
No, I don't have an account. I'm doubting the quality of this patch. Tomas' color changing patch introduced a colorChanged signal, which should be fired instead. My fix is actually a very hackish way of dealing with the problem. And as I mentioned above, it fixes the problem only partially. I've learned of this signal quite late, when I was trying to track down other places where appriopriate color change should take place, and was pretty surprised that it isn't just emmited here and there. Then I realised that it was quite a change to just use this signal in proper places - I had to include headers and modify CMakeLists, just like in the proposed patch, but in more invasive way, so it looked like it was not worth the effort (or maybe I'm not doing it the right way, as I'm not accustomed to Kopete's internals).
It works fine for me with Kopete 0.80.2 (KDE SC 4.3.4). Testing steps: 1°) Go to the menu Settings > Configure 2°) In the "Accounts"section, select one of your accounts 3°) Click on set the color 4°) Pick up a color Right after that, you could see that the color of the protocol icon has changed. If you click on the identity icon (bottom right on the main window), you will see the change, as well as when right-clicking on a contact.