[QGIS Commit] r14372 - trunk/qgis/src/core/raster
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Wed Oct 13 15:37:35 EDT 2010
Author: timlinux
Date: 2010-10-13 12:37:34 -0700 (Wed, 13 Oct 2010)
New Revision: 14372
Modified:
trunk/qgis/src/core/raster/qgsrasterlayer.cpp
trunk/qgis/src/core/raster/qgsrasterlayer.h
Log:
Added option to generate thumbnail using qimage rather than qpixmap
Modified: trunk/qgis/src/core/raster/qgsrasterlayer.cpp
===================================================================
--- trunk/qgis/src/core/raster/qgsrasterlayer.cpp 2010-10-13 19:18:53 UTC (rev 14371)
+++ trunk/qgis/src/core/raster/qgsrasterlayer.cpp 2010-10-13 19:37:34 UTC (rev 14372)
@@ -3680,6 +3680,39 @@
}
+void QgsRasterLayer::thumbnailAsImage( QImage * thepImage )
+{
+ //TODO: This should be depreciated and a new function written that just returns a new QImage, it will be safer
+ if ( 0 == thepImage ) { return; }
+
+ thepImage->fill(Qt::white); //defaults to white
+
+ // Raster providers are disabled (for the moment)
+ if ( mProviderKey.isEmpty() )
+ {
+ QgsRasterViewPort *myRasterViewPort = new QgsRasterViewPort();
+ myRasterViewPort->rectXOffset = 0;
+ myRasterViewPort->rectYOffset = 0;
+ myRasterViewPort->clippedXMin = 0;
+ myRasterViewPort->clippedXMax = mWidth;
+ myRasterViewPort->clippedYMin = mHeight;
+ myRasterViewPort->clippedYMax = 0;
+ myRasterViewPort->clippedWidth = mWidth;
+ myRasterViewPort->clippedHeight = mHeight;
+ myRasterViewPort->topLeftPoint = QgsPoint( 0, 0 );
+ myRasterViewPort->bottomRightPoint = QgsPoint( thepImage->width(), thepImage->height() );
+ myRasterViewPort->drawableAreaXDim = thepImage->width();
+ myRasterViewPort->drawableAreaYDim = thepImage->height();
+
+ QPainter * myQPainter = new QPainter( thepImage );
+ draw( myQPainter, myRasterViewPort );
+ delete myRasterViewPort;
+ myQPainter->end();
+ delete myQPainter;
+ }
+
+}
+
void QgsRasterLayer::triggerRepaint()
{
emit repaintRequested();
Modified: trunk/qgis/src/core/raster/qgsrasterlayer.h
===================================================================
--- trunk/qgis/src/core/raster/qgsrasterlayer.h 2010-10-13 19:18:53 UTC (rev 14371)
+++ trunk/qgis/src/core/raster/qgsrasterlayer.h 2010-10-13 19:37:34 UTC (rev 14372)
@@ -619,6 +619,10 @@
/** \brief Draws a thumbnail of the rasterlayer into the supplied pixmap pointer */
void thumbnailAsPixmap( QPixmap * theQPixmap );
+ /** \brief Draws a thumbnail of the rasterlayer into the supplied QImage pointer
+ * @note added in QGIS 1.6
+ * */
+ void thumbnailAsImage( QImage * thepImage );
/** \brief Emit a signal asking for a repaint. (inherited from maplayer) */
void triggerRepaint();
More information about the QGIS-commit
mailing list