[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/base/konq-plugins/adblock
From: Maks Orlovich <maksim () kde ! org>
Date: 2010-10-12 15:50:09
Message-ID: 20101012155009.E01CDAC894 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1185208 by orlovich:
Fix the regression due to the 'don't forget to delete the label' fix --- the label \
may also get deleted before us in the window.close case, so guard against that.
This cleanup order thing sure is messy (and not just here, also with view vs. part, \
etc.) :(
CCBUG: 234624
CCBUG: 253921
M +15 -13 adblock.cpp
M +2 -1 adblock.h
--- trunk/extragear/base/konq-plugins/adblock/adblock.cpp #1185207:1185208
@@ -60,7 +60,7 @@
AdBlock::AdBlock(QObject *parent, const QVariantList & /*args*/) :
Plugin(parent),
- m_label(0), m_menu(0), m_elements(0)
+ m_menu(0), m_elements(0)
{
m_part = dynamic_cast<KHTMLPart *>(parent);
if(!m_part)
@@ -104,10 +104,10 @@
{
KParts::StatusBarExtension *statusBarEx = \
KParts::StatusBarExtension::childObject(m_part);
- if (statusBarEx)
- statusBarEx->removeStatusBarItem(m_label);
- delete m_label;
- m_label = 0;
+ if (statusBarEx && m_label)
+ statusBarEx->removeStatusBarItem(m_label.data());
+ delete m_label.data();
+ m_label.clear();
delete m_menu;
m_menu = 0;
delete m_elements;
@@ -125,18 +125,20 @@
return;
}
- m_label = new KUrlLabel(statusBarEx->statusBar());
+ KUrlLabel* label = new KUrlLabel(statusBarEx->statusBar());
KIconLoader *loader = KIconLoader::global();
- m_label->setFixedHeight(loader->currentSize(KIconLoader::Small));
- m_label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
- m_label->setUseCursor(false);
- m_label->setPixmap(loader->loadIcon("preferences-web-browser-adblock", \
KIconLoader::Small)); + \
label->setFixedHeight(loader->currentSize(KIconLoader::Small)); + \
label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + \
label->setUseCursor(false); + \
label->setPixmap(loader->loadIcon("preferences-web-browser-adblock", \
KIconLoader::Small));
- statusBarEx->addStatusBarItem(m_label, 0, false);
- connect(m_label, SIGNAL(leftClickedUrl()), this, SLOT(slotConfigure()));
- connect(m_label, SIGNAL(rightClickedUrl()), this, SLOT(contextMenu()));
+ statusBarEx->addStatusBarItem(label, 0, false);
+ connect(label, SIGNAL(leftClickedUrl()), this, SLOT(slotConfigure()));
+ connect(label, SIGNAL(rightClickedUrl()), this, SLOT(contextMenu()));
+
+ m_label = label;
}
--- trunk/extragear/base/konq-plugins/adblock/adblock.h #1185207:1185208
@@ -27,6 +27,7 @@
#include <kparts/plugin.h>
#include <dom/dom_node.h>
#include <kurl.h>
+#include <QWeakPointer>
class KHTMLPart;
class KUrlLabel;
@@ -53,7 +54,7 @@
private:
QPointer<KHTMLPart> m_part;
- KUrlLabel *m_label;
+ QWeakPointer<KUrlLabel> m_label;
KActionMenu *m_menu;
void fillBlockableElements();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic