load tabs only when they are shown for the first time

This commit is contained in:
Romain Bignon 2010-07-03 20:41:05 +02:00
commit 11893f4bb0
3 changed files with 14 additions and 1 deletions

View file

@ -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):

View file

@ -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):

View file

@ -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