From 11893f4bb09118d3ea7d51f6c426027546cba122 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sat, 3 Jul 2010 20:41:05 +0200 Subject: [PATCH] load tabs only when they are shown for the first time --- weboob/frontends/qboobmsg/messages_manager.py | 1 + weboob/frontends/qhavesex/contacts.py | 1 + weboob/frontends/qhavesex/main_window.py | 13 ++++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/weboob/frontends/qboobmsg/messages_manager.py b/weboob/frontends/qboobmsg/messages_manager.py index d824b8da..c3a392d9 100644 --- a/weboob/frontends/qboobmsg/messages_manager.py +++ b/weboob/frontends/qboobmsg/messages_manager.py @@ -50,6 +50,7 @@ class MessagesManager(QWidget): self.connect(self.ui.messagesTree, SIGNAL('itemActivated(QTreeWidgetItem *, int)'), self._messageSelected) self.connect(self, SIGNAL('gotMessage'), self._gotMessage) + def load(self): self.refresh() def _backendChanged(self): diff --git a/weboob/frontends/qhavesex/contacts.py b/weboob/frontends/qhavesex/contacts.py index db6f532f..c0688e28 100644 --- a/weboob/frontends/qhavesex/contacts.py +++ b/weboob/frontends/qhavesex/contacts.py @@ -68,6 +68,7 @@ class ContactsWidget(QWidget): self.connect(self.ui.groupBox, SIGNAL('currentIndexChanged(int)'), self.groupChanged) self.connect(self.ui.contactList, SIGNAL('currentItemChanged(QListWidgetItem*, QListWidgetItem*)'), self.contactChanged) + def load(self): self.ui.groupBox.setCurrentIndex(1) def groupChanged(self, i): diff --git a/weboob/frontends/qhavesex/main_window.py b/weboob/frontends/qhavesex/main_window.py index c3b8fb03..803488ec 100644 --- a/weboob/frontends/qhavesex/main_window.py +++ b/weboob/frontends/qhavesex/main_window.py @@ -25,6 +25,7 @@ from weboob.capabilities.dating import ICapDating from weboob.frontends.qboobmsg.messages_manager import MessagesManager from .ui.main_window_ui import Ui_MainWindow +from .status import AccountsStatus from .contacts import ContactsWidget class MainWindow(QtMainWindow): @@ -36,13 +37,23 @@ class MainWindow(QtMainWindow): self.config = config self.weboob = weboob - self.ui.tabWidget.addTab(QWidget(), self.tr('Status')) + self.loaded_tabs = {} + + self.ui.tabWidget.addTab(AccountsStatus(self.weboob), self.tr('Status')) self.ui.tabWidget.addTab(MessagesManager(self.weboob), self.tr('Messages')) self.ui.tabWidget.addTab(ContactsWidget(self.weboob), self.tr('Contacts')) self.ui.tabWidget.addTab(QWidget(), self.tr('Calendar')) self.connect(self.ui.actionModules, SIGNAL("triggered()"), self.modulesConfig) + self.connect(self.ui.tabWidget, SIGNAL('currentChanged(int)'), self.tabChanged) def modulesConfig(self): bckndcfg = BackendCfg(self.weboob, (ICapDating,), self) bckndcfg.show() + + def tabChanged(self, i): + widget = self.ui.tabWidget.currentWidget() + + if hasattr(widget, 'load') and not i in self.loaded_tabs: + widget.load() + self.loaded_tabs[i] = True