void QgsSpatialQueryDialog::signal_qgis_layerWillBeRemoved( QString idLayer )
{
  // If Frozen: the QGis can be: Exit, Add Project, New Project
  if ( mIface->mapCanvas()->isFrozen() )
  {
    reject();
  }
  // idLayer = QgsMapLayer::getLayerID()
  // Get Pointer layer removed
  QMap<QString, QgsVectorLayer *>::const_iterator i = mMapIdVectorLayers.find( idLayer );
  if ( i == mMapIdVectorLayers.end() )
  {
    return;
  }
  mMapIdVectorLayers.remove( idLayer );
  QgsVectorLayer *lyr = i.value();
  removeLayer( true, lyr ); // set new target if need
  removeLayer( false, lyr ); // set new reference if need
  if ( mLayerTarget && getCbIndexLayer( cbReferenceLayer, mLayerTarget ) > -1 )
  {
    removeLayer( false, mLayerTarget );
  }

  if ( cbTargetLayer->count() < 2 )
  {
    bbMain->button( QDialogButtonBox::Apply )->hide();
    cbOperation->setEnabled( false );
    cbResultFor->setEnabled( false );
    if ( gbResultQuery->isVisible() )
    {
      visibleResult( false );
    }

    mLayerReference = NULL;
    if ( cbTargetLayer->count() < 1 )
    {
      mLayerTarget = NULL;
    }
  }
  else
  {
    populateCbOperation();
  }
} // QgsSpatialQueryDialog::signal_qgis_layerWillBeRemoved(QString idLayer)
Пример #2
0
void QgsSpatialQueryDialog::on_cbTargetLayer_currentIndexChanged( int index )
{
  // Add old target layer in reference combobox
  addCbLayer( false, mLayerTarget );

  // Set target layer
  setLayer( true, index );
  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)
Пример #3
0
void QgsSpatialQueryDialog::initGui()
{
  mRubberSelectId->setStyle( 250, 0, 0, 2 ); // Same identify
  visibleResult( false );
  populateTypeItems();
  populateCbTargetLayer();
  if ( cbTargetLayer->count() > 1 )
  {
    setLayer( true, 0 );
    setSelectedGui();
    evaluateCheckBoxLayer( true );
    populateCbReferenceLayer();
    setLayer( false, 0 );
    evaluateCheckBoxLayer( false );
    populateCbOperation();
  }
  else
  {
    bbMain->button( QDialogButtonBox::Apply )->hide();
  }
  populateCbResulFor(); // Depend if Target is selected
  adjustSize();
} // QgsSpatialQueryDialog::initGui()