[QGIS Commit] r12993 - trunk/qgis/src/plugins/wfs

svn_qgis at osgeo.org svn_qgis at osgeo.org
Wed Mar 3 07:52:30 EST 2010


Author: mhugent
Date: 2010-03-03 07:52:29 -0500 (Wed, 03 Mar 2010)
New Revision: 12993

Modified:
   trunk/qgis/src/plugins/wfs/qgswfssourceselect.cpp
   trunk/qgis/src/plugins/wfs/qgswfssourceselectbase.ui
Log:
BBOX option for wfs

Modified: trunk/qgis/src/plugins/wfs/qgswfssourceselect.cpp
===================================================================
--- trunk/qgis/src/plugins/wfs/qgswfssourceselect.cpp	2010-03-02 20:54:28 UTC (rev 12992)
+++ trunk/qgis/src/plugins/wfs/qgswfssourceselect.cpp	2010-03-03 12:52:29 UTC (rev 12993)
@@ -24,6 +24,7 @@
 #include "qgsproject.h"
 #include "qgscoordinatereferencesystem.h"
 #include "qgslogger.h"
+#include "qgsmapcanvas.h" //for current view extent
 #include <QDomDocument>
 #include <QListWidgetItem>
 #include <QMessageBox>
@@ -366,7 +367,15 @@
   //add a wfs layer to the map
   if ( mIface )
   {
-    mIface->addVectorLayer( uri + "SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=" + typeName + crsString, typeName, "WFS" );
+    //get current extent
+    QgsMapCanvas* canvas = mIface->mapCanvas();
+    QString bBoxString;
+    if ( canvas && mBboxCheckBox->isChecked() )
+    {
+      QgsRectangle currentExtent = canvas->extent();
+      bBoxString = QString( "&BBOX=%1,%2,%3,%4" ).arg( currentExtent.xMinimum() ).arg( currentExtent.yMinimum() ).arg( currentExtent.xMaximum() ).arg( currentExtent.yMaximum() );
+    }
+    mIface->addVectorLayer( uri + "SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=" + typeName + crsString + bBoxString, typeName, "WFS" );
   }
   accept();
 }

Modified: trunk/qgis/src/plugins/wfs/qgswfssourceselectbase.ui
===================================================================
--- trunk/qgis/src/plugins/wfs/qgswfssourceselectbase.ui	2010-03-02 20:54:28 UTC (rev 12992)
+++ trunk/qgis/src/plugins/wfs/qgswfssourceselectbase.ui	2010-03-03 12:52:29 UTC (rev 12993)
@@ -7,19 +7,84 @@
     <x>0</x>
     <y>0</y>
     <width>577</width>
-    <height>444</height>
+    <height>503</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Add WFS Layer from a Server</string>
   </property>
-  <layout class="QGridLayout">
-   <property name="margin">
-    <number>9</number>
-   </property>
-   <property name="spacing">
-    <number>6</number>
-   </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
+    <widget class="QGroupBox" name="GroupBox1">
+     <property name="title">
+      <string>Server connections</string>
+     </property>
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="1" column="1">
+       <widget class="QPushButton" name="btnNew">
+        <property name="text">
+         <string>&amp;New</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3">
+       <widget class="QPushButton" name="btnDelete">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="text">
+         <string>Delete</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2">
+       <widget class="QPushButton" name="btnEdit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="text">
+         <string>Edit</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="4">
+       <spacer>
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeType">
+         <enum>QSizePolicy::Expanding</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>171</width>
+          <height>30</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="1" column="0">
+       <widget class="QPushButton" name="btnConnect">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="text">
+         <string>C&amp;onnect</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" colspan="5">
+       <widget class="QComboBox" name="cmbConnections"/>
+      </item>
+     </layout>
+    </widget>
+   </item>
    <item row="1" column="0">
     <widget class="QTreeWidget" name="treeWidget">
      <property name="columnCount">
@@ -90,78 +155,14 @@
      </layout>
     </widget>
    </item>
-   <item row="0" column="0">
-    <widget class="QGroupBox" name="GroupBox1">
-     <property name="title">
-      <string>Server connections</string>
+   <item row="3" column="0">
+    <widget class="QCheckBox" name="mBboxCheckBox">
+     <property name="text">
+      <string>Only request features overlapping the current view extent</string>
      </property>
-     <layout class="QGridLayout">
-      <property name="margin">
-       <number>9</number>
-      </property>
-      <property name="spacing">
-       <number>6</number>
-      </property>
-      <item row="1" column="1">
-       <widget class="QPushButton" name="btnNew">
-        <property name="text">
-         <string>&amp;New</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3">
-       <widget class="QPushButton" name="btnDelete">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>Delete</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="2">
-       <widget class="QPushButton" name="btnEdit">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>Edit</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="4">
-       <spacer>
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeType">
-         <enum>QSizePolicy::Expanding</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>171</width>
-          <height>30</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="1" column="0">
-       <widget class="QPushButton" name="btnConnect">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>C&amp;onnect</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" colspan="5">
-       <widget class="QComboBox" name="cmbConnections"/>
-      </item>
-     </layout>
     </widget>
    </item>
-   <item row="3" column="0">
+   <item row="4" column="0">
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>



More information about the QGIS-commit mailing list