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
This commit is contained in:
timlinux 2004-11-21 02:11:44 +00:00
parent 4a25956c36
commit 23364c4f71
4 changed files with 65 additions and 6 deletions

View File

@ -18,6 +18,7 @@
/* $Id$ */
#include <qstring.h>
#include <qlineedit.h>
#include <qtextedit.h>
#include <qlabel.h>
#include <qlistview.h>
#include <qcombobox.h>
@ -30,12 +31,15 @@
#include <qwidgetstack.h>
#include <qpushbutton.h>
#include <qwidget.h>
#include <qgroupbox.h>
#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<QgsVectorDataProvider *>(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<QgsVectorDataProvider *>(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()
{
}

View File

@ -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()

View File

@ -316,7 +316,10 @@
</widget>
<widget class="QGroupBox" row="3" column="0" rowspan="1" colspan="4">
<property name="name">
<cstring>groupBox31</cstring>
<cstring>grpSubset</cstring>
</property>
<property name="enabled">
<bool>false</bool>
</property>
<property name="title">
<string>Subset:</string>
@ -327,12 +330,15 @@
</property>
<widget class="QTextEdit" row="0" column="0" rowspan="1" colspan="2">
<property name="name">
<cstring>textEdit5</cstring>
<cstring>txtSubsetSQL</cstring>
</property>
<property name="enabled">
<bool>false</bool>
</property>
</widget>
<widget class="QPushButton" row="1" column="1">
<property name="name">
<cstring>pushButton84</cstring>
<cstring>pbnQueryBuilder</cstring>
</property>
<property name="text">
<string>Query Builder</string>
@ -645,6 +651,12 @@
<receiver>QgsDlgVectorLayerPropertiesBase</receiver>
<slot>pbnCancel_pressed()</slot>
</connection>
<connection>
<sender>pbnQueryBuilder</sender>
<signal>clicked()</signal>
<receiver>QgsDlgVectorLayerPropertiesBase</receiver>
<slot>pbnQueryBuilder_clicked()</slot>
</connection>
</connections>
<includes>
<include location="local" impldecl="in implementation">qgsdlgvectorlayerpropertiesbase.ui.h</include>
@ -655,6 +667,7 @@
<slot>pbnApply_clicked()</slot>
<slot>btnHelp_clicked()</slot>
<slot>pbnCancel_pressed()</slot>
<slot>pbnQueryBuilder_clicked()</slot>
</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>

View File

@ -36,3 +36,9 @@ void QgsDlgVectorLayerPropertiesBase::pbnCancel_pressed()
{
}
void QgsDlgVectorLayerPropertiesBase::pbnQueryBuilder_clicked()
{
}