[QGIS Commit] r15302 - trunk/qgis/src/plugins/spatialquery
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Tue Mar 1 03:00:54 EST 2011
Author: timlinux
Date: 2011-03-01 00:00:54 -0800 (Tue, 01 Mar 2011)
New Revision: 15302
Added:
trunk/qgis/src/plugins/spatialquery/itemscreatelayer.png
trunk/qgis/src/plugins/spatialquery/selectcreatelayer.png
Modified:
trunk/qgis/src/plugins/spatialquery/CMakeLists.txt
trunk/qgis/src/plugins/spatialquery/README
trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.cpp
trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.h
trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.cpp
trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.h
trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.cpp
trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.h
trunk/qgis/src/plugins/spatialquery/qgsrubberselectid.cpp
trunk/qgis/src/plugins/spatialquery/qgsrubberselectid.h
trunk/qgis/src/plugins/spatialquery/qgsspatialquery.cpp
trunk/qgis/src/plugins/spatialquery/qgsspatialquery.h
trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.cpp
trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.h
trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.qrc
trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.ui
trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp
trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.h
trunk/qgis/src/plugins/spatialquery/spatialquery.png
Log:
Applied latest spatialquery_X_full.zip patch from Luiz Motta from #2634. This adds a number of improvements in functionality and usability to the spatial query tool. Muito Obrigado Luiz.
Property changes on: trunk/qgis/src/plugins/spatialquery/CMakeLists.txt
___________________________________________________________________
Added: svn:executable
+ *
Property changes on: trunk/qgis/src/plugins/spatialquery/README
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/qgis/src/plugins/spatialquery/itemscreatelayer.png
===================================================================
--- trunk/qgis/src/plugins/spatialquery/itemscreatelayer.png (rev 0)
+++ trunk/qgis/src/plugins/spatialquery/itemscreatelayer.png 2011-03-01 08:00:54 UTC (rev 15302)
@@ -0,0 +1,10 @@
+PNG
+
+
+IHDR ®9 gAMA ±üa tEXtSoftware www.inkscape.orgî< ×IDATXG½ßn ƴT*Vcü©1KÍÜnv·Û%^ï©öh¾Ù`ÛKéA«&ÄÄR~çûÎáä|>Cø9N¨7ÔÚþy2Ôj:XôðÝþ<æq`
+·Ôöë JcÁÕ<O (åj¾L½V»Ò c¿K}Ücß33g OóµrÌ¡'j{
æ»?Þ»ÇÃuáÜÏÓ;ß[ét«[óEGÎYÂ!e fK«eW{¯_A¾@nÞ@îÞÿÚÏ.íøz»éÆÓmêïµK!ðÆ9àS?so7ÊãT àåñ{Y£¾¯·_¬$0/>ÃhXºû9ÀêkbfÕNïª`I[4ß@¸èìåW?0>
+w)JV£Öª;¡õæòQí¾¹5ÜO
+ÀÓÀ¼÷)#?ÿ6<NS^¥.@Ô5J[ÏóÅ °õ¢´T
+§«×ª@©t -×ÚÓɨµÿ[ ì6é+6ç
ñª
+7EȳÚç5¦Ù E×tÁ8«
+Ð|;í ø/tªÖÍÊçNTÕGâF3XªÞQÚTÂ(r²Aþ§ IEND®B`
\ No newline at end of file
Property changes on: trunk/qgis/src/plugins/spatialquery/itemscreatelayer.png
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.cpp
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.cpp 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.cpp 2011-03-01 08:00:54 UTC (rev 15302)
@@ -15,7 +15,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsgeometrycoordinatetransform.cpp 13377 2010-04-25 01:07:36Z jef $ */
#include "qgsgeometrycoordinatetransform.h"
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.cpp
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.h
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.h 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.h 2011-03-01 08:00:54 UTC (rev 15302)
@@ -15,7 +15,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsgeometrycoordinatetransform.h 13377 2010-04-25 01:07:36Z jef $ */
#ifndef GEOMETRYCOORDINATETRANSFORM_H
#define GEOMETRYCOORDINATETRANSFORM_H
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsgeometrycoordinatetransform.h
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.cpp
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.cpp 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.cpp 2011-03-01 08:00:54 UTC (rev 15302)
@@ -15,7 +15,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsmngprogressbar.cpp 13377 2010-04-25 01:07:36Z jef $ */
#include "qgsmngprogressbar.h"
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.cpp
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.h
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.h 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.h 2011-03-01 08:00:54 UTC (rev 15302)
@@ -15,7 +15,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsmngprogressbar.h 13377 2010-04-25 01:07:36Z jef $ */
#ifndef QGSMNGPROGRESSBAR_H
#define QGSMNGPROGRESSBAR_H
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsmngprogressbar.h
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.cpp
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.cpp 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.cpp 2011-03-01 08:00:54 UTC (rev 15302)
@@ -15,7 +15,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsreaderfeatures.cpp 13377 2010-04-25 01:07:36Z jef $ */
#include <qgsvectordataprovider.h>
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.cpp
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.h
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.h 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.h 2011-03-01 08:00:54 UTC (rev 15302)
@@ -15,7 +15,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsreaderfeatures.h 13377 2010-04-25 01:07:36Z jef $ */
#ifndef READERFEATURES_H
#define READERFEATURES_H
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsreaderfeatures.h
___________________________________________________________________
Added: svn:executable
+ *
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsrubberselectid.cpp
___________________________________________________________________
Added: svn:executable
+ *
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsrubberselectid.h
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialquery.cpp
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialquery.cpp 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialquery.cpp 2011-03-01 08:00:54 UTC (rev 15302)
@@ -19,9 +19,8 @@
#include <QMessageBox>
-#include <qgsvectordataprovider.h>
-#include <qgsfeature.h>
-
+#include "qgsvectordataprovider.h"
+#include "qgsfeature.h"
#include "qgsgeometrycoordinatetransform.h"
#include "qgsspatialquery.h"
Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialquery.h
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialquery.h 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialquery.h 2011-03-01 08:00:54 UTC (rev 15302)
@@ -15,7 +15,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsspatialquery.h 15141 2011-02-08 13:34:43Z jef $ */
#ifndef SPATIALQUERY_H
#define SPATIALQUERY_H
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsspatialquery.h
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.cpp
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.cpp 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.cpp 2011-03-01 08:00:54 UTC (rev 15302)
@@ -26,6 +26,7 @@
#include "qgsmaplayer.h"
#include "qgsmaplayerregistry.h"
#include "qgsproject.h"
+#include "qgsvectordataprovider.h"
#include "qgsspatialquerydialog.h"
#include "qgsspatialquery.h"
@@ -58,49 +59,34 @@
} // QgsSpatialQueryDialog::~QgsSpatialQueryDialog()
-void QgsSpatialQueryDialog::show()
-{
- QDialog::show();
- adjustSize();
-} // void QgsSpatialQueryDialog::show()
-
void QgsSpatialQueryDialog::messageLayersLessTwo()
{
QString msgLayersLessTwo = tr( "The spatial query requires at least two layers" );
QMessageBox::warning( 0, tr( "Insufficient number of layers" ), msgLayersLessTwo, QMessageBox::Ok );
} // void QgsSpatialQueryDialog::messageLayersLessTwo()
-void QgsSpatialQueryDialog::disconnectQGis()
-{
- disconnectAll();
-
-} // void QgsSpatialQueryDialog::disconnectQGis()
-
void QgsSpatialQueryDialog::initGui()
{
mRubberSelectId->setStyle(250, 0, 0, 2); // Same identify
-
- showLogProcessing( false );
- setLayoutResultInvalid( false );
-
- bbMain->button( QDialogButtonBox::Close )->hide();
-
+ visibleResult( false );
+ populateTypeItems();
populateCbTargetLayer();
if ( cbTargetLayer->count() > 1 )
{
setLayer( true, 0 );
- evaluateCheckBox( true );
+ setSelectedGui();
+ evaluateCheckBoxLayer( true );
populateCbReferenceLayer();
setLayer( false, 0 );
- evaluateCheckBox( false );
+ evaluateCheckBoxLayer( false );
populateCbOperation();
}
else
{
- bbMain->setEnabled( false );
- teStatus->append( mMsgLayersLessTwo );
+ bbMain->button( QDialogButtonBox::Apply )->hide();
}
-
+ populateCbResulFor(); // Depend if Target is selected
+ adjustSize();
} // QgsSpatialQueryDialog::initGui()
void QgsSpatialQueryDialog::setLayer( bool isTarget, int index )
@@ -130,7 +116,7 @@
} // void QgsSpatialQueryDialog::setLayer(bool isTarget, int index)
-void QgsSpatialQueryDialog::evaluateCheckBox( bool isTarget )
+void QgsSpatialQueryDialog::evaluateCheckBoxLayer( bool isTarget )
{
QgsVectorLayer* lyr = NULL;
QCheckBox* checkbox = NULL;
@@ -153,28 +139,8 @@
: tr( "Selected geometries" );
checkbox->setText( textCheckBox );
-} // void QgsSpatialQueryDialog::evaluateCheckBox(bool isTarget)
+} // void QgsSpatialQueryDialog::evaluateCheckBoxLayer(bool isTarget)
-void QgsSpatialQueryDialog::evaluateButtonSelected()
-{
- QSet < int > selectedTarget = mLayerTarget->selectedFeaturesIds();
- // pbSelectResultTargetAdd and pbSelectResultTargetRemove => disable
- if( selectedTarget.isEmpty() )
- {
- pbSelectResultTargetAdd->setEnabled( false );
- pbSelectResultTargetRemove->setEnabled( false );
- return;
- }
- // pbSelectResultTargetAdd
- selectedTarget.contains( mFeatureResult ) || mFeatureResult.contains( selectedTarget )
- ? pbSelectResultTargetAdd->setEnabled( false )
- : pbSelectResultTargetAdd->setEnabled( true );
- // pbSelectResultTargetRemove
- selectedTarget.intersect( mFeatureResult ).isEmpty()
- ? pbSelectResultTargetRemove->setEnabled( false )
- : pbSelectResultTargetRemove->setEnabled( true );
-} // void QgsSpatialQueryDialog::evaluateButtonSelected()
-
void QgsSpatialQueryDialog::runQuery()
{
bbMain->setEnabled( false );
@@ -193,68 +159,28 @@
mFeatureInvalidTarget.clear();
mFeatureInvalidReference.clear();
- int currentItem = cbOperantion->currentIndex();
- bool isOk;
- int operation = cbOperantion->itemData( currentItem ).toInt( &isOk );
+ int currentItem = cbOperation->currentIndex();
+ int operation = cbOperation->itemData( currentItem ).toInt();
spatialQuery->runQuery( mFeatureResult, mFeatureInvalidTarget, mFeatureInvalidReference, operation, mLayerTarget, mLayerReference );
delete spatialQuery;
delete pb;
- pgbStatus->setTextVisible( false );
bbMain->setEnabled( true );
- setLayoutOperationVisible( false );
- pgbStatus->hide();
- bbMain->button( QDialogButtonBox::Close )->show();
- bbMain->button( QDialogButtonBox::Cancel )->hide();
- bbMain->button( QDialogButtonBox::Ok )->hide();
} // void QgsSpatialQueryDialog::runQuery()
-void QgsSpatialQueryDialog::setLayoutOperationVisible( bool show )
-{
- grpTargetGroupBox->setVisible( show );
- grpReferenceGroupBox->setVisible( show );
- grpOperationGroupBox->setVisible( show );
-} // void QgsSpatialQueryDialog::setLayoutOperationVisible( bool show )
-
-void QgsSpatialQueryDialog::setLayoutResultInvalid( bool show )
-{
- twResultInvalid->setVisible( show );
- ckbZoomItem->setVisible( show );
- ckbLogProcessing->setVisible( show );
- teStatus->setVisible( false ); // Never show
-} // void QgsSpatialQueryDialog::setLayoutResultInvalid( bool show )
-
-void QgsSpatialQueryDialog::showLogProcessing( bool hasShow )
-{
- static int heightDialogNoStatus = 0;
-
- teStatus->setVisible( hasShow );
- adjustSize();
-
- if ( ! hasShow )
- {
- if ( heightDialogNoStatus == 0 )
- {
- heightDialogNoStatus = geometry().height();
- }
- else
- {
- setGeometry( geometry().x(), geometry().y(),
- geometry().width(), heightDialogNoStatus );
- }
- }
-
-} // void QgsSpatialQueryDialog::showLogProcessing(bool hasShow)
-
void QgsSpatialQueryDialog::showResultQuery( QDateTime *datetimeStart, QDateTime *datetimeEnd )
{
+ static int countQuery = 0;
// Report processing
- QString msg = tr( "Begin at [%L1]" ).arg( datetimeStart->toString() );
+ countQuery++;
+ QString msg = tr( "%1)Query" ).arg( countQuery );
teStatus->append( msg );
+ msg = tr( "Begin at %L1" ).arg( datetimeStart->toString() );
+ teStatus->append( msg );
teStatus->append( "" );
msg = QString( "%1" ).arg( getDescriptionLayerShow( true ) );
teStatus->append( msg );
- msg = tr( "< %1 >" ).arg( cbOperantion->currentText() );
+ msg = tr( "< %1 >" ).arg( cbOperation->currentText() );
teStatus->append( msg );
msg = QString( "%1" ).arg( getDescriptionLayerShow( false ) );
teStatus->append( msg );
@@ -266,100 +192,88 @@
teStatus->append( getDescriptionInvalidFeaturesShow( false ) );
teStatus->append( "" );
double timeProcess = ( double )datetimeStart->secsTo( *datetimeEnd ) / 60.0;
- msg = tr( "Finish at [%L1] (processing time %L2 minutes)" ).arg( datetimeEnd->toString() ).arg( timeProcess, 0, 'f', 2 );
+ msg = tr( "Finish at %L1 (processing time %L2 minutes)" ).arg( datetimeEnd->toString() ).arg( timeProcess, 0, 'f', 2 );
teStatus->append( msg );
+ teStatus->append( "" );
ckbLogProcessing->setChecked( false );
+ QVariant item = QVariant::fromValue( (int)itemsResult );
+ int index = cbTypeItems->findData(item);
+ cbTypeItems->setCurrentIndex( index );
+ on_cbTypeItems_currentIndexChanged( index );
- lbResultTarget->setText( mLayerTarget->name() );
- lbInvalidTarget->setText( mLayerTarget->name() );
- lbInvalidReference->setText( mLayerReference->name() );
-
- QString formatLabel( tr("Feature IDs(%1)"));
- lbFIDresultTarget->setText( formatLabel.arg( mFeatureResult.size() ) );
- lbFIDinvalidTarget->setText( formatLabel.arg( mFeatureInvalidTarget.size() ) );
- lbFIDinvalidReference->setText( formatLabel.arg( mFeatureInvalidReference.size() ) );
-
- setLabelButtonSelected(lbSelected, mLayerTarget, pbSelectedSubsetLayer);
-
// Result target
if ( mFeatureResult.size() > 0 )
{
- populateLwFeature( lwResultFeatureTarget, mFeatureResult );
- evaluateCheckBox( true );
- on_lwResultFeatureTarget_currentItemChanged( lwResultFeatureTarget->currentItem() );
- lwResultFeatureTarget->setEnabled( true );
- // Button
- pbSelectResultTarget->setEnabled( true );
- evaluateButtonSelected();
- ckbZoomItem->setEnabled( true ); // Show first the Result
+ // Select features
+ TypeResultFor typeResultFor = (TypeResultFor) cbResultFor->itemData( cbResultFor->currentIndex() ).toInt();
+ switch( typeResultFor )
+ {
+ case selectedNew:
+ mLayerTarget->setSelectedFeatures( mFeatureResult );
+ break;
+ case selectedAdd:
+ mLayerTarget->setSelectedFeatures( mLayerTarget->selectedFeaturesIds() + mFeatureResult );
+ break;
+ case selectedRemove:
+ mLayerTarget->setSelectedFeatures( mLayerTarget->selectedFeaturesIds() - mFeatureResult);
+ break;
+ default:
+ return;
+ }
}
- else
- {
- pbSelectResultTarget->setEnabled( false );
- pbSelectResultTargetAdd->setEnabled( false );
- pbSelectResultTargetRemove->setEnabled( false );
- clearLwFeature( lwResultFeatureTarget );
- lwResultFeatureTarget->setEnabled( false );
- ckbZoomItem->setEnabled( false );
- }
- // Invalid target
- if ( mFeatureInvalidTarget.size() > 0 )
- {
- pbSelectInvalidTarget->setEnabled( true );
- populateLwFeature( lwInvalidFeatureTarget, mFeatureInvalidTarget );
- lwInvalidFeatureTarget->setEnabled( true );
- }
- else
- {
- pbSelectInvalidTarget->setEnabled( false );
- clearLwFeature( lwInvalidFeatureTarget );
- lwInvalidFeatureTarget->setEnabled( false );
- }
- // Invalid reference
- if ( mFeatureInvalidReference.size() > 0 )
- {
- pbSelectInvalidReference->setEnabled( true );
- populateLwFeature( lwInvalidFeatureReference, mFeatureInvalidReference );
- lwInvalidFeatureReference->setEnabled( true );
- }
- else
- {
- pbSelectInvalidReference->setEnabled( false );
- clearLwFeature( lwInvalidFeatureReference );
- lwInvalidFeatureReference->setEnabled( false );
- }
- setLayoutResultInvalid( true );
- adjustSize();
} // void QgsSpatialQueryDialog::showResultQuery(QDateTime *datetimeStart, QDateTime *datetimeEnd)
-void QgsSpatialQueryDialog::setLabelButtonSelected( QLabel *lb, QgsVectorLayer* lyr, QPushButton *pb)
+QString QgsSpatialQueryDialog::getSubsetFIDs( const QSet< int > *fids, QString fieldFID )
{
- QString formatLabel("%1 of %2 selected features");
- int numSelected = lyr->selectedFeatureCount();
- lb->setText( formatLabel.arg( numSelected ).arg( lyr->featureCount() ) );
- numSelected > 0 ? pb->setEnabled( true ) : pb->setEnabled( false );
-}
-
-QString QgsSpatialQueryDialog::getSubsetSelected( QgsVectorLayer* lyr )
-{
- QSet< int > selected = lyr->selectedFeaturesIds();
- if( selected.size() == 0 )
+ if( fids->size() == 0 )
{
return QString("");
}
- QSetIterator <int>item( selected );
+ QSetIterator <int>item( *fids );
QStringList lstFID;
while ( item.hasNext() )
{
lstFID.append( QString::number( item.next() ) );
}
- QString qFormat("FID in (%1)");
- QString qReturn = qFormat.arg( lstFID.join(",") );
+ QString qFormat("%1 in (%2)");
+ QString qReturn = qFormat.arg( fieldFID ).arg( lstFID.join(",") );
lstFID.clear();
return qReturn;
-} // QString QgsSpatialQueryDialog::getSubsetSelected( QgsVectorLayer* lyr )
+} // QString QgsSpatialQueryDialog::getSubsetFIDs( const QSet< int > *fids, QString fieldFID )
+QgsSpatialQueryDialog::TypeVerifyCreateSubset QgsSpatialQueryDialog::verifyCreateSubset(QString &msg, QString &fieldFID)
+{
+ QString providerType = mLayerTarget->providerType().toUpper();
+ // OGR
+ if( providerType == "OGR")
+ {
+ fieldFID = QString("FID");
+ return verifyOk;
+ }
+ // Database Postgis and Spatialite
+ if( providerType == "POSTGRES" || providerType == "SPATIALITE" )
+ {
+ fieldFID = mLayerTarget->dataProvider()->fields().value( 0 ).name();
+ msg = tr("Using the field \"%1\" for subset").arg( fieldFID );
+ return verifyTry;
+ }
+ msg = tr("Sorry! Only this providers are enable: OGR, POSTGRES and SPATIALITE.");
+ return verifyImpossible;
+} // TypeVerifyCreateSubset QgsSpatialQueryDialog::verifyCreateSubset(QString &msg, QString &fieldFID)
+
+bool QgsSpatialQueryDialog::addLayerSubset( QString name, QString subset )
+{
+ QgsVectorLayer *addLyr = new QgsVectorLayer( mLayerTarget->source(), name, mLayerTarget->providerType() );
+ if( ! addLyr->setSubsetString( subset ) )
+ {
+ delete addLyr;
+ return false;
+ }
+ QgsMapLayerRegistry::instance()->addMapLayer( addLyr );
+ return true;
+} // bool QgsSpatialQueryDialog::addLayerSubset( QString name, QString subset )
+
QString QgsSpatialQueryDialog::getDescriptionLayerShow( bool isTarget )
{
QgsVectorLayer* lyr = NULL;
@@ -549,34 +463,54 @@
{
cmb->setCurrentIndex( 0 );
setLayer( isTarget, 0 );
- evaluateCheckBox( isTarget );
- mRubberSelectId->reset();
- QString lbFID("Feature IDs(0)");
- if ( isTarget )
+ evaluateCheckBoxLayer( isTarget );
+ if (isTarget)
{
- // Result
- clearLwFeature( lwResultFeatureTarget );
- lbFIDresultTarget->setText( lbFID );
- pbSelectResultTarget->setEnabled( false );
- pbSelectResultTargetAdd->setEnabled( false );
- pbSelectResultTargetRemove->setEnabled( false );
- // Invalid
- clearLwFeature( lwInvalidFeatureTarget );
- lbFIDinvalidTarget->setText( lbFID );
- pbSelectInvalidTarget->setEnabled( false );
+ if( gbResultQuery->isVisible() )
+ {
+ visibleResult( false );
+ }
}
- else
- {
- clearLwFeature( lwInvalidFeatureReference );
- lbFIDinvalidReference->setText( lbFID );
- pbSelectInvalidReference->setEnabled( false );
- }
}
}
cmb->blockSignals( false );
} // void QgsSpatialQueryDialog::removeLayer(bool isTarget, QgsVectorLayer* lyr)
+void QgsSpatialQueryDialog::populateCbResulFor()
+{
+ cbResultFor->blockSignals( true );
+ cbResultFor->clear();
+ QVariant item;
+ item = QVariant::fromValue( (int)selectedNew );
+ cbResultFor->addItem( tr("Create new selection"), item );
+ if( mLayerTarget->selectedFeatureCount() == 0 )
+ {
+ return;
+ }
+ if( ! ckbUsingSelectedTarget->isChecked() )
+ {
+ item = QVariant::fromValue( (int)selectedAdd );
+ cbResultFor->addItem( tr("Add to current selection"), item );
+ }
+ item = QVariant::fromValue( (int)selectedRemove );
+ cbResultFor->addItem( tr("Remove from current selection"), item );
+ cbResultFor->blockSignals( false );
+} // void QgsSpatialQueryDialog::populateCbResulFor()
+
+void QgsSpatialQueryDialog::populateTypeItems()
+{
+ QVariant item;
+ cbTypeItems->blockSignals( true );
+ item = QVariant::fromValue( (int)itemsResult );
+ cbTypeItems->addItem( tr("Result query"), item );
+ item = QVariant::fromValue( (int)itemsInvalidTarget );
+ cbTypeItems->addItem( tr("Invalid source"), item );
+ item = QVariant::fromValue( (int)itemsInvalidReference );
+ cbTypeItems->addItem( tr("Invalid reference"), item );
+ cbTypeItems->blockSignals( false );
+}
+
void QgsSpatialQueryDialog::populateCbTargetLayer()
{
cbTargetLayer->blockSignals( true );
@@ -645,33 +579,26 @@
void QgsSpatialQueryDialog::populateCbOperation()
{
- cbOperantion->blockSignals( true );
-
- if ( mLayerTarget == NULL || mLayerReference == NULL )
- {
- cbOperantion->clear();
- cbOperantion->blockSignals( true );
- }
-
QVariant currentValueItem;
bool isStartEmpty = false;
- if ( cbOperantion->count() == 0 )
+ if ( cbOperation->count() == 0 )
{
isStartEmpty = true;
}
else
{
- currentValueItem = cbOperantion->itemData( cbOperantion->currentIndex() );
+ currentValueItem = cbOperation->itemData( cbOperation->currentIndex() );
}
// Populate new values
QMap<QString, int> * map = QgsSpatialQuery::getTypesOperations( mLayerTarget, mLayerReference );
QMapIterator <QString, int> item( *map );
- cbOperantion->clear();
+ cbOperation->blockSignals( true );
+ cbOperation->clear();
while ( item.hasNext() )
{
item.next();
- cbOperantion->addItem( item.key(), QVariant( item.value() ) );
+ cbOperation->addItem( item.key(), QVariant( item.value() ) );
}
delete map;
@@ -679,58 +606,58 @@
int idCurrent = 0;
if ( !isStartEmpty )
{
- idCurrent = cbOperantion->findData( currentValueItem );
+ idCurrent = cbOperation->findData( currentValueItem );
if ( idCurrent == -1 )
{
idCurrent = 0;
}
}
- cbOperantion->setCurrentIndex( idCurrent );
- cbOperantion->blockSignals( false );
+ cbOperation->setCurrentIndex( idCurrent );
+ cbOperation->blockSignals( false );
-} // QgsSpatialQueryDialog::populatecbOperantion()
+} // QgsSpatialQueryDialog::populatecbOperation()
-void QgsSpatialQueryDialog::populateLwFeature( QListWidget *lw, QSet<int> & setFeatures )
+void QgsSpatialQueryDialog::setSelectedGui()
{
- lw->blockSignals( true );
- lw->clear();
- QSetIterator <int>item( setFeatures );
- QListWidgetItem *lwItem = NULL;
- while ( item.hasNext() )
+ int selectedFeat = mLayerTarget->selectedFeatureCount();
+ int totalFeat = mLayerTarget->featureCount();
+ QString formatLabel( tr("%1 of %2 selected by \"%3\""));
+ if( ! mIsSelectedOperator )
{
- lwItem = new QListWidgetItem(lw);
- QVariant fid = QVariant( item.next() );
- lwItem->setData( Qt::UserRole, fid ); // Data
- lwItem->setData( Qt::DisplayRole, fid ); // Label
- lw->addItem( lwItem );
+ mSourceSelected = tr("user");
}
- lw->sortItems();
- lw->setCurrentRow(0);
- lw->blockSignals( false );
-} // void populateLwFeature( QListWidget *lw, QSet<int> & setFeatures )
+ lbStatusSelected->setText( formatLabel.arg( selectedFeat ).arg( totalFeat ).arg( mSourceSelected ) );
+ mIsSelectedOperator = false;
+ pbCreateLayerSelected->setEnabled( selectedFeat > 0 );
+} // void QgsSpatialQueryDialog::setSelectedGui()
-void QgsSpatialQueryDialog::clearLwFeature( QListWidget *listWidget )
+void QgsSpatialQueryDialog::changeLwFeature( QgsVectorLayer* lyr, int fid )
{
- listWidget->blockSignals( true );
- listWidget->clear();
- listWidget->blockSignals( false );
-} // void QgsSpatialQueryDialog::clearLwFeature( QListWidget *listWidget )
-
-void QgsSpatialQueryDialog::changeLwFeature( QListWidget *listWidget, QgsVectorLayer* lyr, int fid )
-{
- listWidget->setEnabled( false ); // The showRubberFeature can be slow
+ lwFeatures->setEnabled( false ); // The showRubberFeature can be slow
showRubberFeature( lyr, fid );
// Zoom
if( ckbZoomItem->isChecked() )
{
- zoomFeatureTarget(lyr, fid);
+ zoomFeature(lyr, fid);
}
- listWidget->setEnabled( true );
- listWidget->setFocus();
+ lwFeatures->setEnabled( true );
+ lwFeatures->setFocus();
} // void QgsSpatialQueryDialog::changeLwFeature( QListWidget *listWidget, QgsVectorLayer* lyr, int fid )
-void QgsSpatialQueryDialog::zoomFeatureTarget(QgsVectorLayer* lyr, int fid)
+void QgsSpatialQueryDialog::zoomFeature(QgsVectorLayer* lyr, int fid)
{
+ static QgsVectorLayer* lyrCheck = NULL;
+ static bool hasMsg = false;
+ if( ! lyrCheck || lyrCheck != lyr )
+ {
+ lyrCheck = lyr;
+ hasMsg = true;
+ }
+ else
+ {
+ hasMsg = false;
+ }
+
QgsFeature feat;
if ( !lyr->featureAtId( fid, feat, true, false ) )
{
@@ -741,10 +668,25 @@
return;
}
// Set system reference
- QgsCoordinateReferenceSystem srsSource = lyr->srs();
+ QgsCoordinateReferenceSystem srsSource = lyr->dataProvider()->crs();
QgsCoordinateReferenceSystem srcMapcanvas = mIface->mapCanvas()->mapRenderer()->destinationSrs();
- if( srsSource == srcMapcanvas)
+ if( ! srsSource.isValid() )
{
+ if( hasMsg )
+ {
+ long epsgMapcanvas = srcMapcanvas.epsg();
+ bool isFly = mIface->mapCanvas()->mapRenderer()->hasCrsTransformEnabled();
+ QString msgFly = tr("Map \"%1\" \"on the fly\" transformation.").arg( isFly ? tr( "enable" ) : tr( "disable") );
+ QString msg = tr("Coordinate reference system(CRS) of\n\"%1\" is invalid(see CRS of provider).").arg( lyr->name() );
+ msg.append( tr("\n\nEPSG of map is %1.\n%2.").arg( epsgMapcanvas ).arg( msgFly ) );
+ msg.append("\n\nUsing CRS of map for all features!");
+
+ QMessageBox::warning(this, tr( "Zoom to feature" ), msg, QMessageBox::Ok );
+ }
+ mIface->mapCanvas()->setExtent( feat.geometry()->boundingBox() );
+ }
+ else if ( srsSource == srcMapcanvas)
+ {
mIface->mapCanvas()->setExtent( feat.geometry()->boundingBox() );
}
else
@@ -774,8 +716,7 @@
setCursor( c );
} // void QgsSpatialQueryDialog::showRubberFeature( QgsVectorLayer* lyr, int id )
-//! Slots for signs of Dialog
-void QgsSpatialQueryDialog::on_bbMain_accepted()
+void QgsSpatialQueryDialog::apply()
{
if ( ! mLayerReference )
{
@@ -788,32 +729,122 @@
return;
}
+ pgbStatus->setVisible( true );
QDateTime datetimeStart = QDateTime::currentDateTime();
+ mSourceSelected = cbResultFor->currentText();
+ mIsSelectedOperator = true;
runQuery();
QDateTime datetimeEnd = QDateTime::currentDateTime();
+ if( mFeatureResult.count() == 0 )
+ {
+ mIsSelectedOperator = false;
+ }
showResultQuery( &datetimeStart, &datetimeEnd );
+ visibleResult( true );
+} // void QgsSpatialQueryDialog::apply()
+
+void QgsSpatialQueryDialog::visibleResult( bool show )
+{
+ blockSignals( true );
+ if( show == false)
+ {
+ mRubberSelectId->reset();
+ }
+ leSpace->setVisible( show );
+ pgbStatus->setVisible( show );
+ gbResultQuery->setVisible( show );
+ gbSelected->setVisible( show );
+ ckbLogProcessing->setVisible( show );
+ teStatus->setVisible( false );
+ pgbStatus->setVisible( !show );
+ blockSignals( false );
adjustSize();
+} // void QgsSpatialQueryDialog::visibleResult( bool show )
+
+//! Slots for signs of Dialog
+void QgsSpatialQueryDialog::on_bbMain_clicked( QAbstractButton * button)
+{
+ switch( bbMain->buttonRole( button ) )
+ {
+ case QDialogButtonBox::ApplyRole:
+ apply();
+ break;
+ case QDialogButtonBox::DestructiveRole:
+ case QDialogButtonBox::RejectRole:
+ reject();
+ break;
+ default:
+ return;
+ }
} // QgsSpatialQueryDialog::on_bbMain_accepted()
-void QgsSpatialQueryDialog::on_bbMain_rejected()
+void QgsSpatialQueryDialog::on_pbCreateLayerItems_clicked()
{
- if ( twResultInvalid->isHidden() )
+ TypeItems typeItem = (TypeItems) cbTypeItems->itemData( cbTypeItems->currentIndex() ).toInt();
+ QSet<int> * fids = 0;
+ switch( typeItem )
{
- reject();
+ case itemsResult:
+ fids = &mFeatureResult;
+ break;
+ case itemsInvalidTarget:
+ fids = &mFeatureInvalidTarget;
+ break;
+ case itemsInvalidReference:
+ fids = &mFeatureInvalidReference;
+ break;
+ default:
+ return;
}
- else
+ QString title = tr( "Create new layer from items" );
+ QString msg;
+ QString fieldFID;
+ TypeVerifyCreateSubset verify = verifyCreateSubset( msg, fieldFID );
+ if( verify == verifyImpossible )
{
- mRubberSelectId->reset();
- setLayoutResultInvalid( false );
- setLayoutOperationVisible( true );
- pgbStatus->show();
- bbMain->button( QDialogButtonBox::Close )->hide();
- bbMain->button( QDialogButtonBox::Cancel )->show();
- bbMain->button( QDialogButtonBox::Ok )->show();
+ QMessageBox::critical(this, title, msg, QMessageBox::Ok );
+ return;
}
- adjustSize();
-} // void QgsSpatialQueryDialog::on_bbMain_rejected()
+ if( verify == verifyTry )
+ {
+ QMessageBox::warning(this, title, msg, QMessageBox::Ok );
+ }
+ QString subset = getSubsetFIDs( fids, fieldFID );
+ QString name = QString("%1 < %2 > %3").arg( mLayerTarget->name() ).arg( cbOperation->currentText() ).arg( mLayerReference->name() );
+ if( ! addLayerSubset( name, subset ) )
+ {
+ msg = tr("The query from \"%1\" using \"%2\" in field not possible.").arg( mLayerTarget->name() ).arg( fieldFID );
+ QMessageBox::critical(this, title, msg, QMessageBox::Ok );
+ }
+} // void QgsSpatialQueryDialog::on_pbCreateLayerItems_clicked()
+
+void QgsSpatialQueryDialog::on_pbCreateLayerSelected_clicked()
+{
+ const QSet < int > *fids = & ( mLayerTarget->selectedFeaturesIds() );
+ QString title = tr( "Create new layer from selected" );
+ QString msg;
+ QString fieldFID;
+ TypeVerifyCreateSubset verify = verifyCreateSubset( msg, fieldFID );
+ if( verify == verifyImpossible )
+ {
+ QMessageBox::critical(this, title, msg, QMessageBox::Ok );
+ return;
+ }
+ if( verify == verifyTry )
+ {
+ QMessageBox::warning(this, title, msg, QMessageBox::Ok );
+ }
+
+ QString subset = getSubsetFIDs( fids, fieldFID );
+ QString name = QString("%1 selected").arg( mLayerTarget->name() );
+ if( ! addLayerSubset( name, subset ) )
+ {
+ msg = tr("The query from \"%1\" using \"%2\" in field not possible.").arg( mLayerTarget->name() ).arg( fieldFID );
+ QMessageBox::critical(this, title, msg, QMessageBox::Ok );
+ }
+} // void QgsSpatialQueryDialog::on_pbCreateLayerSelected_clicked()
+
void QgsSpatialQueryDialog::on_cbTargetLayer_currentIndexChanged( int index )
{
// Add old target layer in reference combobox
@@ -821,150 +852,140 @@
// Set target layer
setLayer( true, index );
- evaluateCheckBox( true );
+ evaluateCheckBoxLayer( true );
+ setSelectedGui();
// Remove new target layer in reference combobox
removeLayer( false, mLayerTarget );
populateCbOperation();
+ if( gbResultQuery->isVisible() )
+ {
+ visibleResult( false );
+ }
} // QgsSpatialQueryDialog::on_cbTargetLayer_currentIndexChanged(int index)
void QgsSpatialQueryDialog::on_cbReferenceLayer_currentIndexChanged( int index )
{
setLayer( false, index );
- evaluateCheckBox( false );
+ evaluateCheckBoxLayer( false );
populateCbOperation();
+ if( gbResultQuery->isVisible() )
+ {
+ visibleResult( false );
+ }
} // QgsSpatialQueryDialog::on_cbReferenceLayer_currentIndexChanged(int index);
-void QgsSpatialQueryDialog::on_lwResultFeatureTarget_currentItemChanged( QListWidgetItem * item )
+void QgsSpatialQueryDialog::on_cbTypeItems_currentIndexChanged( int index )
{
- bool isOk;
- int fid = item->data(Qt::UserRole).toInt( &isOk );
- changeLwFeature( lwResultFeatureTarget, mLayerTarget, fid );
-} // void QgsSpatialQueryDialog::on_lwResultFeatureTarget_currentItemChanged( QListWidgetItem * item )
+ // Get Value type Item
+ QVariant qtypItem = cbTypeItems->itemData( index );
+ TypeItems typeItem = (TypeItems) qtypItem.toInt();
-void QgsSpatialQueryDialog::on_twResultInvalid_currentChanged ( int index )
-{
- void ( QgsSpatialQueryDialog::* on_lw_currentItemChanged )( QListWidgetItem * ) = NULL;
- QListWidget *lw = NULL;
- switch (index)
+ QSet<int> * setItems = 0;
+ int totalFeat = mLayerTarget->featureCount();
+ switch( typeItem )
{
- case 0: // Result target
- on_lw_currentItemChanged = &QgsSpatialQueryDialog::on_lwResultFeatureTarget_currentItemChanged;
- lw = lwResultFeatureTarget;
+ case itemsResult:
+ setItems = &mFeatureResult;
break;
- case 1: // Invalid target
- on_lw_currentItemChanged = &QgsSpatialQueryDialog::on_lwInvalidFeatureTarget_currentItemChanged;
- lw = lwInvalidFeatureTarget;
+ case itemsInvalidTarget:
+ setItems = &mFeatureInvalidTarget;
break;
- case 2: // Invalid reference
- on_lw_currentItemChanged = &QgsSpatialQueryDialog::on_lwInvalidFeatureReference_currentItemChanged;
- lw = lwInvalidFeatureReference;
+ case itemsInvalidReference:
+ setItems = &mFeatureInvalidReference;
+ totalFeat = mLayerReference->featureCount();
break;
default:
return;
}
- if( lw->count() > 0)
+
+ lwFeatures->blockSignals( true );
+ lwFeatures->clear();
+ int totalItens = setItems->size();
+ if ( totalItens > 0 )
{
- ckbZoomItem->setEnabled( true );
- ( this->*on_lw_currentItemChanged )( lw->currentItem() );
+ // Populate lwFeatures
+ QSetIterator <int>item( *setItems );
+ QListWidgetItem *lwItem = NULL;
+ while ( item.hasNext() )
+ {
+ lwItem = new QListWidgetItem(lwFeatures);
+ QVariant fid = QVariant( item.next() );
+ lwItem->setData( Qt::UserRole, fid ); // Data
+ lwItem->setData( Qt::DisplayRole, fid ); // Label
+ lwFeatures->addItem( lwItem );
+ }
+ lwFeatures->sortItems();
+ lwFeatures->blockSignals( false );
+ lwFeatures->setCurrentRow(0); // Has signal/slot for change current item in ListWidget
}
else
{
- ckbZoomItem->setEnabled( false );
+ mRubberSelectId->reset();
+ lwFeatures->blockSignals( false );
}
-} // void QgsSpatialQueryDialog::on_twResultInvalid_currentChanged ( int index )
+ // Set lbStatusItems and pbCreateLayer
+ QString formatLabel( tr("%1 of %2 identified"));
+ lbStatusItems->setText( formatLabel.arg( totalItens ).arg( totalFeat ) );
+ pbCreateLayerItems->setEnabled( totalItens > 0 );
+ ckbZoomItem->setEnabled( totalItens > 0 );
+}
-void QgsSpatialQueryDialog::on_lwInvalidFeatureTarget_currentItemChanged( QListWidgetItem * item )
+void QgsSpatialQueryDialog::on_cbResultFor_currentIndexChanged()
{
- bool isOk;
- int fid = item->data(Qt::UserRole).toInt( &isOk );
- changeLwFeature( lwInvalidFeatureTarget, mLayerTarget, fid );
-} // void QgsSpatialQueryDialog::on_lwInvalidFeatureTarget_currentItemChanged( QListWidgetItem * item )
+ if( gbResultQuery->isVisible() )
+ {
+ visibleResult( false );
+ }
+} // void QgsSpatialQueryDialog::on_cbResultFor_currentIndexChanged()
-void QgsSpatialQueryDialog::on_lwInvalidFeatureReference_currentItemChanged( QListWidgetItem * item )
+void QgsSpatialQueryDialog::on_cbOperation_currentIndexChanged()
{
- bool isOk;
- int fid = item->data(Qt::UserRole).toInt( &isOk );
- changeLwFeature( lwInvalidFeatureReference, mLayerReference, fid );
-} // void QgsSpatialQueryDialog::on_lwInvalidFeatureReference_currentItemChanged( QListWidgetItem * item )
+ if( gbResultQuery->isVisible() )
+ {
+ visibleResult( false );
+ }
+} // void QgsSpatialQueryDialog::on_cbOperation_currentIndexChanged()
+void QgsSpatialQueryDialog::on_lwFeatures_currentItemChanged( QListWidgetItem * item )
+{
+ TypeItems typeItem = (TypeItems)( cbTypeItems->itemData( cbTypeItems->currentIndex() ).toInt() );
+ QgsVectorLayer *lyr = typeItem == itemsInvalidReference
+ ? mLayerReference : mLayerTarget;
+ int fid = item->data(Qt::UserRole).toInt();
+ changeLwFeature( lyr, fid );
+} // void QgsSpatialQueryDialog::on_lwFeatures_currentItemChanged( QListWidgetItem * item )
+
+void QgsSpatialQueryDialog::on_ckbUsingSelectedTarget_toggled()
+{
+ populateCbResulFor();
+} // void QgsSpatialQueryDialog::on_ckbUsingSelectedTarget_clicked( bool checked )
+
void QgsSpatialQueryDialog::on_ckbLogProcessing_clicked( bool checked )
{
- showLogProcessing( checked );
+ teStatus->setVisible( checked );
adjustSize();
-
} // void QgsSpatialQueryDialog::on_ckbLogProcessing_clicked(bool checked)
void QgsSpatialQueryDialog::on_ckbZoomItem_clicked( bool checked )
{
if( checked )
{
- QListWidget *lw = NULL;
- QgsVectorLayer *lyr = NULL;
- int index = twResultInvalid->currentIndex();
- switch (index)
+ if( lwFeatures->count() > 0 )
{
- case 0: // Result target
- lyr = mLayerTarget;
- lw = lwResultFeatureTarget;
- break;
- case 1: // Invalid target
- lyr = mLayerTarget;
- lw = lwInvalidFeatureTarget;
- break;
- case 2: // Invalid reference
- lyr = mLayerReference;
- lw = lwInvalidFeatureReference;
- break;
- default:
- return;
+ int fid = lwFeatures->currentItem()->data(Qt::UserRole).toInt();
+ TypeItems typeItem = (TypeItems)( cbTypeItems->itemData( cbTypeItems->currentIndex() ).toInt() );
+ QgsVectorLayer *lyr = typeItem == itemsInvalidReference
+ ? mLayerReference : mLayerTarget;
+ zoomFeature(lyr, fid);
}
- if( lw->count() > 0 )
- {
- bool ok;
- int fid = lw->currentItem()->data(Qt::UserRole).toInt(&ok);
- zoomFeatureTarget(lyr, fid);
- }
}
} // QgsSpatialQueryDialog::on_ckbZoomItem_clicked( bool checked )
-void QgsSpatialQueryDialog::on_pbSelectResultTarget_clicked()
-{
- mLayerTarget->setSelectedFeatures( mFeatureResult );
-} // void QgsSpatialQueryDialog::on_pbSelectResultTarget_clicked()
-
-void QgsSpatialQueryDialog::on_pbSelectResultTargetAdd_clicked()
-{
- mLayerTarget->setSelectedFeatures( mLayerTarget->selectedFeaturesIds() + mFeatureResult );
-} // void QgsSpatialQueryDialog::on_pbSelectResultTargetAdd_clicked()
-
-void QgsSpatialQueryDialog::on_pbSelectResultTargetRemove_clicked()
-{
- mLayerTarget->setSelectedFeatures( mLayerTarget->selectedFeaturesIds() - mFeatureResult );
-} // void QgsSpatialQueryDialog::on_pbSelectResultTargetRemove_clicked()
-
-void QgsSpatialQueryDialog::on_pbSelectedSubsetLayer_clicked()
-{
- mLayerTarget->setSubsetString( getSubsetSelected( mLayerTarget ) );
- mLayerTarget->removeSelection();
- mIface->mapCanvas()->refresh();
-} // void QgsSpatialQueryDialog::on_pbSelectedSubsetLayer_clicked()
-
-void QgsSpatialQueryDialog::on_pbSelectInvalidTarget_clicked()
-{
- mLayerTarget->setSelectedFeatures( mFeatureInvalidTarget );
-} // void QgsSpatialQueryDialog::on_pbSelectInvalidTarget_clicked()
-
-void QgsSpatialQueryDialog::on_pbSelectInvalidReference_clicked()
-{
- mLayerReference->setSelectedFeatures( mFeatureInvalidReference );
-} // void QgsSpatialQueryDialog::on_pbSelectInvalidReference_clicked()
-
-
//! Slots for signs of QGIS
void QgsSpatialQueryDialog::signal_qgis_layerWasAdded( QgsMapLayer* mapLayer )
{
@@ -977,22 +998,16 @@
{
return;
}
-<<<<<<< HEAD
- addCbLayer( true, vectorLayer );
- addCbLayer( false, vectorLayer );
- mMapIdVectorLayers.insert( vectorLayer->getLayerID(), vectorLayer );
-=======
addCbLayer( true, lyr );
+ if ( cbTargetLayer->count() > 1 && bbMain->button( QDialogButtonBox::Apply )->isHidden() )
+ {
+ bbMain->button( QDialogButtonBox::Apply )->show();
+ cbOperation->setEnabled( true );
+ cbResultFor->setEnabled( true );
+ }
addCbLayer( false, lyr );
mMapIdVectorLayers.insert( lyr->getLayerID(), lyr );
->>>>>>> Updates from Luiz for spatial query plugin
- // Verify is can enable buttonBox
- if ( !bbMain->button( QDialogButtonBox::Ok )->isEnabled() && cbTargetLayer->count() > 1 )
- {
- bbMain->button( QDialogButtonBox::Ok )->setEnabled( true );
- }
-
} // QgsSpatialQueryDialog::signal_qgis_layerWasAdded(QgsMapLayer* mapLayer)
void QgsSpatialQueryDialog::signal_qgis_layerWillBeRemoved( QString idLayer )
@@ -1018,12 +1033,25 @@
removeLayer( false, mLayerTarget );
}
- populateCbOperation();
+ if( cbTargetLayer->count() < 2 )
+ {
+ bbMain->button( QDialogButtonBox::Apply )->hide();
+ cbOperation->setEnabled( false );
+ cbResultFor->setEnabled( false );
+ if( gbResultQuery->isVisible() )
+ {
+ visibleResult( false );
+ }
- if ( cbTargetLayer->count() < 2 )
+ mLayerReference = NULL;
+ if( cbTargetLayer->count() < 1 )
+ {
+ mLayerTarget = NULL;
+ }
+ }
+ else
{
- bbMain->button( QDialogButtonBox::Ok )->setEnabled( false );
- teStatus->append( mMsgLayersLessTwo );
+ populateCbOperation();
}
} // QgsSpatialQueryDialog::signal_qgis_layerWillBeRemoved(QString idLayer)
@@ -1031,14 +1059,14 @@
//! Slots for signals of Layers (Target or Reference)
void QgsSpatialQueryDialog::signal_layerTarget_selectionFeaturesChanged()
{
- evaluateCheckBox( true );
- evaluateButtonSelected();
- setLabelButtonSelected(lbSelected, mLayerTarget, pbSelectedSubsetLayer);
+ evaluateCheckBoxLayer( true );
+ setSelectedGui();
+ adjustSize();
} // void QgsSpatialQueryDialog::signal_layerTarget_selectionFeaturesChanged()
void QgsSpatialQueryDialog::signal_layerReference_selectionFeaturesChanged()
{
- evaluateCheckBox( false );
+ evaluateCheckBoxLayer( false );
} // void QgsSpatialQueryDialog::signal_layerReference_selectionFeaturesChanged()
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.cpp
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.h
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.h 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.h 2011-03-01 08:00:54 UTC (rev 15302)
@@ -47,30 +47,20 @@
//! Message about number layers less Two
static void messageLayersLessTwo();
- //! Unload plugins by QGIS - Disconnect signal from QGIS
- void disconnectQGis();
-
- //! Override show for ajust size
- void show();
-
private slots:
//! Slots for signs of Dialog
- void on_bbMain_accepted();
- void on_bbMain_rejected();
+ void on_bbMain_clicked( QAbstractButton * button);
+ void on_pbCreateLayerItems_clicked();
+ void on_pbCreateLayerSelected_clicked();
void on_cbTargetLayer_currentIndexChanged( int index );
void on_cbReferenceLayer_currentIndexChanged( int index );
- void on_lwResultFeatureTarget_currentItemChanged( QListWidgetItem * item );
- void on_twResultInvalid_currentChanged ( int index );
- void on_lwInvalidFeatureTarget_currentItemChanged( QListWidgetItem * item );
- void on_lwInvalidFeatureReference_currentItemChanged( QListWidgetItem * item );
+ void on_cbTypeItems_currentIndexChanged( int index );
+ void on_cbResultFor_currentIndexChanged();
+ void on_cbOperation_currentIndexChanged();
+ void on_lwFeatures_currentItemChanged( QListWidgetItem * item );
+ void on_ckbUsingSelectedTarget_toggled();
void on_ckbLogProcessing_clicked( bool checked );
void on_ckbZoomItem_clicked( bool checked );
- void on_pbSelectResultTarget_clicked();
- void on_pbSelectResultTargetAdd_clicked();
- void on_pbSelectResultTargetRemove_clicked();
- void on_pbSelectedSubsetLayer_clicked();
- void on_pbSelectInvalidTarget_clicked();
- void on_pbSelectInvalidReference_clicked();
//! Slots for signs of QGIS
void signal_qgis_layerWasAdded( QgsMapLayer* mapLayer );
@@ -81,24 +71,33 @@
void signal_layerReference_selectionFeaturesChanged();
private:
+ //! Enum Type of items
+ enum TypeItems { itemsResult, itemsInvalidTarget, itemsInvalidReference };
+ //! Enum Type Result for
+ enum TypeResultFor { selectedNew, selectedAdd, selectedRemove };
+ //! Enum Type of verify subset
+ enum TypeVerifyCreateSubset { verifyOk, verifyTry, verifyImpossible };
+
//! Initialize the Gui
void initGui();
+ //! Apply Button
+ void apply();
+ //! Visible result
+ void visibleResult( bool show );
//! Set Layer (Target or Reference)
void setLayer( bool isTarget, int index );
//! Evaluate status of selected features from layer (Target or Reference)
- void evaluateCheckBox( bool isTarget );
+ void evaluateCheckBoxLayer( bool isTarget );
//! Run Query
- //! Evaluate button selected add and remove
- void evaluateButtonSelected();
void runQuery();
- //! Show Log Processing
- void showLogProcessing( bool hasShow );
//! Show result of query
void showResultQuery( QDateTime *datetimeStart, QDateTime *datetimeEnd );
- //! Set label with number's selected features of layer
- void setLabelButtonSelected( QLabel *lb, QgsVectorLayer* lyr, QPushButton *pb);
//! Get string subset with selected FID
- QString getSubsetSelected( QgsVectorLayer* lyr );
+ QString getSubsetFIDs( const QSet< int > *fids, QString fieldFID );
+ //! Verify can create layer subset
+ TypeVerifyCreateSubset verifyCreateSubset(QString &msg, QString &fieldFID);
+ //! Add layer target with subset
+ bool addLayerSubset( QString name, QString subset );
//! Get Description Layer to show result
QString getDescriptionLayerShow( bool isTarget );
//! Get Description Layer to show result
@@ -119,20 +118,22 @@
int getCbIndexLayer( bool isTarget, QgsVectorLayer* lyr );
//! Remove layer in combobox and setting GUI
void removeLayer( bool isTarget, QgsVectorLayer* lyr );
+ //! Populate cbResultFor
+ void populateCbResulFor();
+ //! Populate cbTypeItems
+ void populateTypeItems();
//! Populates cbTargetLayer with all layers
void populateCbTargetLayer();
//! Populates cbReferenceLayer with all layers except the current target layer
void populateCbReferenceLayer();
//! Populates operationComboBox with the topological operations
void populateCbOperation();
- //! Populates the features in QListWidget (use by result, invalid target and reference)
- void populateLwFeature( QListWidget *lw, QSet<int> & setFeatures );
- //! Clear the features of QListWidget (use by result, invalid target and reference)
- void clearLwFeature( QListWidget *listWidget );
- //! Make action when change item in ListWidget
- void changeLwFeature( QListWidget *listWidget, QgsVectorLayer* lyr, int fid );
+ //! Set selected GUI (lbStatusSelected and pbCreateLayerSelected)
+ void setSelectedGui();
+ //! Make action when change item in List feature
+ void changeLwFeature( QgsVectorLayer* lyr, int fid );
//! Zoom mapcanvas to current feature in listbox target
- void zoomFeatureTarget(QgsVectorLayer* lyr, int fid);
+ void zoomFeature(QgsVectorLayer* lyr, int fid);
//! Show rubber from feature
void showRubberFeature( QgsVectorLayer* lyr, int id );
@@ -152,16 +153,14 @@
QMap<QString, QgsVectorLayer *> mMapIdVectorLayers;
//! Rubber band for features result
QgsRubberSelectId* mRubberSelectId;
+ //! Text for source selected
+ QString mSourceSelected;
+ bool mIsSelectedOperator;
// Message
QString mMsgLayersLessTwo;
void MsgDEBUG( QString sMSg );
-
- //! show/hide operation inputs: target, reference and operation group box
- void setLayoutOperationVisible( bool show );
- //! show/hide result of operation: result and invalid group box
- void setLayoutResultInvalid( bool show );
};
#endif // SPATIALQUERYDIALOG_H
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialog.h
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.qrc
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.qrc 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.qrc 2011-03-01 08:00:54 UTC (rev 15302)
@@ -1,9 +1,7 @@
<RCC>
<qresource prefix="/icons">
<file>spatialquery.png</file>
- <file>select.png</file>
- <file>selectadd.png</file>
- <file>selectremove.png</file>
- <file>selectesubsetlayer.png</file>
+ <file>selectcreatelayer.png</file>
+ <file>itemscreatelayer.png</file>
</qresource>
</RCC>
Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.ui
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.ui 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.ui 2011-03-01 08:00:54 UTC (rev 15302)
@@ -1,542 +1,424 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>QgsSpatialQueryDialogBase</class>
- <widget class="QDialog" name="QgsSpatialQueryDialogBase">
- <property name="windowModality">
- <enum>Qt::NonModal</enum>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>586</width>
- <height>495</height>
- </rect>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="acceptDrops">
- <bool>true</bool>
- </property>
- <property name="windowTitle">
- <string>Spatial Query</string>
- </property>
- <property name="locale">
- <locale language="English" country="UnitedKingdom"/>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_6">
- <item>
- <layout class="QHBoxLayout" name="lytOperatorResultInvalid">
- <property name="sizeConstraint">
- <enum>QLayout::SetMinimumSize</enum>
- </property>
- <item>
- <layout class="QVBoxLayout" name="lytOperator">
- <item>
- <widget class="QGroupBox" name="grpTargetGroupBox">
- <property name="toolTip">
- <string>Layer on which the topological operation will select geometries</string>
- </property>
- <property name="title">
- <string>Target layer</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <property name="sizeConstraint">
- <enum>QLayout::SetMinimumSize</enum>
- </property>
- <item>
- <widget class="QComboBox" name="cbTargetLayer">
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="toolTip">
- <string>Select the target layer</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="ckbUsingSelectedTarget">
- <property name="toolTip">
- <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">When checked the operation will only consider selected geometries of the target layer</span></p></body></html></string>
- </property>
- <property name="text">
- <string>Selected feature(s) only</string>
- </property>
- </widget>
- </item>
- </layout>
- <zorder>ckbUsingSelectedTarget</zorder>
- <zorder>cbTargetLayer</zorder>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="grpReferenceGroupBox">
- <property name="toolTip">
- <string>Layer whose geometries will be used as reference by the topological operation</string>
- </property>
- <property name="title">
- <string>Reference layer</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_4">
- <property name="sizeConstraint">
- <enum>QLayout::SetMinimumSize</enum>
- </property>
- <item>
- <widget class="QComboBox" name="cbReferenceLayer">
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="toolTip">
- <string>Select the reference layer</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="ckbUsingSelectedReference">
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>18</height>
- </size>
- </property>
- <property name="toolTip">
- <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">When checked the operation will be only consider selected geometries of the reference layer</span></p></body></html></string>
- </property>
- <property name="text">
- <string>Selected feature(s) only</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="grpOperationGroupBox">
- <property name="toolTip">
- <string>Topological operations between layers of target and reference</string>
- </property>
- <property name="title">
- <string>Topological operation</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_5">
- <property name="sizeConstraint">
- <enum>QLayout::SetMinimumSize</enum>
- </property>
- <item>
- <widget class="QComboBox" name="cbOperantion">
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="toolTip">
- <string>Select the topological operation</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QVBoxLayout" name="lytResultInvalid">
- <item>
- <widget class="QTabWidget" name="twResultInvalid">
- <property name="tabPosition">
- <enum>QTabWidget::North</enum>
- </property>
- <property name="currentIndex">
- <number>0</number>
- </property>
- <widget class="QWidget" name="tabResult">
- <attribute name="title">
- <string>Result</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout_7">
- <item>
- <layout class="QHBoxLayout" name="lytTargetResult">
- <item>
- <widget class="QLabel" name="lbResultTarget">
- <property name="minimumSize">
- <size>
- <width>18</width>
- <height>20</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>30</height>
- </size>
- </property>
- <property name="toolTip">
- <string>Target layer</string>
- </property>
- <property name="text">
- <string>Layer</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="pbSelectResultTarget">
- <property name="toolTip">
- <string>New selection with list of FIDs</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="qgsspatialquerydialogbase.qrc">
- <normaloff>:/icons/select.png</normaloff>:/icons/select.png</iconset>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="pbSelectResultTargetAdd">
- <property name="toolTip">
- <string>Add selection with list of FIDs</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="qgsspatialquerydialogbase.qrc">
- <normaloff>:/icons/selectadd.png</normaloff>:/icons/selectadd.png</iconset>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="pbSelectResultTargetRemove">
- <property name="toolTip">
- <string>Remove selection with list of FIDs</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="qgsspatialquerydialogbase.qrc">
- <normaloff>:/icons/selectremove.png</normaloff>:/icons/selectremove.png</iconset>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QLabel" name="lbFIDresultTarget">
- <property name="toolTip">
- <string>List of FIDs from result of query</string>
- </property>
- <property name="text">
- <string>Feature IDs</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QListWidget" name="lwResultFeatureTarget">
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="toolTip">
- <string>Select one FID to identify geometry of feature</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="lytSelected">
- <item>
- <widget class="QLabel" name="lbSelected">
- <property name="toolTip">
- <string>Number of selected features in map</string>
- </property>
- <property name="locale">
- <locale language="English" country="UnitedStates"/>
- </property>
- <property name="text">
- <string notr="true">selected features</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_4">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="pbSelectedSubsetLayer">
- <property name="toolTip">
- <string>Set subset in layer with list of FIDs</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="qgsspatialquerydialogbase.qrc">
- <normaloff>:/icons/selectesubsetlayer.png</normaloff>:/icons/selectesubsetlayer.png</iconset>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="tab">
- <attribute name="title">
- <string>Invalid target</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="lytTargetInvalid">
- <item>
- <widget class="QLabel" name="lbInvalidTarget">
- <property name="toolTip">
- <string>Target layer</string>
- </property>
- <property name="text">
- <string>Layer</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="pbSelectInvalidTarget">
- <property name="toolTip">
- <string>New selection with list of FIDs</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="qgsspatialquerydialogbase.qrc">
- <normaloff>:/icons/select.png</normaloff>:/icons/select.png</iconset>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QLabel" name="lbFIDinvalidTarget">
- <property name="text">
- <string>Feature IDs</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QListWidget" name="lwInvalidFeatureTarget">
- <property name="toolTip">
- <string>Select item to identify geometry of feature</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="tab_2">
- <attribute name="title">
- <string>Invalid reference</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <layout class="QHBoxLayout" name="lytReferenceInvalid">
- <item>
- <widget class="QLabel" name="lbInvalidReference">
- <property name="toolTip">
- <string>Reference layer</string>
- </property>
- <property name="text">
- <string>Layer</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="pbSelectInvalidReference">
- <property name="toolTip">
- <string>New selection with list of FIDs</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="qgsspatialquerydialogbase.qrc">
- <normaloff>:/icons/select.png</normaloff>:/icons/select.png</iconset>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QLabel" name="lbFIDinvalidReference">
- <property name="text">
- <string>Feature IDs</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QListWidget" name="lwInvalidFeatureReference">
- <property name="toolTip">
- <string>Select item to identify geometry of feature</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QCheckBox" name="ckbZoomItem">
- <property name="text">
- <string>Zoom to identify FID</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="ckbLogProcessing">
- <property name="toolTip">
- <string>Check to show log processing of query</string>
- </property>
- <property name="text">
- <string>Show log messages</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTextEdit" name="teStatus">
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="textInteractionFlags">
- <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QVBoxLayout" name="lytProgressBarButtonsMain">
- <property name="sizeConstraint">
- <enum>QLayout::SetMinimumSize</enum>
- </property>
- <item>
- <widget class="QProgressBar" name="pgbStatus">
- <property name="value">
- <number>0</number>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- <property name="textVisible">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="bbMain">
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="contextMenuPolicy">
- <enum>Qt::DefaultContextMenu</enum>
- </property>
- <property name="toolTip">
- <string>Run query or close the window</string>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <tabstops>
- <tabstop>cbTargetLayer</tabstop>
- <tabstop>ckbUsingSelectedTarget</tabstop>
- <tabstop>cbReferenceLayer</tabstop>
- <tabstop>ckbUsingSelectedReference</tabstop>
- <tabstop>cbOperantion</tabstop>
- <tabstop>bbMain</tabstop>
- </tabstops>
- <resources>
- <include location="qgsspatialquerydialogbase.qrc"/>
- </resources>
- <connections/>
-</ui>
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>QgsSpatialQueryDialogBase</class>
+ <widget class="QDialog" name="QgsSpatialQueryDialogBase">
+ <property name="windowModality">
+ <enum>Qt::NonModal</enum>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>353</width>
+ <height>510</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>true</bool>
+ </property>
+ <property name="windowTitle">
+ <string>Spatial Query</string>
+ </property>
+ <property name="locale">
+ <locale language="English" country="UnitedKingdom"/>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <layout class="QHBoxLayout" name="lyOperatorResult">
+ <item>
+ <layout class="QVBoxLayout" name="lytOperator">
+ <item>
+ <widget class="QGroupBox" name="gbTarget">
+ <property name="toolTip">
+ <string>Layer on which the topological operation will select geometries</string>
+ </property>
+ <property name="title">
+ <string>Select source features from</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_5">
+ <item>
+ <widget class="QComboBox" name="cbTargetLayer">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Select the target layer</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="ckbUsingSelectedTarget">
+ <property name="toolTip">
+ <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">When checked the operation will only consider selected geometries of the target layer</span></p></body></html></string>
+ </property>
+ <property name="text">
+ <string>Selected feature(s) only</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ <zorder>ckbUsingSelectedTarget</zorder>
+ <zorder>cbTargetLayer</zorder>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="lbOperation">
+ <property name="text">
+ <string>Where the feature</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cbOperation">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Select the topological operation</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="gbReference">
+ <property name="toolTip">
+ <string>Layer whose geometries will be used as reference by the topological operation</string>
+ </property>
+ <property name="title">
+ <string>Reference features of </string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMinimumSize</enum>
+ </property>
+ <item>
+ <widget class="QComboBox" name="cbReferenceLayer">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Select the reference layer</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="ckbUsingSelectedReference">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">When checked the operation will be only consider selected geometries of the reference layer</span></p></body></html></string>
+ </property>
+ <property name="text">
+ <string>Selected feature(s) only</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="lbResultFor">
+ <property name="text">
+ <string>And use the result to</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cbResultFor"/>
+ </item>
+ <item>
+ <spacer name="spResult">
+ <property name="minimumSize">
+ <size>
+ <width>146</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="gbSelected">
+ <property name="title">
+ <string>Selected features</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="lbStatusSelected">
+ <property name="toolTip">
+ <string>Number of selected features in map</string>
+ </property>
+ <property name="locale">
+ <locale language="English" country="UnitedStates"/>
+ </property>
+ <property name="text">
+ <string notr="true">selected</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pbCreateLayerSelected">
+ <property name="minimumSize">
+ <size>
+ <width>44</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>44</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Create layer with selected</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="qgsspatialquerydialogbase.qrc">
+ <normaloff>:/icons/selectcreatelayer.png</normaloff>:/icons/selectcreatelayer.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="Line" name="leSpace">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="lyResult">
+ <item>
+ <widget class="QGroupBox" name="gbResultQuery">
+ <property name="title">
+ <string>FIDs identified</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetDefaultConstraint</enum>
+ </property>
+ <item>
+ <widget class="QComboBox" name="cbTypeItems">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="lwFeatures">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Select one FID to identify geometry of feature</string>
+ </property>
+ <property name="resizeMode">
+ <enum>QListView::Fixed</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="lytItems">
+ <item>
+ <widget class="QLabel" name="lbStatusItems">
+ <property name="toolTip">
+ <string>Number of selected features in map</string>
+ </property>
+ <property name="locale">
+ <locale language="English" country="UnitedStates"/>
+ </property>
+ <property name="text">
+ <string notr="true">items</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pbCreateLayerItems">
+ <property name="minimumSize">
+ <size>
+ <width>35</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>35</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Create layer with list of items</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="qgsspatialquerydialogbase.qrc">
+ <normaloff>:/icons/itemscreatelayer.png</normaloff>:/icons/itemscreatelayer.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="ckbZoomItem">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Zoom to item</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="lyLogMessage">
+ <item>
+ <widget class="QCheckBox" name="ckbLogProcessing">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Check to show log processing of query</string>
+ </property>
+ <property name="text">
+ <string>Log messages</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTextEdit" name="teStatus">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="pgbStatus">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>25</height>
+ </size>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="textVisible">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="bbMain">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::DefaultContextMenu</enum>
+ </property>
+ <property name="toolTip">
+ <string>Run query or close the window</string>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Apply|QDialogButtonBox::Close</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <tabstops>
+ <tabstop>cbTargetLayer</tabstop>
+ <tabstop>ckbUsingSelectedTarget</tabstop>
+ <tabstop>cbReferenceLayer</tabstop>
+ <tabstop>ckbUsingSelectedReference</tabstop>
+ <tabstop>bbMain</tabstop>
+ </tabstops>
+ <resources>
+ <include location="qgsspatialquerydialogbase.qrc"/>
+ </resources>
+ <connections/>
+</ui>
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsspatialquerydialogbase.ui
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp 2011-03-01 08:00:54 UTC (rev 15302)
@@ -16,7 +16,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsspatialqueryplugin.cpp 14897 2010-12-12 19:19:54Z wonder $ */
//
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.h
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.h 2011-03-01 08:00:12 UTC (rev 15301)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.h 2011-03-01 08:00:54 UTC (rev 15302)
@@ -16,7 +16,7 @@
* (at your option) any later version. *
* *
***************************************************************************/
-/* $Id$ */
+/* $Id: qgsspatialqueryplugin.h 13377 2010-04-25 01:07:36Z jef $ */
#ifndef SPATIALQUERYPLUGIN_H
#define SPATIALQUERYPLUGIN_H
Property changes on: trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.h
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/qgis/src/plugins/spatialquery/selectcreatelayer.png
===================================================================
--- trunk/qgis/src/plugins/spatialquery/selectcreatelayer.png (rev 0)
+++ trunk/qgis/src/plugins/spatialquery/selectcreatelayer.png 2011-03-01 08:00:54 UTC (rev 15302)
@@ -0,0 +1,11 @@
+PNG
+
+
+IHDR ®9 gAMA ±üa tEXtSoftware www.inkscape.orgî< ÛIDATXG½]nÂ0ǤMIÉ
+B|hÐT4¶½íuÏ;ÕÆ
v/ ´k MâRd!6?ûoÇ1ät:AüǨ7ÔÞþç4cj7íl´ùöNz Ñ2mìbDÃhàÆ©BÃÁcÁõs¢"¯£æÜ+µ+
+òðdäwEûrì[c%s:ð8_)ÅÑÇÃ:^Ø|_ïÜÒÇÃuáôûÉßécºUßÈù¼#ç,ã
+Ó
Õ2ÇËW/ ÷ ׯ ·oÿëXùÙ¹_7Ýøa²©@5Ë 5*aà{À §,
+µsXxYͼýÝDæ"
+v ÔÛÏÑUxZn¿÷°ü\ÃS5µj'x¥jXGÃ-Z÷/ \töò×?0>BÁ»
+4[V at R5 4P6¼JhPià¦ð|¨"óê
+$óçß§Ù`×ò룴ô¼ê [ é(@ëJÕp:pôZ""¯TÚóÈý¿Xltsþoº©ÏzrU
"äE£s¢y1hѵU2ʪ4ßÎyñ_5 Õû˧NTÕ'ÆYÛYªÞQÚ/\¢.Z
^ IEND®B`
\ No newline at end of file
Property changes on: trunk/qgis/src/plugins/spatialquery/selectcreatelayer.png
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/qgis/src/plugins/spatialquery/spatialquery.png
===================================================================
(Binary files differ)
Property changes on: trunk/qgis/src/plugins/spatialquery/spatialquery.png
___________________________________________________________________
Added: svn:executable
+ *
More information about the QGIS-commit
mailing list