catch some m_item nullptr accesses

BUG: 318941
FIXED-IN: 4.10.3
REVIEW: 110254
(cherry picked from commit b9d96009681cb90b822d9e98f4aa7e050e323a0a)
This commit is contained in:
Thomas Lübking 2013-05-01 13:25:59 +02:00
parent cc5d553d65
commit 42aed44e99

View file

@ -245,8 +245,10 @@ AuroraeClient::AuroraeClient(KDecorationBridge *bridge, KDecorationFactory *fact
AuroraeClient::~AuroraeClient()
{
m_item->setParent(NULL);
m_item->deleteLater();
if (m_item) {
m_item->setParent(NULL);
m_item->deleteLater();
}
m_scene->setParent(NULL);
m_scene->deleteLater();
m_view->setParent(NULL);
@ -279,7 +281,8 @@ void AuroraeClient::init()
QPalette pal2 = widget()->palette();
pal2.setColor(widget()->backgroundRole(), Qt::transparent);
widget()->setPalette(pal2);
m_scene->addItem(m_item);
if (m_item)
m_scene->addItem(m_item);
slotAlphaChanged();
AuroraeFactory::instance()->theme()->setCompositingActive(compositingActive());
@ -520,10 +523,12 @@ void AuroraeClient::themeChanged()
{
m_scene->clear();
m_item = AuroraeFactory::instance()->createQmlDecoration(this);
if (m_item) {
m_item->setWidth(m_scene->sceneRect().width());
m_item->setHeight(m_scene->sceneRect().height());
if (!m_item) {
return;
}
m_item->setWidth(m_scene->sceneRect().width());
m_item->setHeight(m_scene->sceneRect().height());
m_scene->addItem(m_item);
connect(m_item, SIGNAL(alphaChanged()), SLOT(slotAlphaChanged()));
slotAlphaChanged();
@ -580,6 +585,10 @@ QVariant AuroraeClient::readConfig(const QString &key, const QVariant &defaultVa
void AuroraeClient::slotAlphaChanged()
{
if (!m_item) {
setAlphaEnabled(false);
return;
}
QVariant alphaProperty = m_item->property("alpha");
if (alphaProperty.isValid() && alphaProperty.canConvert<bool>()) {
setAlphaEnabled(alphaProperty.toBool());