QGIS API Documentation  2.2.0-Valmiera
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
QgsFields Class Reference

Container of fields for a vector layer. More...

#include <qgsfield.h>

Classes

struct  Field

Public Types

enum  FieldOrigin { OriginUnknown, OriginProvider, OriginJoin, OriginEdit }
typedef struct QgsFields::Field Field

Public Member Functions

void clear ()
 Remove all fields.
bool append (const QgsField &field, FieldOrigin origin=OriginProvider, int originIndex=-1)
 Append a field. The field must have unique name, otherwise it is rejected (returns false)
void remove (int fieldIdx)
 Remove a field with the given index.
void extend (const QgsFields &other)
 Extend with fields from another QgsFields container.
bool isEmpty () const
 Check whether the container is empty.
int count () const
 Return number of items.
int size () const
 Return number of items.
bool exists (int i) const
 Return if a field index is valid.
const QgsFieldoperator[] (int i) const
 Get field at particular index (must be in range 0..N-1)
QgsFieldoperator[] (int i)
 Get field at particular index (must be in range 0..N-1)
const QgsFieldat (int i) const
 Get field at particular index (must be in range 0..N-1)
const QgsFieldfield (int fieldIdx) const
 Get field at particular index (must be in range 0..N-1)
const QgsFieldfield (const QString &name) const
 Get field at particular index (must be in range 0..N-1)
FieldOrigin fieldOrigin (int fieldIdx) const
 Get field's origin (value from an enumeration)
int fieldOriginIndex (int fieldIdx) const
 Get field's origin index (its meaning is specific to each type of origin)
int indexFromName (const QString &name) const
 Look up field's index from name. Returns -1 on error.
QList< QgsFieldtoList () const
 Utility function to return a list of QgsField instances.

Protected Attributes

QVector< FieldmFields
 internal storage of the container
QHash< QString, int > mNameToIndex
 map for quick resolution of name to index

Detailed Description

Container of fields for a vector layer.

In addition to storing a list of QgsField instances, it also:

Definition at line 162 of file qgsfield.h.

Member Typedef Documentation

Member Enumeration Documentation

Enumerator:
OriginUnknown 

it has not been specified where the field comes from

OriginProvider 

field comes from the underlying data provider of the vector layer (originIndex = index in provider's fields)

OriginJoin 

field comes from a joined layer (originIndex / 1000 = index of the join, originIndex % 1000 = index within the join)

OriginEdit 

field has been temporarily added in editing mode (originIndex = index in the list of added attributes)

Definition at line 166 of file qgsfield.h.

Member Function Documentation

bool QgsFields::append ( const QgsField field,
FieldOrigin  origin = OriginProvider,
int  originIndex = -1 
)
const QgsField& QgsFields::at ( int  i) const
inline
void QgsFields::clear ( )

Remove all fields.

Definition at line 131 of file qgsfield.cpp.

References mFields, and mNameToIndex.

int QgsFields::count ( ) const
inline

Return number of items.

Definition at line 196 of file qgsfield.h.

Referenced by QgsAttributeDialog::accept(), QgsVectorLayerEditBuffer::addAttribute(), QgsVectorLayerEditBuffer::addFeature(), QgsVectorLayerFeatureIterator::addJoinedAttributes(), QgsOfflineEditing::applyFeaturesAdded(), QgsVectorLayer::attributeDisplayName(), QgsVectorDataProvider::attributeIndexes(), QgsVectorLayerEditBuffer::changeAttributeValue(), QgsVectorLayer::checkedState(), QgsOverlayAnalyzer::combineFieldLists(), QgsVectorLayerEditBuffer::commitChanges(), QgsOfflineEditing::copyVectorLayer(), QgsFormAnnotationItem::createDesignerWidget(), QgsVectorFileWriter::createFeature(), QgsVectorLayerEditBuffer::deleteAttribute(), QgsVectorLayer::editType(), QgsAttributeAction::expandAction(), extend(), QgsVectorLayer::fieldEditable(), QgsVectorDataProvider::fieldNameIndex(), QgsFeature::fieldNameIndex(), QgsVectorLayer::fieldNameIndex(), QgsVectorDataProvider::fieldNameMap(), QgsVectorDataProvider::fillMinMaxCache(), QgsComposerAttributeTable::getHeaderLabels(), QgsZonalStatistics::getUniqueFieldName(), QgsVectorLayerImport::importLayer(), QgsDataDefinedButton::init(), QgsAttributeDialog::init(), QgsComposerAttributeTable::initializeAliasMap(), QgsLabel::labelField(), QgsVectorLayer::labelOnTop(), QgsAttributeTableModel::loadAttributes(), QgsExpressionBuilderWidget::loadFieldNames(), QgsVectorLayer::pendingAllAttributesList(), QgsVectorLayer::pendingPkAttributesList(), QgsSearchQueryBuilder::populateFields(), QgsQueryBuilder::populateFields(), QgsExpression::NodeColumnRef::prepare(), QgsFeature::QgsFeature(), QgsVectorFileWriter::QgsVectorFileWriter(), QgsVectorLayerFeatureIterator::QgsVectorLayerFeatureIterator(), QgsVectorLayerUndoCommandAddAttribute::QgsVectorLayerUndoCommandAddAttribute(), QgsVectorLayer::range(), QgsLabel::readLabelField(), QgsVectorLayer::setCheckedState(), QgsVectorLayer::setDisplayField(), QgsVectorLayer::setEditType(), QgsVectorLayer::setFieldEditable(), QgsFeature::setFields(), QgsVectorLayer::setLabelOnTop(), QgsFeatureRequest::setSubsetOfAttributes(), QgsProjectFileTransform::transform0110to1000(), QgsVectorLayerJoinBuffer::updateFields(), QgsVectorLayer::valueMap(), and QgsVectorLayer::valueRelation().

bool QgsFields::exists ( int  i) const
inline

Return if a field index is valid.

Parameters
iIndex of the field which needs to be checked
Returns
True if the field exists

Definition at line 202 of file qgsfield.h.

Referenced by QgsVectorLayerFeatureIterator::prepareJoins().

void QgsFields::extend ( const QgsFields other)

Extend with fields from another QgsFields container.

Definition at line 156 of file qgsfield.cpp.

References append(), at(), count(), fieldOrigin(), and fieldOriginIndex().

const QgsField& QgsFields::field ( int  fieldIdx) const
inline

Get field at particular index (must be in range 0..N-1)

Definition at line 211 of file qgsfield.h.

Referenced by QgsTransectSample::createSample(), remove(), and QgsVectorLayerJoinBuffer::updateFields().

const QgsField& QgsFields::field ( const QString &  name) const
inline

Get field at particular index (must be in range 0..N-1)

Definition at line 213 of file qgsfield.h.

FieldOrigin QgsFields::fieldOrigin ( int  fieldIdx) const
inline
int QgsFields::fieldOriginIndex ( int  fieldIdx) const
inline
int QgsFields::indexFromName ( const QString &  name) const
inline
bool QgsFields::isEmpty ( ) const
inline

Check whether the container is empty.

Definition at line 194 of file qgsfield.h.

Referenced by QgsAttributeDialog::init(), and QgsExpressionBuilderWidget::loadFieldNames().

const QgsField& QgsFields::operator[] ( int  i) const
inline

Get field at particular index (must be in range 0..N-1)

Definition at line 205 of file qgsfield.h.

QgsField& QgsFields::operator[] ( int  i)
inline

Get field at particular index (must be in range 0..N-1)

Definition at line 207 of file qgsfield.h.

void QgsFields::remove ( int  fieldIdx)

Remove a field with the given index.

Definition at line 150 of file qgsfield.cpp.

References field(), mFields, mNameToIndex, and QgsField::name().

Referenced by QgsVectorLayerEditBuffer::updateFields().

int QgsFields::size ( ) const
inline
QList< QgsField > QgsFields::toList ( ) const

Utility function to return a list of QgsField instances.

Definition at line 164 of file qgsfield.cpp.

References mFields.

Referenced by QgsDualView::columnBoxInit(), QgsGeometryAnalyzer::eventLayer(), and QgsRelationAddDlg::loadLayerAttributes().

Member Data Documentation

QVector<Field> QgsFields::mFields
protected

internal storage of the container

Definition at line 228 of file qgsfield.h.

Referenced by append(), clear(), remove(), and toList().

QHash<QString, int> QgsFields::mNameToIndex
protected

map for quick resolution of name to index

Definition at line 231 of file qgsfield.h.

Referenced by append(), clear(), and remove().


The documentation for this class was generated from the following files: