From b02e06330200894a8158b818e95e45bbbfe47128 Mon Sep 17 00:00:00 2001 From: ingvar1995 Date: Fri, 3 Jun 2016 13:48:41 +0300 Subject: [PATCH] tray icon on message --- src/callbacks.py | 1 + src/main.py | 5 +++-- src/mainscreen.py | 8 +++++++- src/profile.py | 6 +++--- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/callbacks.py b/src/callbacks.py index f354998..c2efe3d 100644 --- a/src/callbacks.py +++ b/src/callbacks.py @@ -127,6 +127,7 @@ def friend_message(window, tray): invoke_in_main_thread(tray_notification, friend.name, message.decode('utf8'), tray, window) if settings['sound_notifications'] and profile.status != TOX_USER_STATUS['BUSY']: sound_notification(SOUND_NOTIFICATION['MESSAGE']) + tray.setIcon(QtGui.QIcon(curr_directory() + '/images/icon_new_messages.png')) return wrapped diff --git a/src/main.py b/src/main.py index d49614b..04d9d57 100644 --- a/src/main.py +++ b/src/main.py @@ -129,12 +129,12 @@ class Toxygen(object): app.installTranslator(translator) app.translator = translator - self.ms = MainWindow(self.tox, self.reset) - # tray icon self.tray = QtGui.QSystemTrayIcon(QtGui.QIcon(curr_directory() + '/images/icon.png')) self.tray.setObjectName('tray') + self.ms = MainWindow(self.tox, self.reset, self.tray) + class Menu(QtGui.QMenu): def newStatus(self, status): @@ -186,6 +186,7 @@ class Toxygen(object): sub.connect(onl, QtCore.SIGNAL("triggered()"), lambda: m.newStatus(0)) sub.connect(away, QtCore.SIGNAL("triggered()"), lambda: m.newStatus(1)) sub.connect(busy, QtCore.SIGNAL("triggered()"), lambda: m.newStatus(2)) + self.tray.setContextMenu(m) self.tray.show() diff --git a/src/mainscreen.py b/src/mainscreen.py index 824156c..a8b05bd 100644 --- a/src/mainscreen.py +++ b/src/mainscreen.py @@ -42,9 +42,10 @@ class MessageArea(QtGui.QPlainTextEdit): class MainWindow(QtGui.QMainWindow): - def __init__(self, tox, reset): + def __init__(self, tox, reset, tray): super(MainWindow, self).__init__() self.reset = reset + self.tray = tray self.initUI(tox) def setup_menu(self, MainWindow): @@ -110,6 +111,11 @@ class MainWindow(QtGui.QMainWindow): def languageChange(self, *args, **kwargs): self.retranslateUi() + def event(self, event): + if event.type() == QtCore.QEvent.WindowActivate: + self.tray.setIcon(QtGui.QIcon(curr_directory() + '/images/icon.png')) + return super(MainWindow, self).event(event) + def retranslateUi(self): self.menuPlugins.setTitle(QtGui.QApplication.translate("MainWindow", "Plugins", None, QtGui.QApplication.UnicodeUTF8)) self.pluginData.setText(QtGui.QApplication.translate("MainWindow", "List of plugins", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/src/profile.py b/src/profile.py index a5458d4..2387680 100644 --- a/src/profile.py +++ b/src/profile.py @@ -238,7 +238,7 @@ class Friend(Contact): :param value: new name """ if not self._alias: - super(self.__class__, self).set_name(value) + super(Friend, self).set_name(value) def set_alias(self, alias): self._alias = bool(alias) @@ -341,11 +341,11 @@ class Profile(Contact, Singleton): self._tox.self_set_status(status) def set_name(self, value): - super(self.__class__, self).set_name(value) + super(Profile, self).set_name(value) self._tox.self_set_name(self._name.encode('utf-8')) def set_status_message(self, value): - super(self.__class__, self).set_status_message(value) + super(Profile, self).set_status_message(value) self._tox.self_set_status_message(self._status_message.encode('utf-8')) def new_nospam(self):