notifications + callbacks update
This commit is contained in:
parent
35cf74eff8
commit
632412c345
2 changed files with 23 additions and 12 deletions
|
@ -1,5 +1,6 @@
|
||||||
from PySide import QtCore
|
from PySide import QtCore
|
||||||
from notifications import *
|
from notifications import *
|
||||||
|
from settings import Settings
|
||||||
# TODO: add all callbacks (replace test callbacks and use wrappers)
|
# TODO: add all callbacks (replace test callbacks and use wrappers)
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,14 +27,15 @@ def invoke_in_main_thread(fn, *args, **kwargs):
|
||||||
QtCore.QCoreApplication.postEvent(_invoker, InvokeEvent(fn, *args, **kwargs))
|
QtCore.QCoreApplication.postEvent(_invoker, InvokeEvent(fn, *args, **kwargs))
|
||||||
|
|
||||||
|
|
||||||
def repaint_widget(widget):
|
|
||||||
return widget.repaint
|
|
||||||
|
|
||||||
|
|
||||||
def self_connection_status(st, tox_link):
|
def self_connection_status(st, tox_link):
|
||||||
|
"""
|
||||||
|
:param st: widget on mainscreen which shows status
|
||||||
|
:param tox_link: tox instance
|
||||||
|
:return: function for tox.callback_self_connection_status
|
||||||
|
"""
|
||||||
def wrapped(tox, connection, user_data):
|
def wrapped(tox, connection, user_data):
|
||||||
print 'Connection status: ', str(connection)
|
print 'Connection status: ', str(connection)
|
||||||
invoke_in_main_thread(repaint_widget(st))
|
invoke_in_main_thread(st.repaint)
|
||||||
return wrapped
|
return wrapped
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,17 +43,23 @@ def friend_status(a, b, c, d):
|
||||||
print "Friend connected! Friend's data: ", str(a), str(b), str(c)
|
print "Friend connected! Friend's data: ", str(a), str(b), str(c)
|
||||||
|
|
||||||
|
|
||||||
def friend_message(a, b, c, d, e, f):
|
def friend_message(window):
|
||||||
print 'Message: ', d.decode('utf8')
|
"""
|
||||||
tray_notification('Message', d.decode('utf8'))
|
:param window: main window
|
||||||
|
:return: function for tox.callback_friend_message
|
||||||
|
"""
|
||||||
|
def wrapped(tox, friend_number, message_type, message, size, user_data):
|
||||||
|
print 'Message: ', message.decode('utf8')
|
||||||
|
if not window.isActiveWindow() and Settings()['notifications']:
|
||||||
|
tray_notification('Message', message.decode('utf8'))
|
||||||
|
return wrapped
|
||||||
|
|
||||||
|
|
||||||
def init_callbacks(tox, window):
|
def init_callbacks(tox, window):
|
||||||
"""
|
"""
|
||||||
:param tox: tox instance
|
:param tox: tox instance
|
||||||
:param window: main window
|
:param window: main window
|
||||||
:return: None
|
|
||||||
"""
|
"""
|
||||||
tox.callback_friend_status(friend_status, 0)
|
tox.callback_friend_status(friend_status, 0)
|
||||||
tox.callback_friend_message(friend_message, 0)
|
tox.callback_friend_message(friend_message(window), 0)
|
||||||
tox.callback_self_connection_status(self_connection_status(window.connection_status, tox), 0)
|
tox.callback_self_connection_status(self_connection_status(window.connection_status, tox), 0)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from PySide import QtGui, QtCore
|
from PySide import QtGui
|
||||||
# TODO: add sound notifications
|
# TODO: add sound notifications
|
||||||
|
# TODO: add reaction om mouse move
|
||||||
|
|
||||||
|
|
||||||
def tray_notification(title, text):
|
def tray_notification(title, text):
|
||||||
|
@ -7,4 +8,6 @@ def tray_notification(title, text):
|
||||||
tray = QtGui.QSystemTrayIcon()
|
tray = QtGui.QSystemTrayIcon()
|
||||||
tray.setContextMenu(QtGui.QMenu())
|
tray.setContextMenu(QtGui.QMenu())
|
||||||
tray.show()
|
tray.show()
|
||||||
tray.showMessage(title, text)
|
if len(text) > 50:
|
||||||
|
text = text[:50] + '...'
|
||||||
|
tray.showMessage(title, text, QtGui.QSystemTrayIcon.NoIcon, 4000)
|
||||||
|
|
Loading…
Reference in a new issue