QgsTransaction* QgsTransaction::create( const QStringList& layerIds ) { if ( layerIds.isEmpty() ) { return 0; } QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( QgsMapLayerRegistry::instance()->mapLayer( layerIds.first() ) ); if ( !layer ) { return 0; } QString connStr = QgsDataSourceURI( layer->source() ).connectionInfo(); QString providerKey = layer->dataProvider()->name(); QgsTransaction* ts = QgsTransaction::create( connStr, providerKey ); if ( !ts ) { return 0; } Q_FOREACH ( const QString& layerId, layerIds ) { if ( !ts->addLayer( layerId ) ) { delete ts; return 0; } } return ts; }
void QgsSpatialQueryDialog::populateCbReferenceLayer() { cbReferenceLayer->blockSignals( true ); cbReferenceLayer->clear(); // Populate new values and Set current item keeping the previous value QString itemText; QVariant itemData; QIcon itemIcon; QgsVectorLayer * lyr = NULL; int idNew = 0; for ( int id = 0; id < cbTargetLayer->count(); id++ ) { itemText = cbTargetLayer->itemText( id ); itemData = cbTargetLayer->itemData( id ); itemIcon = cbTargetLayer->itemIcon( id ); lyr = static_cast<QgsVectorLayer *>( itemData.value<void *>() ); if ( lyr == mLayerTarget ) { continue; } cbReferenceLayer->addItem( itemIcon, itemText, itemData ); cbReferenceLayer->setItemData( idNew, QVariant( lyr->source() ), Qt::ToolTipRole ); idNew++; } int idCurrent = getCbIndexLayer( false, mLayerReference ); if ( idCurrent == -1 ) { idCurrent = 0; } cbReferenceLayer->setCurrentIndex( idCurrent ); cbReferenceLayer->blockSignals( false ); } // QgsSpatialQueryDialog::populateCbReferenceLayer()