From 8f0d9cc0289240a46dfd0603daeb99c42a42e3de Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 16 Dec 2017 12:18:59 +0530 Subject: [PATCH] Linux: Allow using calibre-tray.png in the calibre resources folder to override the system tray icon. Fixes #1738518 [Feature request - custom systray icon](https://bugs.launchpad.net/calibre/+bug/1738518) --- src/calibre/gui2/dbus_export/tray.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/dbus_export/tray.py b/src/calibre/gui2/dbus_export/tray.py index 7fda0f204c..85e02a0a85 100644 --- a/src/calibre/gui2/dbus_export/tray.py +++ b/src/calibre/gui2/dbus_export/tray.py @@ -16,7 +16,8 @@ import os import dbus from PyQt5.Qt import ( - QApplication, QObject, pyqtSignal, Qt, QPoint, QRect, QMenu, QSystemTrayIcon) + QApplication, QObject, pyqtSignal, Qt, QPoint, QRect, QMenu, + QSystemTrayIcon, QIcon) from calibre.gui2.dbus_export.menu import DBusMenu from calibre.gui2.dbus_export.utils import icon_cache @@ -38,7 +39,11 @@ class StatusNotifierItem(QObject): self.context_menu = None self.is_visible = True self.tool_tip = '' - self._icon = QApplication.instance().windowIcon() + path = I('calibre-tray.png') + if path and os.path.exists(path): + self._icon = QIcon(path) + else: + self._icon = QApplication.instance().windowIcon() self.show_menu.connect(self._show_menu, type=Qt.QueuedConnection) _sni_count += 1 kw['num'] = _sni_count @@ -97,6 +102,7 @@ class StatusNotifierItem(QObject): def emit_activated(self): self.activated.emit(QSystemTrayIcon.Trigger) + _status_item_menu_count = 0 @@ -234,5 +240,3 @@ class StatusNotifierItemAPI(Object): @dbus_signal(IFACE, 's') def NewStatus(self, status): pass - -