callbacks update - now callbacks can ask window for repaint
This commit is contained in:
parent
9145974c7f
commit
4d4c0cb56a
4 changed files with 39 additions and 7 deletions
|
@ -1,11 +1,39 @@
|
|||
from PySide import QtCore
|
||||
# TODO: add all callbacks (replace test callbacks and use wrappers)
|
||||
|
||||
|
||||
class InvokeEvent(QtCore.QEvent):
|
||||
EVENT_TYPE = QtCore.QEvent.Type(QtCore.QEvent.registerEventType())
|
||||
|
||||
def __init__(self, fn, *args, **kwargs):
|
||||
QtCore.QEvent.__init__(self, InvokeEvent.EVENT_TYPE)
|
||||
self.fn = fn
|
||||
self.args = args
|
||||
self.kwargs = kwargs
|
||||
|
||||
|
||||
class Invoker(QtCore.QObject):
|
||||
|
||||
def event(self, event):
|
||||
event.fn(*event.args, **event.kwargs)
|
||||
return True
|
||||
|
||||
_invoker = Invoker()
|
||||
|
||||
|
||||
def invoke_in_main_thread(fn, *args, **kwargs):
|
||||
QtCore.QCoreApplication.postEvent(_invoker, InvokeEvent(fn, *args, **kwargs))
|
||||
|
||||
|
||||
def repaint_widget(widget):
|
||||
return widget.repaint
|
||||
|
||||
|
||||
def self_connection_status(st):
|
||||
def wrapped(a, b, c):
|
||||
print 'WOW, it works!'
|
||||
print 'Status: ', str(b)
|
||||
st.status = b
|
||||
def wrapped(tox, connection, user_data):
|
||||
print 'Connection status: ', str(connection)
|
||||
st.status = connection
|
||||
invoke_in_main_thread(repaint_widget(st))
|
||||
return wrapped
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ from profile import Profile, tox_factory
|
|||
import sys
|
||||
from PySide import QtCore, QtGui
|
||||
from callbacks import init_callbacks
|
||||
from tox import Tox
|
||||
from bootstrap import node_generator
|
||||
|
||||
|
||||
|
@ -74,6 +73,7 @@ def main():
|
|||
# bootstrap
|
||||
for data in node_generator():
|
||||
tox.bootstrap(*data)
|
||||
# initializing callbacks
|
||||
init_callbacks(tox, ms)
|
||||
# starting thread for tox iterate
|
||||
mainloop = ToxIterateThread(tox)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
import os
|
||||
|
||||
program_version = '0.0.1 (alpha)'
|
||||
|
||||
|
@ -15,3 +15,7 @@ def string_to_bin(tox_id):
|
|||
def bin_to_string(raw_id):
|
||||
res = ''.join('{:02x}'.format(ord(x)) for x in raw_id)
|
||||
return res.upper()
|
||||
|
||||
|
||||
def curr_directory():
|
||||
return os.path.dirname(os.path.realpath(__file__))
|
||||
|
|
|
@ -59,7 +59,7 @@ class TestNodeGen():
|
|||
|
||||
class TestTox():
|
||||
|
||||
def test_creation(self):
|
||||
def test_loading(self):
|
||||
data = Profile.open_profile(Settings.get_default_path(), 'tox_save')
|
||||
settings = Settings.get_default_settings()
|
||||
tox = tox_factory(data, settings)
|
||||
|
|
Loading…
Reference in a new issue