From 121ab66b41ac403052938022957da52dbc1ca6d9 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sat, 3 Jul 2010 17:41:57 +0200 Subject: [PATCH] renamed QtBCallCb to QtDo (and change the behavior) --- weboob/tools/application/qt/__init__.py | 2 +- weboob/tools/application/qt/qt.py | 27 ++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/weboob/tools/application/qt/__init__.py b/weboob/tools/application/qt/__init__.py index be8d18b0..aa60bcc8 100644 --- a/weboob/tools/application/qt/__init__.py +++ b/weboob/tools/application/qt/__init__.py @@ -1 +1 @@ -from .qt import QtApplication, QtMainWindow, QtBCallCb +from .qt import QtApplication, QtMainWindow, QtDo diff --git a/weboob/tools/application/qt/qt.py b/weboob/tools/application/qt/qt.py index 7931877f..551ca2b9 100644 --- a/weboob/tools/application/qt/qt.py +++ b/weboob/tools/application/qt/qt.py @@ -24,7 +24,7 @@ from weboob.scheduler import IScheduler from ..base import BaseApplication -__all__ = ['QtApplication', 'QtMainWindow', 'QtBCallCb'] +__all__ = ['QtApplication', 'QtMainWindow', 'QtDo'] class QtScheduler(IScheduler): def __init__(self, app): @@ -70,21 +70,38 @@ class QtMainWindow(QMainWindow): def __init__(self, parent=None): QMainWindow.__init__(self, parent) -class QtBCallCb(QObject): - def __init__(self, process, cb, eb=None): +class QtDo(QObject): + def __init__(self, weboob, cb, eb=None): QObject.__init__(self) if not eb: eb = self.default_eb - self.process = process + self.weboob = weboob + self.process = None self.cb = cb self.eb = eb self.connect(self, SIGNAL('cb'), self.cb) self.connect(self, SIGNAL('eb'), self.eb) - self.process.callback_thread(self.thread_cb, self.thread_eb) + def run_thread(func): + def inner(self, *args, **kwargs): + self.process = func(self, *args, **kwargs) + self.process.callback_thread(self.thread_cb, self.thread_eb) + return inner + + @run_thread + def do(self, *args, **kwargs): + return self.weboob.do(*args, **kwargs) + + @run_thread + def do_caps(self, *args, **kwargs): + return self.weboob.do_caps(*args, **kwargs) + + @run_thread + def do_backends(self, *args, **kwargs): + return self.weboob.do_backends(*args, **kwargs) def default_eb(self, backend, error, backtrace): # TODO display a messagebox