diff --git a/weboob/applications/qflatboob/main_window.py b/weboob/applications/qflatboob/main_window.py index be540203..90cebe24 100644 --- a/weboob/applications/qflatboob/main_window.py +++ b/weboob/applications/qflatboob/main_window.py @@ -28,6 +28,28 @@ from weboob.capabilities.base import NotLoaded from .ui.main_window_ui import Ui_MainWindow from .query import QueryDialog +class HousingListWidgetItem(QListWidgetItem): + def __init__(self, housing, *args, **kwargs): + QListWidgetItem.__init__(self, *args, **kwargs) + self.housing = housing + + def __lt__(self, other): + return (float(self.housing.cost) / float(self.housing.area)) < \ + (float(other.housing.cost) / float(other.housing.area)) + + def setAttrs(self, storage): + text = u'

%s

' % self.housing.title + text += u'%s — %sm² — %s%s (%s)' % (self.housing.date.strftime('%Y-%m-%d') if self.housing.date else 'Unknown', + self.housing.area, self.housing.cost, self.housing.currency, self.housing.backend) + text += u'
%s' % self.housing.text + text += u'
%s' % storage.get('notes', self.housing.fullid, default='') + self.setText(text) + + if self.housing.fullid in storage.get('bookmarks'): + self.setBackground(QBrush(QColor(255, 224, 219))) + elif not self.housing.fullid in storage.get('read'): + self.setBackground(QBrush(QColor(219, 224, 255))) + class MainWindow(QtMainWindow): def __init__(self, config, storage, weboob, parent=None): QtMainWindow.__init__(self, parent) @@ -187,31 +209,16 @@ class MainWindow(QtMainWindow): self.process_bookmarks[id] = QtDo(self.weboob, self.addHousing) self.process_bookmarks[id].do('get_housing', _id, backends=backend_name) - def setHousingItemAttrs(self, item): - housing = item.data(Qt.UserRole).toPyObject() - - text = u'

%s

' % housing.title - text += u'%s — %sm² — %s%s (%s)' % (housing.date.strftime('%Y-%m-%d') if housing.date else 'Unknown', - housing.area, housing.cost, housing.currency, housing.backend) - text += u'
%s' % housing.text - text += u'
%s' % self.storage.get('notes', housing.fullid, default='') - item.setText(text) - - if housing.fullid in self.storage.get('bookmarks'): - item.setBackground(QBrush(QColor(255, 224, 219))) - elif not housing.fullid in self.storage.get('read'): - item.setBackground(QBrush(QColor(219, 224, 255))) - def addHousing(self, backend, housing): if not backend: + print self.ui.housingsList.model() self.ui.queriesList.setEnabled(True) self.ui.bookmarksButton.setEnabled(True) self.process = None return - item = QListWidgetItem() - item.setData(Qt.UserRole, housing) - self.setHousingItemAttrs(item) + item = HousingListWidgetItem(housing) + item.setAttrs(self.storage) if housing.photos is NotLoaded: process = QtDo(self.weboob, lambda b, c: self.setPhoto(c, item)) @@ -230,7 +237,7 @@ class MainWindow(QtMainWindow): self.process_bookmarks.pop(housing.fullid) def housingSelected(self, item, prev): - housing = item.data(Qt.UserRole).toPyObject() + housing = item.housing self.ui.queriesFrame.setEnabled(False) item.setBackground(QBrush()) @@ -242,7 +249,7 @@ class MainWindow(QtMainWindow): self.setHousing(housing) if prev: - self.setHousingItemAttrs(prev) + prev.setAttrs(self.storage) self.process = QtDo(self.weboob, self.gotHousing) self.process.do('fillobj', housing, backends=housing.backend) diff --git a/weboob/applications/qflatboob/ui/main_window.ui b/weboob/applications/qflatboob/ui/main_window.ui index c8f1d2b5..c6451cf3 100644 --- a/weboob/applications/qflatboob/ui/main_window.ui +++ b/weboob/applications/qflatboob/ui/main_window.ui @@ -79,6 +79,9 @@ 128 + + true +