27 #include <QTableWidgetItem>    34 #include <QPushButton>    35 #include <QHBoxLayout>    36 #include <QFileDialog>    43   connect( layerComboBox, 
static_cast<void ( QComboBox::* )( 
int )
>( &QComboBox::currentIndexChanged ), 
this, &QgsAttributeTypeLoadDialog::fillComboBoxes );
    44   connect( keyComboBox, 
static_cast<void ( QComboBox::* )( 
int )
>( &QComboBox::currentIndexChanged ), 
this, [ = ]( 
int index ) { createPreview( index ); } );
    45   connect( valueComboBox, 
static_cast<void ( QComboBox::* )( 
int )
>( &QComboBox::currentIndexChanged ), 
this, [ = ]( 
int index ) { createPreview( index ); } );
    46   connect( previewButton, &QAbstractButton::pressed, 
this, &QgsAttributeTypeLoadDialog::previewButtonPushed );
    50   keyComboBox->setDisabled( 
true );
    51   valueComboBox->setDisabled( 
true );
    59 void QgsAttributeTypeLoadDialog::previewButtonPushed()
    61   createPreview( valueComboBox->currentIndex(), true );
    64 void QgsAttributeTypeLoadDialog::fillLayerList()
    66   layerComboBox->blockSignals( 
true );
    67   layerComboBox->clear();
    73       layerComboBox->addItem( vl->
name(), vl->
id() );
    75   layerComboBox->setCurrentIndex( -1 );
    76   layerComboBox->blockSignals( 
false );
    79 void QgsAttributeTypeLoadDialog::fillComboBoxes( 
int layerIndex )
    81   keyComboBox->blockSignals( 
true );
    82   valueComboBox->blockSignals( 
true );
    86   valueComboBox->clear();
    92     QMap<QString, int>::iterator it = fieldMap.begin();
    93     for ( ; it != fieldMap.end(); ++it )
    95       keyComboBox->addItem( it.key(), it.value() );
    96       valueComboBox->addItem( it.key(), it.value() );
   100   keyComboBox->setEnabled( 
nullptr != vLayer );
   101   valueComboBox->setEnabled( 
nullptr != vLayer );
   103   keyComboBox->setCurrentIndex( -1 );
   104   valueComboBox->setCurrentIndex( -1 );
   106   keyComboBox->blockSignals( 
false );
   107   valueComboBox->blockSignals( 
false );
   110 void QgsAttributeTypeLoadDialog::createPreview( 
int fieldIndex, 
bool full )
   112   previewTableWidget->clearContents();
   114   for ( 
int i = previewTableWidget->rowCount() - 1; i > 0; i-- )
   116     previewTableWidget->removeRow( i );
   118   if ( layerComboBox->currentIndex() < 0 || fieldIndex < 0 )
   123   int idx = keyComboBox->currentData().toInt();
   124   int idx2 = valueComboBox->currentData().toInt();
   131   attributeList.append( idx );
   132   attributeList.append( idx2 );
   142     if ( val1.isValid() && !val1.isNull() && !val1.toString().isEmpty()
   143          && val2.isValid() && !val2.isNull() && !val2.toString().isEmpty() )
   145       valueMap.insert( val1.toString(), val2.toString() );
   147     if ( !full && valueMap.size() > 8 )
   151   for ( QMap<QString, QVariant>::iterator mit = valueMap.begin(); mit != valueMap.end(); ++mit, row++ )
   153     previewTableWidget->insertRow( row );
   154     previewTableWidget->setItem( row, 0, 
new QTableWidgetItem( mit.value().toString() ) );
   155     previewTableWidget->setItem( row, 1, 
new QTableWidgetItem( mit.key() ) );
   166   return nullCheckBox->isChecked();
   169 void QgsAttributeTypeLoadDialog::loadDataToValueMap()
   172   int idx = keyComboBox->currentData().toInt();
   173   int idx2 = valueComboBox->currentData().toInt();
   180   attributeList.append( idx );
   181   attributeList.append( idx2 );
   189     if ( val.isValid() && !val.isNull() && !val.toString().isEmpty() )
   191       mValueMap.insert( f.
attribute( idx2 ).toString(), val );
   199   loadDataToValueMap();
 Wrapper for iterator of features from vector data provider or vector layer. 
 
Base class for all map layer types. 
 
QMap< QString, int > fieldNameMap() const
Returns a map where the key is the name of the field and the value is its index. 
 
void setVectorLayer(QgsVectorLayer *layer)
Sets predefined vector layer for selection of data. 
 
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
 
void accept() override
Overloaded accept method which will write the feature field values, then delegate to QDialog::accept(...
 
QMap< QString, QVariant > & valueMap()
Returns the value map which is currently active. 
 
QString id() const
Returns the layer's unique ID, which is used to access this layer from QgsProject. 
 
QgsAttributeTypeLoadDialog(QgsVectorLayer *vl)
 
This class wraps a request for features to a vector layer (or directly its vector data provider)...
 
bool insertNull()
Returns true if the "Add NULL value" checkbox has been checked. 
 
QMap< QString, QgsMapLayer * > mapLayers(const bool validOnly=false) const
Returns a map of all registered layers by layer ID. 
 
static QgsProject * instance()
Returns the QgsProject singleton instance. 
 
Q_INVOKABLE QgsMapLayer * mapLayer(const QString &layerId) const
Retrieve a pointer to a registered layer by layer ID. 
 
QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const FINAL
Queries the layer for features specified in request. 
 
QgsVectorDataProvider * dataProvider() FINAL
Returns the layer's data provider, it may be nullptr. 
 
QList< int > QgsAttributeList
 
bool nextFeature(QgsFeature &f)
 
Geometry is not required. It may still be returned if e.g. required for a filter condition. 
 
Represents a vector layer which manages a vector based data sets. 
 
QVariant attribute(const QString &name) const
Lookup attribute value from attribute name.