21 #include "qgis_core.h" 
   24 class QgsFieldsPrivate;
 
   79       int originIndex = -1 ;     
 
  105     bool append( 
const QgsField &
field, FieldOrigin origin = OriginProvider, 
int originIndex = -1 );
 
  111     bool rename( 
int fieldIdx, 
const QString &name );
 
  114     bool appendExpressionField( 
const QgsField &
field, 
int originIndex );
 
  121     void remove( 
int fieldIdx );
 
  129     void remove( 
int fieldIdx );
 
  131     if ( a0 < 0 || a0 >= sipCpp->count() )
 
  133       PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
 
  138       sipCpp->remove( a0 );
 
  147     bool isEmpty() 
const;
 
  155     sipRes = sipCpp->count();
 
  159     int __bool__() 
const;
 
  172     QStringList names() 
const;
 
  179     bool exists( 
int i ) 
const;
 
  190     SIP_SSIZE_T idx = sipConvertFromSequenceIndex( a0, sipCpp->count() );
 
  194       sipRes = 
new QgsField( sipCpp->operator[]( idx ) );
 
  212     if ( a0 < 0 || a0 >= sipCpp->count() )
 
  214       PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
 
  219       sipRes = 
new QgsField( sipCpp->at( a0 ) );
 
  238     if ( a0 < 0 || a0 >= sipCpp->count() )
 
  240       PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
 
  245       sipRes = 
new QgsField( sipCpp->field( a0 ) );
 
  264     int fieldIdx = sipCpp->indexFromName( *a0 );
 
  265     if ( fieldIdx == -1 )
 
  267       PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
 
  272       sipRes = 
new QgsField( sipCpp->field( *a0 ) );
 
  282     FieldOrigin fieldOrigin( 
int fieldIdx ) 
const;
 
  290     FieldOrigin fieldOrigin( 
int fieldIdx ) 
const;
 
  292     if ( a0 < 0 || a0 >= sipCpp->count() )
 
  294       PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
 
  299       sipRes = sipCpp->fieldOrigin( a0 );
 
  309     int fieldOriginIndex( 
int fieldIdx ) 
const;
 
  317     int fieldOriginIndex( 
int fieldIdx ) 
const;
 
  319     if ( a0 < 0 || a0 >= sipCpp->count() )
 
  321       PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
 
  326       sipRes = sipCpp->fieldOriginIndex( a0 );
 
  344     int indexFromName( 
const QString &fieldName ) 
const;
 
  358     int indexOf( 
const QString &fieldName ) 
const;
 
  374     int lookupField( 
const QString &fieldName ) 
const;
 
  383     QList<QgsField> toList() 
const;
 
  398     QIcon iconForField( 
int fieldIdx, 
bool considerOrigin = 
false ) const 
SIP_FACTORY;
 
  408     QIcon iconForField( 
int fieldIdx, 
bool considerOrigin = 
false ) const 
SIP_FACTORY;
 
  410     if ( a0 < 0 || a0 >= sipCpp->count() )
 
  412       PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
 
  417       sipRes = 
new QIcon( sipCpp->iconForField( a0 ) );
 
  426     static QIcon iconForFieldType( 
const QVariant::Type &type ) 
SIP_FACTORY;
 
  429     operator QVariant()
 const 
  431       return QVariant::fromValue( *
this );
 
  438     int idx = ( int )sipConvertFromSequenceIndex( a0, sipCpp->count() );
 
  442       ( *sipCpp )[idx] = *a1;
 
  451     class const_iterator;
 
  457         typedef std::random_access_iterator_tag  iterator_category;
 
  458         typedef qptrdiff difference_type;
 
  469         inline QgsField &operator[]( difference_type j )
 const { 
return d[j].
field; }
 
  470         inline bool operator==( 
const iterator &o ) 
const noexcept { 
return d == o.d; } 
 
  471         inline bool operator!=( 
const iterator &o ) 
const noexcept { 
return d != o.d; } 
 
  472         inline bool operator<( 
const iterator &other ) 
const noexcept { 
return d < other.d; } 
 
  473         inline bool operator<=( 
const iterator &other ) 
const noexcept { 
return d <= other.d; } 
 
  474         inline bool operator>( 
const iterator &other ) 
const noexcept { 
return d > other.d; } 
 
  475         inline bool operator>=( 
const iterator &other ) 
const noexcept { 
return d >= other.d; } 
 
  477         inline iterator &operator++() { ++d; 
return *
this; }
 
  478         inline iterator operator++( 
int ) { 
QgsFields::Field *n = d; ++d; 
return n; }
 
  479         inline iterator &operator--() { d--; 
return *
this; }
 
  480         inline iterator operator--( 
int ) { 
QgsFields::Field *n = d; d--; 
return n; }
 
  481         inline iterator &operator+=( difference_type j ) { d += j; 
return *
this; }
 
  482         inline iterator &operator-=( difference_type j ) { d -= j; 
return *
this; }
 
  483         inline iterator 
operator+( difference_type j )
 const { 
return iterator( d + j ); }
 
  484         inline iterator 
operator-( difference_type j )
 const { 
return iterator( d - j ); }
 
  485         inline int operator-( iterator j )
 const { 
return int( d - j.d ); }
 
  487     friend class iterator;
 
  494         typedef std::random_access_iterator_tag  iterator_category;
 
  495         typedef qptrdiff difference_type;
 
  497         inline const_iterator()
 
  502         inline const_iterator( 
const const_iterator &o )
 
  504         inline explicit const_iterator( 
const iterator &o ) 
 
  507         inline const QgsField *operator->()
 const { 
return &d->
field; }
 
  508         inline const QgsField &operator[]( difference_type j ) 
const noexcept { 
return d[j].
field; }
 
  509         inline bool operator==( 
const const_iterator &o ) 
const noexcept { 
return d == o.d; }
 
  510         inline bool operator!=( 
const const_iterator &o ) 
const noexcept { 
return d != o.d; }
 
  511         inline bool operator<( 
const const_iterator &other ) 
const noexcept { 
return d < other.d; }
 
  512         inline bool operator<=( 
const const_iterator &other ) 
const noexcept { 
return d <= other.d; }
 
  513         inline bool operator>( 
const const_iterator &other ) 
const noexcept { 
return d > other.d; }
 
  514         inline bool operator>=( 
const const_iterator &other ) 
const noexcept { 
return d >= other.d; }
 
  515         inline const_iterator &operator++() { ++d; 
return *
this; }
 
  516         inline const_iterator operator++( 
int ) { 
const QgsFields::Field *n = d; ++d; 
return n; }
 
  517         inline const_iterator &operator--() { d--; 
return *
this; }
 
  518         inline const_iterator operator--( 
int ) { 
const QgsFields::Field *n = d; --d; 
return n; }
 
  519         inline const_iterator &operator+=( difference_type j ) { d += j; 
return *
this; }
 
  520         inline const_iterator &operator-=( difference_type j ) { d -= j; 
return *
this; }
 
  521         inline const_iterator 
operator+( difference_type j )
 const { 
return const_iterator( d + j ); }
 
  522         inline const_iterator 
operator-( difference_type j )
 const { 
return const_iterator( d - j ); }
 
  523         inline int operator-( const_iterator j )
 const { 
return int( d - j.d ); } 
 
  525         const_iterator &operator= ( 
const const_iterator & ) = 
delete;
 
  527     friend class const_iterator;
 
  537     const_iterator constBegin() const noexcept;
 
  545     const_iterator constEnd() const noexcept;
 
  553     const_iterator begin() const noexcept;
 
  561     const_iterator end() const noexcept;
 
  584     QSharedDataPointer<QgsFieldsPrivate> d;
 
Encapsulate a field in an attribute table or data source.
Container of fields for a vector layer.
bool operator!=(const QgsFields &other) const
@ OriginEdit
Field has been temporarily added in editing mode (originIndex = index in the list of added attributes...
@ OriginUnknown
It has not been specified where the field comes from.
@ OriginJoin
Field comes from a joined layer (originIndex / 1000 = index of the join, originIndex % 1000 = index w...
@ OriginProvider
Field comes from the underlying data provider of the vector layer (originIndex = index in provider's ...
bool operator>(const QVariant &v1, const QVariant &v2)
Compares two QVariant values and returns whether the first is greater than the second.
bool operator<(const QVariant &v1, const QVariant &v2)
Compares two QVariant values and returns whether the first is less than the second.
bool operator>=(const QgsCoordinateReferenceSystem &c1, const QgsCoordinateReferenceSystem &c2)
bool operator<=(const QgsCoordinateReferenceSystem &c1, const QgsCoordinateReferenceSystem &c2)
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
QList< int > QgsAttributeList
CORE_EXPORT QDataStream & operator<<(QDataStream &out, const QgsFields &fields)
Writes the fields to stream out. QGIS version compatibility is not guaranteed.
CORE_EXPORT QDataStream & operator>>(QDataStream &in, QgsFields &fields)
Reads fields from stream in into fields. QGIS version compatibility is not guaranteed.
QgsInterval operator-(const QDateTime &dt1, const QDateTime &dt2)
Returns the interval between two datetimes.
QDateTime operator+(const QDateTime &start, const QgsInterval &interval)
Adds an interval to a datetime.
QgsMargins operator*(const QgsMargins &margins, double factor)
Returns a QgsMargins object that is formed by multiplying each component of the given margins by fact...
Q_DECLARE_METATYPE(QgsMeshTimeSettings)
int originIndex
Index specific to the origin.
bool operator==(const Field &other) const
bool operator!=(const Field &other) const
Field(const QgsField &f, FieldOrigin o, int oi)
FieldOrigin origin
Origin of the field.