[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ø9N¨7ÔÚþy2Ôj:Xôð­Ýþˆ<ƒæq`
+·Ôö€ë J‡†ƒcÁÕ<O (å•j¾L½V»Ò c¿K}Ü—cß3–3g OóµrÌ¡'j{…滜?Þ»­ÇÃuáÜÏÓ;•ß[醇t«[•óEGÎYÂ!e fK«eŽW{¯_A¾@nÞ@îÞÿŸ‡ÚÏ.íøz»éÆÓmêïµK!ðÆ9à„S?žso7ÊãT àåñ{Y£¾¯·_¬$0/>ÃhXºû9Àêk“bfÕ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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:8pt;&quot;&gt;When checked the operation will only consider selected geometries of the target layer&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:8pt;&quot;&gt;When checked the operation will be only consider selected geometries of the reference layer&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:8pt;&quot;&gt;When checked the operation will only consider selected geometries of the target layer&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:8pt;&quot;&gt;When checked the operation will be only consider selected geometries of the reference layer&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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âRd!‘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 ÔÛÏјUxZ’n¿÷°ü\ÃS5µj'x¥jX–GÃ-Zˆ÷/ \töò›œ×?0>BÁ»
+4[V at R5 4ŽP6¼­JhPià¦ð„|¨œ"óê
+$óç߆§Ù`‘×ò댣´ô¼œê [ é(@ëJÕp:pôZ""¯TÚóÈý‚¿X“ltsþ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