Changing the KDE colour scheme does not immediately update the contact list. This is because we have the following code in AbstractContactDelegate which we then use m_palette = new QPalette(QApplication::palette()); QApplication::palette is a very fast operation, so there's no point keeping it as a member variable. This call just needs moving into each of the paintEvents.
Marking as a junior job. To solve find every instance of m_palette in the subclass and replace it with QApplication::palette() instead Then remove m_palette completely.
Note that the palette is also passed in the QStyleOption and available per widget. Generally, there is no need to access the application's global palette.
Btw. isn't there some signal saying "color scheme has changed"? I know I saw it somewhere, but can't find it now.
Git commit d57901ab55947c1f3bae152c7d30bd6704b056b7 by Martin Klapetek. Committed on 23/10/2012 at 14:14. Pushed by mklapetek into branch 'master'. Use option's palette instead of storing app's palette in class var Reviewed-by: Rohan Garg REVIEW: 107008 Related: bug 308802 M +4 -6 abstract-contact-delegate.cpp M +0 -1 abstract-contact-delegate.h M +4 -4 contact-delegate-compact.cpp M +4 -4 contact-delegate.cpp http://commits.kde.org/telepathy-contact-list/d57901ab55947c1f3bae152c7d30bd6704b056b7