[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