[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/libs/plasma/widgets
From: Laurent Montel <montel () kde ! org>
Date: 2008-09-21 9:30:23
Message-ID: 1221989423.619180.25979.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 863136 by mlaurent:
Don't leak QPixmap
M +14 -15 pushbutton.cpp
--- trunk/KDE/kdebase/workspace/libs/plasma/widgets/pushbutton.cpp #863135:863136
@@ -262,7 +262,7 @@
return;
}
- QPixmap *bufferPixmap = 0;
+ QPixmap bufferPixmap;
//Normal button, pressed or not
if (isEnabled()) {
@@ -274,15 +274,15 @@
d->background->paintPanel(painter);
//flat or disabled
} else if (!isEnabled() || nativeWidget()->isFlat()) {
- bufferPixmap = new QPixmap(rect().size().toSize());
- bufferPixmap->fill(Qt::transparent);
+ bufferPixmap = QPixmap(rect().size().toSize());
+ bufferPixmap.fill(Qt::transparent);
- QPainter buffPainter(bufferPixmap);
+ QPainter buffPainter(&bufferPixmap);
d->background->paintPanel(&buffPainter);
buffPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
- buffPainter.fillRect(bufferPixmap->rect(), QColor(0,0,0,128));
+ buffPainter.fillRect(bufferPixmap.rect(), QColor(0,0,0,128));
- painter->drawPixmap( 0, 0, *bufferPixmap);
+ painter->drawPixmap( 0, 0, bufferPixmap);
}
//if is under mouse draw the animated glow overlay
@@ -331,13 +331,12 @@
//if there is not enough room for the text make it to fade out
QFontMetricsF fm(QApplication::font());
if (rect.width() < fm.width(nativeWidget()->text())) {
- if (!bufferPixmap) {
- bufferPixmap = new QPixmap(rect.size().toSize());
+ if (bufferPixmap.isNull()) {
+ bufferPixmap = QPixmap(rect.size().toSize());
}
+ bufferPixmap.fill(Qt::transparent);
- bufferPixmap->fill(Qt::transparent);
-
- QPainter p(bufferPixmap);
+ QPainter p(&bufferPixmap);
p.setPen(painter->pen());
// Create the alpha gradient for the fade out effect
@@ -346,17 +345,17 @@
if (option->direction == Qt::LeftToRight) {
alphaGradient.setColorAt(0, QColor(0, 0, 0, 255));
alphaGradient.setColorAt(1, QColor(0, 0, 0, 0));
- p.drawText(bufferPixmap->rect(), Qt::AlignLeft|Qt::AlignVCenter, nativeWidget()->text() );
+ p.drawText(bufferPixmap.rect(), Qt::AlignLeft|Qt::AlignVCenter, nativeWidget()->text() );
} else {
alphaGradient.setColorAt(0, QColor(0, 0, 0, 0));
alphaGradient.setColorAt(1, QColor(0, 0, 0, 255));
- p.drawText(bufferPixmap->rect(), Qt::AlignRight|Qt::AlignVCenter, nativeWidget()->text() );
+ p.drawText(bufferPixmap.rect(), Qt::AlignRight|Qt::AlignVCenter, nativeWidget()->text() );
}
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
- p.fillRect(bufferPixmap->rect(), alphaGradient);
+ p.fillRect(bufferPixmap.rect(), alphaGradient);
- painter->drawPixmap(rect.topLeft(), *bufferPixmap);
+ painter->drawPixmap(rect.topLeft(), bufferPixmap);
} else {
painter->drawText(rect, Qt::AlignCenter, nativeWidget()->text() );
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic