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 ) );
429 static QIcon iconForFieldType( QVariant::Type type, QVariant::Type subType = QVariant::Type::Invalid );
432 operator QVariant()
const
434 return QVariant::fromValue( *
this );
441 int idx = ( int )sipConvertFromSequenceIndex( a0, sipCpp->count() );
445 ( *sipCpp )[idx] = *a1;
454 class const_iterator;
460 typedef std::random_access_iterator_tag iterator_category;
461 typedef qptrdiff difference_type;
472 inline QgsField &operator[]( difference_type j )
const {
return d[j].
field; }
473 inline bool operator==(
const iterator &o )
const noexcept {
return d == o.d; }
474 inline bool operator!=(
const iterator &o )
const noexcept {
return d != o.d; }
475 inline bool operator<(
const iterator &other )
const noexcept {
return d < other.d; }
476 inline bool operator<=(
const iterator &other )
const noexcept {
return d <= other.d; }
477 inline bool operator>(
const iterator &other )
const noexcept {
return d > other.d; }
478 inline bool operator>=(
const iterator &other )
const noexcept {
return d >= other.d; }
480 inline iterator &operator++() { ++d;
return *
this; }
481 inline iterator operator++(
int ) {
QgsFields::Field *n = d; ++d;
return n; }
482 inline iterator &operator--() { d--;
return *
this; }
483 inline iterator operator--(
int ) {
QgsFields::Field *n = d; d--;
return n; }
484 inline iterator &operator+=( difference_type j ) { d += j;
return *
this; }
485 inline iterator &operator-=( difference_type j ) { d -= j;
return *
this; }
486 inline iterator
operator+( difference_type j )
const {
return iterator( d + j ); }
487 inline iterator
operator-( difference_type j )
const {
return iterator( d - j ); }
488 inline int operator-( iterator j )
const {
return int( d - j.d ); }
490 friend class iterator;
497 typedef std::random_access_iterator_tag iterator_category;
498 typedef qptrdiff difference_type;
500 inline const_iterator()
505 inline const_iterator(
const const_iterator &o )
507 inline explicit const_iterator(
const iterator &o )
510 inline const QgsField *operator->()
const {
return &d->
field; }
511 inline const QgsField &operator[]( difference_type j )
const noexcept {
return d[j].
field; }
512 inline bool operator==(
const const_iterator &o )
const noexcept {
return d == o.d; }
513 inline bool operator!=(
const const_iterator &o )
const noexcept {
return d != o.d; }
514 inline bool operator<(
const const_iterator &other )
const noexcept {
return d < other.d; }
515 inline bool operator<=(
const const_iterator &other )
const noexcept {
return d <= other.d; }
516 inline bool operator>(
const const_iterator &other )
const noexcept {
return d > other.d; }
517 inline bool operator>=(
const const_iterator &other )
const noexcept {
return d >= other.d; }
518 inline const_iterator &operator++() { ++d;
return *
this; }
519 inline const_iterator operator++(
int ) {
const QgsFields::Field *n = d; ++d;
return n; }
520 inline const_iterator &operator--() { d--;
return *
this; }
521 inline const_iterator operator--(
int ) {
const QgsFields::Field *n = d; --d;
return n; }
522 inline const_iterator &operator+=( difference_type j ) { d += j;
return *
this; }
523 inline const_iterator &operator-=( difference_type j ) { d -= j;
return *
this; }
524 inline const_iterator
operator+( difference_type j )
const {
return const_iterator( d + j ); }
525 inline const_iterator
operator-( difference_type j )
const {
return const_iterator( d - j ); }
526 inline int operator-( const_iterator j )
const {
return int( d - j.d ); }
528 const_iterator &operator= (
const const_iterator & ) =
delete;
530 friend class const_iterator;
540 const_iterator constBegin() const noexcept;
548 const_iterator constEnd() const noexcept;
556 const_iterator begin() const noexcept;
564 const_iterator end() const noexcept;
587 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.