16#ifndef QGSATTRIBUTESFORMMODEL_H
17#define QGSATTRIBUTESFORMMODEL_H
28#include <QAbstractItemModel>
30#include <QSortFilterProxyModel>
70 bool mEditable =
true;
71 bool mLabelOnTop =
false;
72 bool mReuseLastValues =
false;
74 QPushButton *mButton =
nullptr;
94 bool forceSuppressFormPopup =
false;
115 bool drawLine =
false;
131 operator QVariant() {
return QVariant::fromValue<AttributeFormItemData>( *
this ); }
189 bool showLabel()
const;
192 void setShowLabel(
bool showLabel );
328 QColor backgroundColor()
const;
335 void setBackgroundColor(
const QColor &backgroundColor );
350 int mColumnCount = 1;
352 bool mShowLabel =
true;
353 int mHorizontalStretch = 0;
354 int mVerticalStretch = 0;
361 QColor mBackgroundColor;
362 bool mCollapsed =
false;
431 int childCount()
const;
448 QVariant data(
int role )
const;
453 bool setData(
int role,
const QVariant &value );
458 void addChild( std::unique_ptr< QgsAttributesFormItem > &&child );
463 void insertChild(
int position, std::unique_ptr< QgsAttributesFormItem > &&item );
468 void deleteChildAtIndex(
int index );
473 void deleteChildren();
483 QString
id()
const {
return mId; }
488 QString
name()
const {
return mName; }
500 QIcon
icon()
const {
return mIcon; }
507 void setIcon(
const QIcon &icon ) { mIcon = icon; }
510 QString mName = QString();
511 QString mDisplayName = QString();
514 QString mId = QString();
518 std::vector< std::unique_ptr< QgsAttributesFormItem > > mChildren;
545 ItemDataRole = Qt::UserRole,
562 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
563 QModelIndex parent(
const QModelIndex &index )
const override;
565 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
566 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
587 bool showAliases()
const;
594 void setShowAliases(
bool show );
621 bool indexLessThan(
const QModelIndex &a,
const QModelIndex &b )
const;
639 void emitDataChangedRecursively(
const QModelIndex &parent = QModelIndex(),
const QVector<int> &roles = QVector<int>() );
645 bool mShowAliases =
false;
668 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
669 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
671 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole )
const override;
672 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
674 Qt::DropActions supportedDragActions()
const override;
675 QStringList mimeTypes()
const override;
676 QMimeData *mimeData(
const QModelIndexList &indexes )
const override;
683 QModelIndex fieldContainer()
const;
690 QModelIndex relationContainer()
const;
697 QModelIndex actionContainer()
const;
702 QModelIndex fieldModelIndex(
const QString &fieldName )
const;
705 void populate()
override;
712 void populateLayerActions(
const QList< QgsAction > actions );
720 void populateActionItems(
const QList<QgsAction> actions );
744 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
745 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
747 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole )
const override;
748 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
753 bool removeRow(
int row,
const QModelIndex &parent = QModelIndex() );
755 Qt::DropActions supportedDragActions()
const override;
756 Qt::DropActions supportedDropActions()
const override;
757 QStringList mimeTypes()
const override;
758 QMimeData *mimeData(
const QModelIndexList &indexes )
const override;
759 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent )
override;
760 bool removeRows(
int row,
int count,
const QModelIndex &parent = QModelIndex() )
override;
770 QList< QgsAddAttributeFormContainerDialog::ContainerPair > listOfContainers()
const;
787 void updateAliasForFieldItems(
const QString &fieldName,
const QString &fieldAlias );
797 void populate()
override;
806 void updateAliasForFieldItemsRecursive(
QgsAttributesFormItem *parent,
const QString &fieldName,
const QString &fieldAlias );
807 QList< QgsAddAttributeFormContainerDialog::ContainerPair > recursiveListOfContainers(
QgsAttributesFormItem *parent )
const;
818 QModelIndexList curateIndexesForMimeData(
const QModelIndexList &indexes )
const;
847 const QString filterText()
const;
851 void setFilterText(
const QString &filterText = QString() );
854 bool filterAcceptsRow(
int sourceRow,
const QModelIndex &sourceParent )
const override;
AttributeEditorContainerType
Attribute editor container types.
FieldDomainMergePolicy
Merge policy for field domains.
@ DefaultValue
Use default field value.
FieldDomainSplitPolicy
Split policy for field domains.
@ Duplicate
Duplicate original value.
FieldDuplicatePolicy
Duplicate policy for fields.
@ Duplicate
Duplicate original value.
An abstract base class for any elements of a drag and drop form.
Stores information about constraints which may be present on a field.
An expression with an additional enabled flag.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
A grouped map of multiple QgsProperty objects, each referenced by an integer key value.
Represents a vector layer which manages a vector based dataset.
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)
The TabStyle struct defines color and font overrides for form fields, tabs and groups labels.