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

svn_qgis at osgeo.org svn_qgis at osgeo.org
Thu Oct 22 08:24:36 EDT 2009


Author: wonder
Date: 2009-10-22 08:24:36 -0400 (Thu, 22 Oct 2009)
New Revision: 11828

Modified:
   trunk/qgis/src/app/qgsfieldcalculator.cpp
   trunk/qgis/src/app/qgsvectorlayerproperties.cpp
Log:
Allow field calculator also for layers where adding new fields is not possible (user will have to use one of the existing fields)


Modified: trunk/qgis/src/app/qgsfieldcalculator.cpp
===================================================================
--- trunk/qgis/src/app/qgsfieldcalculator.cpp	2009-10-22 11:34:42 UTC (rev 11827)
+++ trunk/qgis/src/app/qgsfieldcalculator.cpp	2009-10-22 12:24:36 UTC (rev 11828)
@@ -35,6 +35,14 @@
 
   //disable ok button until there is text for output field and expression
   mButtonBox->button( QDialogButtonBox::Ok )->setEnabled( false );
+
+  // disable creation of new fields if not supported by data provider
+  if ( !( vl->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes ) )
+  {
+    mUpdateExistingFieldCheckBox->setEnabled( false ); // must stay checked
+    mNewFieldGroupBox->setEnabled( false );
+    mNewFieldGroupBox->setTitle( mNewFieldGroupBox->title() + tr( " (not supported by provider)" ) );
+  }
 }
 
 QgsFieldCalculator::~QgsFieldCalculator()

Modified: trunk/qgis/src/app/qgsvectorlayerproperties.cpp
===================================================================
--- trunk/qgis/src/app/qgsvectorlayerproperties.cpp	2009-10-22 11:34:42 UTC (rev 11827)
+++ trunk/qgis/src/app/qgsvectorlayerproperties.cpp	2009-10-22 12:24:36 UTC (rev 11828)
@@ -355,7 +355,7 @@
     int cap = layer->dataProvider()->capabilities();
     mAddAttributeButton->setEnabled( cap & QgsVectorDataProvider::AddAttributes );
     mDeleteAttributeButton->setEnabled( cap & QgsVectorDataProvider::DeleteAttributes );
-    mCalculateFieldButton->setEnabled(( cap &  QgsVectorDataProvider::AddAttributes ) && ( cap & QgsVectorDataProvider::ChangeAttributeValues ) );
+    mCalculateFieldButton->setEnabled( cap & QgsVectorDataProvider::ChangeAttributeValues );
     mToggleEditingButton->setChecked( true );
   }
   else



More information about the QGIS-commit mailing list