[QGIS Commit] r14393 - trunk/qgis/src/app

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sun Oct 17 20:12:04 EDT 2010


Author: jef
Date: 2010-10-17 17:12:03 -0700 (Sun, 17 Oct 2010)
New Revision: 14393

Modified:
   trunk/qgis/src/app/qgisapp.cpp
   trunk/qgis/src/app/qgsquerybuilder.cpp
   trunk/qgis/src/app/qgsvectorlayerproperties.cpp
Log:
disable query change while editing

Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp	2010-10-18 00:05:19 UTC (rev 14392)
+++ trunk/qgis/src/app/qgisapp.cpp	2010-10-18 00:12:03 UTC (rev 14393)
@@ -5867,7 +5867,7 @@
   if ( layer->type() == QgsMapLayer::VectorLayer )
   {
     QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer *>( layer );
-    const QgsVectorDataProvider* dprovider = vlayer->dataProvider();
+    QgsVectorDataProvider* dprovider = vlayer->dataProvider();
     bool layerHasSelection = vlayer->selectedFeatureCount() != 0;
 
     mActionSelect->setEnabled( true );
@@ -5881,7 +5881,6 @@
     mActionLayerSaveAs->setEnabled( true );
     mActionLayerSelectionSaveAs->setEnabled( true );
     mActionCopyFeatures->setEnabled( layerHasSelection );
-    mActionLayerSubsetString->setEnabled( true );
 
     if ( !vlayer->isEditable() && mMapCanvas->mapTool() && mMapCanvas->mapTool()->isEditTool() )
     {
@@ -5890,6 +5889,8 @@
 
     if ( dprovider )
     {
+      mActionLayerSubsetString->setEnabled( dprovider->supportsSubsetString() && !vlayer->isEditable() );
+
       //start editing/stop editing
       if ( dprovider->capabilities() & QgsVectorDataProvider::EditingCapabilities )
       {
@@ -6088,6 +6089,8 @@
       }
       return;
     }
+
+    mActionLayerSubsetString->setEnabled( false );
   }
   /*************Raster layers*************/
   else if ( layer->type() == QgsMapLayer::RasterLayer )

Modified: trunk/qgis/src/app/qgsquerybuilder.cpp
===================================================================
--- trunk/qgis/src/app/qgsquerybuilder.cpp	2010-10-18 00:05:19 UTC (rev 14392)
+++ trunk/qgis/src/app/qgsquerybuilder.cpp	2010-10-18 00:12:03 UTC (rev 14393)
@@ -284,6 +284,7 @@
 void QgsQueryBuilder::clear()
 {
   txtSQL->clear();
+  mLayer->setSubsetString( "" );
 }
 
 void QgsQueryBuilder::on_btnILike_clicked()

Modified: trunk/qgis/src/app/qgsvectorlayerproperties.cpp
===================================================================
--- trunk/qgis/src/app/qgsvectorlayerproperties.cpp	2010-10-18 00:05:19 UTC (rev 14392)
+++ trunk/qgis/src/app/qgsvectorlayerproperties.cpp	2010-10-18 00:12:03 UTC (rev 14393)
@@ -289,6 +289,12 @@
 void QgsVectorLayerProperties::toggleEditing()
 {
   emit toggleEditing( layer );
+
+  pbnQueryBuilder->setEnabled( layer && layer->dataProvider() && layer->dataProvider()->supportsSubsetString() && !layer->isEditable() );
+  if ( layer->isEditable() )
+  {
+    pbnQueryBuilder->setToolTip( tr( "Stop editing mode to enable this." ) );
+  }
 }
 
 void QgsVectorLayerProperties::attributeAdded( int idx )
@@ -462,7 +468,11 @@
   // on the builder. If the ability to enter a query directly into the box is required,
   // a mechanism to check it must be implemented.
   txtSubsetSQL->setEnabled( false );
-  pbnQueryBuilder->setEnabled( layer && layer->dataProvider() && layer->dataProvider()->supportsSubsetString() );
+  pbnQueryBuilder->setEnabled( layer && layer->dataProvider() && layer->dataProvider()->supportsSubsetString() && !layer->isEditable() );
+  if ( layer->isEditable() )
+  {
+    pbnQueryBuilder->setToolTip( tr( "Stop editing mode to enable this." ) );
+  }
 
   //get field list for display field combo
   const QgsFieldMap& myFields = layer->pendingFields();



More information about the QGIS-commit mailing list