[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegraphics/ksnapshot
From: Pau Garcia i Quiles <pgquiles () elpauer ! org>
Date: 2010-10-26 12:57:03
Message-ID: 20101026125703.4CB21AC897 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1189942 by pgquiles:
Save memory: make the temporary QPixmap the size of the selection's rect instead of \
the size of the desktop
M +9 -4 freeregiongrabber.cpp
--- trunk/KDE/kdegraphics/ksnapshot/freeregiongrabber.cpp #1189941:1189942
@@ -26,6 +26,7 @@
#include <QToolTip>
#include <klocale.h>
#include <KWindowSystem>
+#include <QRgb>
FreeRegionGrabber::FreeRegionGrabber( ) :
QWidget( 0, Qt::X11BypassWindowManagerHint | Qt::WindowStaysOnTopHint | \
Qt::FramelessWindowHint | Qt::Tool ), @@ -283,17 +284,21 @@
{
grabbing = true;
- QPixmap pixmap2(pixmap.size());
+ int xOffset = pixmap.rect().x() - pol.boundingRect().x();
+ int yOffset = pixmap.rect().y() - pol.boundingRect().y();
+ QPolygon translatedPol = pol.translated(xOffset, yOffset);
+
+ QPixmap pixmap2(pol.boundingRect().size());
pixmap2.fill(Qt::transparent);
QPainter pt;
pt.begin(&pixmap2);
pt.setCompositionMode(QPainter::CompositionMode_Source);
- pt.setClipRegion(QRegion(pol));
- pt.drawPixmap(pixmap.rect(), pixmap);
+ pt.setClipRegion(QRegion(translatedPol));
+ pt.drawPixmap(pixmap2.rect(), pixmap, pol.boundingRect());
pt.end();
- emit freeRegionGrabbed(pixmap2.copy(pol.boundingRect()));
+ emit freeRegionGrabbed(pixmap2);
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic