Broken icons in plasma tray

Bug #1088772 reported by Evgeny Brazgin
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
kde-workspace (Ubuntu)
Fix Released
High
Harald Sitter

Bug Description

After upgrading to KDE 4.9.90 many icons in system tray disappeared. They look like white rectangles with bended corners.
When I start an app with broken icon, I get this:

Object::connect: No such slot IconItem::implicitWidthChanged()
Object::connect: (sender name: 'plasma-desktop')
Object::connect: No such slot IconItem::implicitHeightChanged()
Object::connect: (sender name: 'plasma-desktop')
Object::connect: No such signal IconItem_QML_10::minimumWidthChanged()
Object::connect: (sender name: 'Original Item')
Object::connect: (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_10::minimumHeightChanged()
Object::connect: (sender name: 'Original Item')
Object::connect: (receiver name: 'DIContainer')

The screenshot of this problem is attached. Krusader, Skype, Clementine and Goldendict icons are absent.

The icons are clickable and fully-functional.

Revision history for this message
Evgeny Brazgin (xapienz) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in kde-workspace (Ubuntu):
status: New → Confirmed
Revision history for this message
Masiosare (luis-zaldivar) wrote :

I can confirm this.

Happens to me on
Google Music Manager, Version: 1.0.51.1573-r0
Skype, Version: 4.1.0.20.0-0ubuntu0.12.04.2
KeepassX - Version: 0.4.3-1ubuntu3

Using:

kde-workspace Version: 4:4.9.90-0ubuntu1~ubuntu12.10~ppa1

Revision history for this message
Jussi Schultink (jussi01) wrote :

Some debug as Harald asked for:

Revision history for this message
Jussi Schultink (jussi01) wrote :

Some debug as Harald asked for

Revision history for this message
Jussi Schultink (jussi01) wrote :

and 1 more...

Revision history for this message
Harald Sitter (apachelogger) wrote :

IconThemePath support is not included in the new implementation breaking qstytemtrayicons that were auto-transformed into statusnotifieritems via sni-qt.

Changed in kde-workspace (Ubuntu):
importance: Undecided → High
status: Confirmed → Triaged
assignee: nobody → Harald Sitter (apachelogger)
Revision history for this message
Harald Sitter (apachelogger) wrote : [kde-workspace/KDE/4.10] plasma/generic: KSNI: fix IconThemePath support
Download full text (9.0 KiB)

Git commit a54f9ec9dbbe7001f5a38c15c7c7371ab0932b1b by Harald Sitter.
Committed on 17/12/2012 at 14:13.
Pushed by sitter into branch 'KDE/4.10'.

KSNI: fix IconThemePath support

IconThemePath is used by a Canonical Patch to enable all Qt apps using
QSystemTrayIcon to transparently provide a SNI with icons exported into
a temporary path. Hence the lack of support breaks icons for all Qt apps
on Ubuntu.

Fix:
- in the dataengine export IconThemePath
- in the systray protocol pick up the value and forward to QML
- in QML set the themePath accordingly on the IconItem
  (requires changes in runtime)

https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1088772
BUG: 311555
CCMAIL: <email address hidden>
REVIEW: 107702

M +2 -2 plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
M +83 -0 plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
M +7 -1 plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.h
M +1 -0 plasma/generic/dataengines/statusnotifieritem/statusnotifieritemsource.cpp

http://commits.kde.org/kde-workspace/a54f9ec9dbbe7001f5a38c15c7c7371ab0932b1b

diff --git a/plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml b/plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
index c79c8f0..8c1af92 100644
--- a/plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
+++ b/plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
@@ -179,11 +179,11 @@ Item {

     // Functions =======================================================================================================
     function __getDefaultIcon() {
- return __icon_name != "" ? __icon_name : __icon
+ return task.customIcon(__icon_name != "" ? __icon_name : __icon)
     }

     function __getAttentionIcon() {
- return __att_icon_name != "" ? __att_icon_name : __att_icon
+ return task.customIcon(__att_icon_name != "" ? __att_icon_name : __att_icon)
     }

     function __processClick(buttons, item) {
diff --git a/plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp b/plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
index 6364272..7cb8272 100644
--- a/plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
+++ b/plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
@@ -29,7 +29,9 @@
 #include <QtGui/QIcon>

 #include <KDE/KJob>
+#include <KDE/KIcon>
 #include <KDE/KIconLoader>
+#include <KDE/KStandardDirs>
 #include <KDE/Plasma/ServiceJob>
 #include <KDE/Plasma/ToolTipManager>
 #include <KDE/Plasma/Applet>
@@ -41,6 +43,7 @@ DBusSystemTrayTask::DBusSystemTrayTask(const QString &serviceName, Plasma::DataE
     : Task(parent),
       m_serviceName(serviceName),
       m_typeId(serviceName),
+ m_customIconLoader(0),
       m_dataEngine(dataEngine),
       m_service(dataEngine->serviceForSource(serviceName)),
       m_isMenu(false),
@@ -121,6 +124,51 @@ void DBusSystemTrayTask::activateHorzScroll(int delta) const
     _activateScroll(de...

Read more...

Revision history for this message
Harald Sitter (apachelogger) wrote : [kde-workspace] plasma/generic: KSNI: fix IconThemePath support
Download full text (9.0 KiB)

Git commit 78cfd7a02fe4e260c5b09e8e055325e4803131bf by Harald Sitter.
Committed on 17/12/2012 at 14:13.
Pushed by sitter into branch 'master'.

KSNI: fix IconThemePath support

IconThemePath is used by a Canonical Patch to enable all Qt apps using
QSystemTrayIcon to transparently provide a SNI with icons exported into
a temporary path. Hence the lack of support breaks icons for all Qt apps
on Ubuntu.

Fix:
- in the dataengine export IconThemePath
- in the systray protocol pick up the value and forward to QML
- in QML set the themePath accordingly on the IconItem
  (requires changes in runtime)

https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1088772
BUG: 311555
CCMAIL: <email address hidden>
REVIEW: 107702

M +2 -2 plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
M +83 -0 plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
M +7 -1 plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.h
M +1 -0 plasma/generic/dataengines/statusnotifieritem/statusnotifieritemsource.cpp

http://commits.kde.org/kde-workspace/78cfd7a02fe4e260c5b09e8e055325e4803131bf

diff --git a/plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml b/plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
index c79c8f0..8c1af92 100644
--- a/plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
+++ b/plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
@@ -179,11 +179,11 @@ Item {

     // Functions =======================================================================================================
     function __getDefaultIcon() {
- return __icon_name != "" ? __icon_name : __icon
+ return task.customIcon(__icon_name != "" ? __icon_name : __icon)
     }

     function __getAttentionIcon() {
- return __att_icon_name != "" ? __att_icon_name : __att_icon
+ return task.customIcon(__att_icon_name != "" ? __att_icon_name : __att_icon)
     }

     function __processClick(buttons, item) {
diff --git a/plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp b/plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
index 6364272..7cb8272 100644
--- a/plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
+++ b/plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
@@ -29,7 +29,9 @@
 #include <QtGui/QIcon>

 #include <KDE/KJob>
+#include <KDE/KIcon>
 #include <KDE/KIconLoader>
+#include <KDE/KStandardDirs>
 #include <KDE/Plasma/ServiceJob>
 #include <KDE/Plasma/ToolTipManager>
 #include <KDE/Plasma/Applet>
@@ -41,6 +43,7 @@ DBusSystemTrayTask::DBusSystemTrayTask(const QString &serviceName, Plasma::DataE
     : Task(parent),
       m_serviceName(serviceName),
       m_typeId(serviceName),
+ m_customIconLoader(0),
       m_dataEngine(dataEngine),
       m_service(dataEngine->serviceForSource(serviceName)),
       m_isMenu(false),
@@ -121,6 +124,51 @@ void DBusSystemTrayTask::activateHorzScroll(int delta) const
     _activateScroll(delt...

Read more...

Changed in kde-workspace (Ubuntu):
status: Triaged → Fix Committed
Changed in kde-workspace (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.