From c3f6618bc8843a9b4a626d86eb541a15c928cdba Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sat, 17 Apr 2010 11:20:48 +0200 Subject: [PATCH] new QtApplication class --- weboob/tools/application/__init__.py | 5 +++ weboob/tools/application/qt.py | 48 ++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 weboob/tools/application/qt.py diff --git a/weboob/tools/application/__init__.py b/weboob/tools/application/__init__.py index 19dd3256..16b52cd1 100644 --- a/weboob/tools/application/__init__.py +++ b/weboob/tools/application/__init__.py @@ -21,3 +21,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. from .base import BaseApplication from .console import ConsoleApplication from .prompt import PromptApplication + +try: + from .qt import QtApplication +except ImportError: + pass diff --git a/weboob/tools/application/qt.py b/weboob/tools/application/qt.py new file mode 100644 index 00000000..b007d25b --- /dev/null +++ b/weboob/tools/application/qt.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- + +""" +Copyright(C) 2010 Romain Bignon + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 3 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +""" + +import sys +from PyQt4.QtGui import QMainWindow, QApplication + +from weboob import Weboob +from weboob.scheduler import Scheduler + +from .base import BaseApplication + +__all__ = ['QtApplication'] + +class QtScheduler(Scheduler): + def __init__(self, app): + self.app = app + + def run(self): + self.app.exec_() + +class QtApplication(QApplication, BaseApplication): + def __init__(self): + QApplication.__init__(self, sys.argv) + BaseApplication.__init__(self) + + def create_weboob(self): + return Weboob(self.APPNAME, scheduler=QtScheduler(self)) + +class QtMainWindow(QMainWindow): + def __init__(self, parent=None): + QMainWindow.__init__(self, parent)