From 23364c4f7175e87d2b80037ff32dfdcc24c0de85 Mon Sep 17 00:00:00 2001 From: timlinux Date: Sun, 21 Nov 2004 02:11:44 +0000 Subject: [PATCH] You can now view and alter the pg layer subset query from the vector layer properties dialog. Currently only by using the texteditor....I will hook up the pg query builder tomorrow for the truly shiftless and lazy among us :-P git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@2301 c8812cc2-4d05-0410-92ff-de0c093fc19c --- src/qgsdlgvectorlayerproperties.cpp | 40 ++++++++++++++++++++++++ src/qgsdlgvectorlayerproperties.h | 6 ++-- src/qgsdlgvectorlayerpropertiesbase.ui | 19 +++++++++-- src/qgsdlgvectorlayerpropertiesbase.ui.h | 6 ++++ 4 files changed, 65 insertions(+), 6 deletions(-) diff --git a/src/qgsdlgvectorlayerproperties.cpp b/src/qgsdlgvectorlayerproperties.cpp index 782b73224c9..fc7c1e1a0fb 100644 --- a/src/qgsdlgvectorlayerproperties.cpp +++ b/src/qgsdlgvectorlayerproperties.cpp @@ -18,6 +18,7 @@ /* $Id$ */ #include #include +#include #include #include #include @@ -30,12 +31,15 @@ #include #include #include +#include + #include "qgis.h" #include "qgsrect.h" #include "qgsfield.h" #include "qgsdlgvectorlayerproperties.h" #include "qgsvectordataprovider.h" +#include "../providers/postgres/qgspostgresprovider.h" #include "qgsvectorlayer.h" #include "qgssinglesymrenderer.h" #include "qgsgraduatedmarenderer.h" @@ -64,6 +68,8 @@ QgsDlgVectorLayerProperties::QgsDlgVectorLayerProperties(QgsVectorLayer * lyr, Q bufferRenderer(layer-> renderer()) { + + // populate the general information QString source = layer->source(); source = source.left(source.find("password")); @@ -72,6 +78,20 @@ bufferRenderer(layer-> // display type and feature count lblGeometryType->setText(QGis::qgisVectorGeometryType[layer->vectorType()]); QgsVectorDataProvider *dp = dynamic_cast(layer->getDataProvider()); + //see if we are dealing with a pg layer here so that we can enable the sql box + if(lyr->providerType() == "postgres") + { + grpSubset->setEnabled(true); + QgsPostgresProvider * myPGProvider = (QgsPostgresProvider *) dp; + txtSubsetSQL->setText(myPGProvider->subsetString()); + txtSubsetSQL->setEnabled(true); + pbnQueryBuilder->setEnabled(true); + } + else + { + // disable sql subset group box + grpSubset->setEnabled(false); + } QString numFeatures; numFeatures = numFeatures.setNum(dp->featureCount()); lblFeatureCount->setText(numFeatures); @@ -274,7 +294,22 @@ void QgsDlgVectorLayerProperties::pbnOK_clicked() } void QgsDlgVectorLayerProperties::pbnApply_clicked() { + // + // Set up sql subset query if applicable + // + QgsVectorDataProvider *dp = dynamic_cast(layer->getDataProvider()); + //see if we are dealing with a pg layer here + if(layer->providerType() == "postgres") + { + grpSubset->setEnabled(true); + QgsPostgresProvider * myPGProvider = (QgsPostgresProvider *) dp; + myPGProvider->setSubsetString(txtSubsetSQL->text()); + } + else + { + //do nothing + } // set up the scale based layer visibility stuff.... layer->setScaleBasedVisibility(chkUseScaleDependentRendering->isChecked()); layer->setMinScale(spinMinimumScale->value()); @@ -333,3 +368,8 @@ void QgsDlgVectorLayerProperties::pbnApply_clicked() rendererDirty = false; } + +void QgsDlgVectorLayerProperties::pbnQueryBuilder_clicked() +{ + +} \ No newline at end of file diff --git a/src/qgsdlgvectorlayerproperties.h b/src/qgsdlgvectorlayerproperties.h index b607214fb47..6a22a35e157 100644 --- a/src/qgsdlgvectorlayerproperties.h +++ b/src/qgsdlgvectorlayerproperties.h @@ -68,8 +68,8 @@ class QgsDlgVectorLayerProperties : public QgsDlgVectorLayerPropertiesBase{ void pbnOK_clicked(); void pbnApply_clicked(); void btnHelp_clicked(); - - + void pbnQueryBuilder_clicked(); + protected: QgsVectorLayer *layer; @@ -89,7 +89,7 @@ class QgsDlgVectorLayerProperties : public QgsDlgVectorLayerPropertiesBase{ inline void QgsDlgVectorLayerProperties::setBufferDialog(QDialog* dialog) { - bufferDialog=dialog; + bufferDialog=dialog; } inline QPixmap* QgsDlgVectorLayerProperties::getBufferPixmap() diff --git a/src/qgsdlgvectorlayerpropertiesbase.ui b/src/qgsdlgvectorlayerpropertiesbase.ui index 565f4c22a51..9aa92f15e29 100644 --- a/src/qgsdlgvectorlayerpropertiesbase.ui +++ b/src/qgsdlgvectorlayerpropertiesbase.ui @@ -316,7 +316,10 @@ - groupBox31 + grpSubset + + + false Subset: @@ -327,12 +330,15 @@ - textEdit5 + txtSubsetSQL + + + false - pushButton84 + pbnQueryBuilder Query Builder @@ -645,6 +651,12 @@ QgsDlgVectorLayerPropertiesBase pbnCancel_pressed() + + pbnQueryBuilder + clicked() + QgsDlgVectorLayerPropertiesBase + pbnQueryBuilder_clicked() + qgsdlgvectorlayerpropertiesbase.ui.h @@ -655,6 +667,7 @@ pbnApply_clicked() btnHelp_clicked() pbnCancel_pressed() + pbnQueryBuilder_clicked() diff --git a/src/qgsdlgvectorlayerpropertiesbase.ui.h b/src/qgsdlgvectorlayerpropertiesbase.ui.h index b991ace948c..58378413acd 100644 --- a/src/qgsdlgvectorlayerpropertiesbase.ui.h +++ b/src/qgsdlgvectorlayerpropertiesbase.ui.h @@ -36,3 +36,9 @@ void QgsDlgVectorLayerPropertiesBase::pbnCancel_pressed() { } + + +void QgsDlgVectorLayerPropertiesBase::pbnQueryBuilder_clicked() +{ + +}