[QGIS Commit] r10885 - in trunk/qgis: python/core src/core src/providers/wms

svn_qgis at osgeo.org svn_qgis at osgeo.org
Fri Jun 5 09:13:46 EDT 2009


Author: mhugent
Date: 2009-06-05 09:13:45 -0400 (Fri, 05 Jun 2009)
New Revision: 10885

Modified:
   trunk/qgis/python/core/qgsrasterdataprovider.sip
   trunk/qgis/src/core/qgsrasterdataprovider.cpp
   trunk/qgis/src/core/qgsrasterdataprovider.h
   trunk/qgis/src/providers/wms/qgswmsprovider.cpp
Log:
Use a DPI parameter in the WMS request. This allows printing with QGIS from QGIS mapserver (and is ignored by the other WMS servers)

Modified: trunk/qgis/python/core/qgsrasterdataprovider.sip
===================================================================
--- trunk/qgis/python/core/qgsrasterdataprovider.sip	2009-06-05 11:24:14 UTC (rev 10884)
+++ trunk/qgis/python/core/qgsrasterdataprovider.sip	2009-06-05 13:13:45 UTC (rev 10885)
@@ -120,7 +120,15 @@
      */
     virtual QString lastError() = 0;
 
+      /**Returns the dpi of the output device.
+      @note: this method was added in version 1.2*/
+    int dpi();
 
+    /**Sets the output device resolution.
+      @note: this method was added in version 1.2*/
+    void setDpi(int dpi);
+
+
 protected:
 
 };

Modified: trunk/qgis/src/core/qgsrasterdataprovider.cpp
===================================================================
--- trunk/qgis/src/core/qgsrasterdataprovider.cpp	2009-06-05 11:24:14 UTC (rev 10884)
+++ trunk/qgis/src/core/qgsrasterdataprovider.cpp	2009-06-05 13:13:45 UTC (rev 10885)
@@ -19,13 +19,13 @@
 #include "qgsrasterdataprovider.h"
 #include "qgslogger.h"
 
-QgsRasterDataProvider::QgsRasterDataProvider()
+QgsRasterDataProvider::QgsRasterDataProvider(): mDpi(-1)
 {
 }
 
 
 QgsRasterDataProvider::QgsRasterDataProvider( QString const & uri )
-    : QgsDataProvider( uri )
+    : QgsDataProvider( uri ), mDpi(-1)
 {
 }
 

Modified: trunk/qgis/src/core/qgsrasterdataprovider.h
===================================================================
--- trunk/qgis/src/core/qgsrasterdataprovider.h	2009-06-05 11:24:14 UTC (rev 10884)
+++ trunk/qgis/src/core/qgsrasterdataprovider.h	2009-06-05 13:13:45 UTC (rev 10885)
@@ -152,8 +152,20 @@
      */
     virtual QString lastError() = 0;
 
+    /**Returns the dpi of the output device.
+      @note: this method was added in version 1.2*/
+    int dpi() const {return mDpi;}
 
+    /**Sets the output device resolution.
+      @note: this method was added in version 1.2*/
+    void setDpi(int dpi){mDpi = dpi;}
+
+
   protected:
+    /**Dots per intch. Extended WMS (e.g. QGIS mapserver) support DPI dependent output and therefore
+  are suited for printing. A value of -1 means it has not been set
+  @note: this member has been added in version 1.2*/
+    int mDpi;
 
 };
 

Modified: trunk/qgis/src/providers/wms/qgswmsprovider.cpp
===================================================================
--- trunk/qgis/src/providers/wms/qgswmsprovider.cpp	2009-06-05 11:24:14 UTC (rev 10884)
+++ trunk/qgis/src/providers/wms/qgswmsprovider.cpp	2009-06-05 13:13:45 UTC (rev 10885)
@@ -454,6 +454,12 @@
   url += "&";
   url += "FORMAT=" + imageMimeType;
 
+  //DPI parameter is accepted by QGIS mapserver (and ignored by the other WMS servers)
+  if(mDpi != -1)
+  {
+    url += "&DPI=" + QString::number(mDpi);
+  }
+
   //MH: jpeg does not support transparency and some servers complain if jpg and transparent=true
   if ( !imageMimeType.contains( "jpeg", Qt::CaseInsensitive ) && !imageMimeType.contains( "jpg", Qt::CaseInsensitive ) )
   {



More information about the QGIS-commit mailing list