From bf0f1d94b1650a0402771d2bf92e1343d08f860d Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Tue, 3 Aug 2010 20:18:34 +0200 Subject: [PATCH] correctly handle reload after backends configuration --- weboob/applications/qhavesex/contacts.py | 3 ++- weboob/applications/qhavesex/main_window.py | 11 +++++++---- weboob/applications/qhavesex/qhavesex.py | 3 ++- weboob/applications/qhavesex/status.py | 9 ++++++++- weboob/applications/qvideoob/main_window.py | 1 + 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/weboob/applications/qhavesex/contacts.py b/weboob/applications/qhavesex/contacts.py index d6837c1f..d21a02a4 100644 --- a/weboob/applications/qhavesex/contacts.py +++ b/weboob/applications/qhavesex/contacts.py @@ -237,13 +237,14 @@ class ContactsWidget(QWidget): self.ui.groupBox.addItem('All', MetaGroup(self.weboob, 'all', self.tr('All'))) self.ui.groupBox.addItem('Onlines', MetaGroup(self.weboob, 'online', self.tr('Online'))) self.ui.groupBox.addItem('Offlines', MetaGroup(self.weboob, 'offline', self.tr('Offline'))) + self.ui.groupBox.setCurrentIndex(1) self.connect(self.ui.groupBox, SIGNAL('currentIndexChanged(int)'), self.groupChanged) self.connect(self.ui.contactList, SIGNAL('currentItemChanged(QListWidgetItem*, QListWidgetItem*)'), self.contactChanged) self.connect(self.ui.refreshButton, SIGNAL('clicked()'), self.refreshContactList) def load(self): - self.ui.groupBox.setCurrentIndex(1) + self.refreshContactList() def groupChanged(self, i): self.refreshContactList() diff --git a/weboob/applications/qhavesex/main_window.py b/weboob/applications/qhavesex/main_window.py index f293b760..bad44c4b 100644 --- a/weboob/applications/qhavesex/main_window.py +++ b/weboob/applications/qhavesex/main_window.py @@ -43,6 +43,9 @@ class MainWindow(QtMainWindow): self.loaded_tabs = {} + self.connect(self.ui.actionBackends, SIGNAL("triggered()"), self.backendsConfig) + self.connect(self.ui.tabWidget, SIGNAL('currentChanged(int)'), self.tabChanged) + self.ui.tabWidget.addTab(AccountsStatus(self.weboob), self.tr('Status')) if HAVE_BOOBMSG: self.ui.tabWidget.addTab(MessagesManager(self.weboob), self.tr('Messages')) @@ -50,12 +53,12 @@ class MainWindow(QtMainWindow): self.ui.tabWidget.addTab(QWidget(), self.tr('Calendar')) self.ui.tabWidget.addTab(QWidget(), self.tr('Optimizations')) - self.connect(self.ui.actionBackends, SIGNAL("triggered()"), self.backendsConfig) - self.connect(self.ui.tabWidget, SIGNAL('currentChanged(int)'), self.tabChanged) - def backendsConfig(self): bckndcfg = BackendCfg(self.weboob, (ICapDating,), self) - bckndcfg.show() + if bckndcfg.run(): + self.loaded_tabs.clear() + widget = self.ui.tabWidget.widget(self.ui.tabWidget.currentIndex()) + widget.load() def tabChanged(self, i): widget = self.ui.tabWidget.currentWidget() diff --git a/weboob/applications/qhavesex/qhavesex.py b/weboob/applications/qhavesex/qhavesex.py index af382c41..b74b5317 100644 --- a/weboob/applications/qhavesex/qhavesex.py +++ b/weboob/applications/qhavesex/qhavesex.py @@ -28,7 +28,8 @@ class QHaveSex(QtApplication): STORAGE_FILENAME = 'dating.storage' def main(self, argv): - self.load_configured_backends(ICapDating, storage=self.create_storage(self.STORAGE_FILENAME)) + self.create_storage(self.STORAGE_FILENAME) + self.load_configured_backends(ICapDating) self.main_window = MainWindow(self.config, self.weboob) self.main_window.show() diff --git a/weboob/applications/qhavesex/status.py b/weboob/applications/qhavesex/status.py index 885a0650..1a9f9617 100644 --- a/weboob/applications/qhavesex/status.py +++ b/weboob/applications/qhavesex/status.py @@ -102,8 +102,15 @@ class AccountsStatus(QWidget): self.setLayout(QVBoxLayout()) + def load(self): + while self.layout().count() > 0: + item = self.layout().takeAt(0) + if item.widget(): + item.widget().hide() + item.widget().deleteLater() + for backend in self.weboob.iter_backends(): - account = Account(weboob, backend) + account = Account(self.weboob, backend) self.layout().addWidget(account) self.layout().addStretch() diff --git a/weboob/applications/qvideoob/main_window.py b/weboob/applications/qvideoob/main_window.py index eace523c..e7855af6 100644 --- a/weboob/applications/qvideoob/main_window.py +++ b/weboob/applications/qvideoob/main_window.py @@ -73,6 +73,7 @@ class MainWindow(QtMainWindow): for minivideo in self.minivideos: self.ui.scrollAreaContent.layout().removeWidget(minivideo) minivideo.hide() + minivideo.deleteLater() self.minivideos = [] self.ui.searchEdit.setEnabled(False)