From d20575b65d9b6d0f13e3b284bff32d181b19a888 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Wed, 25 Aug 2010 12:36:37 +0200 Subject: Adding QWeakPointers for the walletbar and the previewselectorbar. While this can be overkilling for the previewselectorbar, I'd like doing it for all the bars in our next stable, moving them INSIDE the webtab class, so that each webtab has its findbar, its zoombar and so on. This should fix BUG: 243508 Please, let me know if it's not the case.. Thanks! --- src/webtab.cpp | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'src/webtab.cpp') diff --git a/src/webtab.cpp b/src/webtab.cpp index 0b58d7c5..d5c5b478 100644 --- a/src/webtab.cpp +++ b/src/webtab.cpp @@ -92,6 +92,8 @@ WebTab::WebTab(QWidget *parent) WebTab::~WebTab() { + _walletBar.clear(); + _previewSelectorBar.clear(); } @@ -131,6 +133,12 @@ void WebTab::updateProgress(int p) void WebTab::loadFinished(bool) { m_progress = 0; + if(_walletBar.isNull()) + { + kDebug() << "OK, it's null"; + } + else + kDebug() << "NO, it's NOT null"; } @@ -142,27 +150,35 @@ void WebTab::createWalletBar(const QString &key, const QUrl &url) if (blackList.contains(urlString)) return; + if(!_walletBar.isNull()) + { + _walletBar.clear(); + } KWebWallet *wallet = page()->wallet(); - WalletBar *walletBar = new WalletBar(this); - walletBar->onSaveFormData(key, url); - qobject_cast(layout())->insertWidget(0, walletBar); + _walletBar = new WalletBar(this); + _walletBar.data()->onSaveFormData(key, url); + qobject_cast(layout())->insertWidget(0, _walletBar.data() ); - connect(walletBar, SIGNAL(saveFormDataAccepted(const QString &)), + connect(_walletBar.data(), SIGNAL(saveFormDataAccepted(const QString &)), wallet, SLOT(acceptSaveFormDataRequest(const QString &))); - connect(walletBar, SIGNAL(saveFormDataRejected(const QString &)), + connect(_walletBar.data(), SIGNAL(saveFormDataRejected(const QString &)), wallet, SLOT(rejectSaveFormDataRequest(const QString &))); } void WebTab::createPreviewSelectorBar(int index) { - PreviewSelectorBar *bar = new PreviewSelectorBar(index, this); - qobject_cast(layout())->insertWidget(0, bar); + if(!_previewSelectorBar.isNull()) + { + _previewSelectorBar.clear(); + } + _previewSelectorBar = new PreviewSelectorBar(index, this); + qobject_cast(layout())->insertWidget(0, _previewSelectorBar.data()); - connect(page(), SIGNAL(loadStarted()), bar, SLOT(loadProgress())); - connect(page(), SIGNAL(loadProgress(int)), bar, SLOT(loadProgress())); - connect(page(), SIGNAL(loadFinished(bool)), bar, SLOT(loadFinished())); - connect(page()->mainFrame(), SIGNAL(urlChanged(QUrl)), bar, SLOT(verifyUrl())); + connect(page(), SIGNAL(loadStarted()), _previewSelectorBar.data(), SLOT(loadProgress())); + connect(page(), SIGNAL(loadProgress(int)), _previewSelectorBar.data(), SLOT(loadProgress())); + connect(page(), SIGNAL(loadFinished(bool)), _previewSelectorBar.data(), SLOT(loadFinished())); + connect(page()->mainFrame(), SIGNAL(urlChanged(QUrl)), _previewSelectorBar.data(), SLOT(verifyUrl())); } -- cgit v1.2.1