diff --git a/src/callbacks.py b/src/callbacks.py index c7f7c9a..c7b7831 100644 --- a/src/callbacks.py +++ b/src/callbacks.py @@ -119,7 +119,7 @@ def friend_message(window, tray): if not window.isActiveWindow(): friend = profile.get_friend_by_number(friend_number) if settings['notifications']: - invoke_in_main_thread(tray_notification, friend.name, message.decode('utf8'), tray) + invoke_in_main_thread(tray_notification, friend.name, message.decode('utf8'), tray, window) if settings['sound_notifications']: sound_notification(SOUND_NOTIFICATION['MESSAGE']) return wrapped diff --git a/src/notifications.py b/src/notifications.py index 21a0679..294e558 100644 --- a/src/notifications.py +++ b/src/notifications.py @@ -1,4 +1,4 @@ -from PySide import QtGui +from PySide import QtGui, QtCore from PySide.phonon import Phonon from util import curr_directory # TODO: make app icon active @@ -12,12 +12,23 @@ SOUND_NOTIFICATION = { } -def tray_notification(title, text, tray): +def tray_notification(title, text, tray, window): + """ + :param title: Name of user who sent message or file + :param text: text of message or file info + :param tray: ref to tray icon + :param window: main window + """ if QtGui.QSystemTrayIcon.isSystemTrayAvailable(): if len(text) > 30: text = text[:27] + '...' tray.showMessage(title, text, QtGui.QSystemTrayIcon.NoIcon, 3000) + def message_clicked(): + window.setWindowState(window.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive) + window.activateWindow() + tray.connect(tray, QtCore.SIGNAL("messageClicked()"), message_clicked) + def sound_notification(t): if t == SOUND_NOTIFICATION['MESSAGE']: diff --git a/src/sounds/contact.wav b/src/sounds/contact.wav new file mode 100644 index 0000000..9136588 Binary files /dev/null and b/src/sounds/contact.wav differ