From 358a06367dffb5e709bd1fe68218cf6684734468 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sat, 10 Jul 2010 13:36:15 +0200 Subject: [PATCH] use QtDo to fetch the accounts status --- weboob/applications/qhavesex/status.py | 59 +++++++++++++++----------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/weboob/applications/qhavesex/status.py b/weboob/applications/qhavesex/status.py index 27333aa3..3fe0013a 100644 --- a/weboob/applications/qhavesex/status.py +++ b/weboob/applications/qhavesex/status.py @@ -21,14 +21,16 @@ from PyQt4.QtGui import QWidget, QHBoxLayout, QVBoxLayout, QFrame, QLabel, QImag from PyQt4.QtCore import SIGNAL, QTimer from weboob.capabilities.dating import StatusField +from weboob.tools.application.qt import QtDo class Account(QFrame): - def __init__(self, backend, parent=None): + def __init__(self, weboob, backend, parent=None): QFrame.__init__(self, parent) self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) + self.weboob = weboob self.backend = backend self.setLayout(QVBoxLayout()) @@ -60,32 +62,39 @@ class Account(QFrame): self.updateStats() def updateStats(self): - with self.backend: - body = u'' - in_p = False - for field in self.backend.get_status(): - if field.flags & StatusField.FIELD_HTML: - value = field.value.replace('&', '&').replace('<', '<').replace('>', '>') - else: - value = '%s' % field.value + self.process = QtDo(self.weboob, self.updateStats_cb) + self.process.body = u'' + self.process.in_p = False + self.process.do_backends(self.backend, 'get_status') - if field.flags & StatusField.FIELD_TEXT: - if in_p: - body += '

' - body += '

%s

' % value - in_p = False - else: - if not in_p: - body += "

" - in_p = True - else: - body += "
" + def updateStats_cb(self, backend, field): + if not field: + if self.process.in_p: + self.process.body += u"

" - body += '%s: %s' % (field.label, field.value) - if in_p: - body += "

" + self.body.setText(self.process.body) - self.body.setText(body) + self.process = None + return + + if field.flags & StatusField.FIELD_HTML: + value = field.value.replace('&', '&').replace('<', '<').replace('>', '>') + else: + value = u'%s' % field.value + + if field.flags & StatusField.FIELD_TEXT: + if self.process.in_p: + self.process.body += u'

' + self.process.body += u'

%s

' % value + self.process.in_p = False + else: + if not self.process.in_p: + self.process.body += u"

" + self.process.in_p = True + else: + self.process.body += u"
" + + self.process.body += u'%s: %s' % (field.label, field.value) class AccountsStatus(QWidget): def __init__(self, weboob, parent=None): @@ -96,7 +105,7 @@ class AccountsStatus(QWidget): self.setLayout(QVBoxLayout()) for backend in self.weboob.iter_backends(): - account = Account(backend) + account = Account(weboob, backend) self.layout().addWidget(account) self.layout().addStretch()