16#ifndef QGSATTRIBUTESFORMPROPERTIES_H
17#define QGSATTRIBUTESFORMPROPERTIES_H
24#include <QTableWidget>
28#include <QTreeWidgetItem>
30#include <QTableWidgetItem>
35#include <QPlainTextEdit>
37#include "ui_qgsattributesformproperties.h"
45class QgsAttributeFormContainerEdit;
46class QgsAttributeTypeDialog;
47class QgsAttributeWidgetEdit;
61 DnDTreeRole = Qt::UserRole,
73 bool forceSuppressFormPopup =
false;
94 bool drawLine =
false;
120 DnDTreeItemData(
Type type,
const QString &name,
const QString &displayName,
const QColor &backgroundColor = QColor() )
123 , mDisplayName( displayName )
124 , mBackgroundColor( backgroundColor )
127 QString
name()
const {
return mName; }
128 void setName(
const QString &name ) { mName = name; }
131 void setDisplayName(
const QString &displayName ) { mDisplayName = displayName; }
136 operator QVariant() {
return QVariant::fromValue<DnDTreeItemData>( *
this ); }
190 bool showLabel()
const;
191 void setShowLabel(
bool showLabel );
284 QColor backgroundColor()
const;
285 void setBackgroundColor(
const QColor &backgroundColor );
302 QString mDisplayName;
303 int mColumnCount = 1;
305 bool mShowLabel =
true;
306 int mHorizontalStretch = 0;
307 int mVerticalStretch = 0;
314 QColor mBackgroundColor;
315 bool mCollapsed =
false;
329 bool mEditable =
true;
330 bool mLabelOnTop =
false;
331 bool mReuseLastValues =
false;
333 QPushButton *mButton =
nullptr;
368 void initAvailableWidgetsTree();
369 void initFormLayoutTree();
370 void initLayoutConfig();
371 void initInitPython();
372 void initSuppressCombo();
385 QgsAttributeWidgetEdit *mAttributeWidgetEdit =
nullptr;
386 QgsAttributeTypeDialog *mAttributeTypeDialog =
nullptr;
387 QgsAttributeFormContainerEdit *mAttributeContainerEdit =
nullptr;
388 QLabel *mInfoTextWidget =
nullptr;
392 void removeTabOrGroupButton();
393 void mEditorLayoutComboBox_currentIndexChanged(
int index );
394 void pbnSelectEditForm_clicked();
395 void mTbInitCode_clicked();
397 void onInvertSelectionButtonClicked(
bool checked );
399 void onAttributeSelectionChanged();
400 void onFormLayoutSelectionChanged();
402 void updatedFields();
406 void clearAttributeTypeFrame();
408 void loadAttributeWidgetEdit();
409 void storeAttributeWidgetEdit();
411 void loadAttributeTypeDialog();
412 void storeAttributeTypeDialog( );
414 void storeAttributeContainerEdit();
415 void loadAttributeContainerEdit();
417 void loadInfoWidget(
const QString &infoText );
422 QString mInitFunction;
423 QString mInitFilePath;
425 int mBlockUpdates = 0;
479 void dragMoveEvent( QDragMoveEvent *event )
override;
480 void dropEvent( QDropEvent *event )
override;
481 bool dropMimeData( QTreeWidgetItem *parent,
int index,
const QMimeData *data, Qt::DropAction action )
override;
486 QStringList mimeTypes()
const override;
488#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
489 QMimeData *mimeData(
const QList<QTreeWidgetItem *> items )
const override;
491 QMimeData *mimeData(
const QList<QTreeWidgetItem *> &items )
const override;
495 void onItemDoubleClicked( QTreeWidgetItem *item,
int column );
AttributeEditorContainerType
Attribute editor container types.
AttributeFormPythonInitCodeSource
The Python init code source for attribute forms.
@ NoSource
Do not use Python code at all.
FieldDomainSplitPolicy
Split policy for field domains.
@ Duplicate
Duplicate original value.
FieldDuplicatePolicy
Duplicate policy for fields.
@ Duplicate
Duplicate original value.
This is an abstract base class for any elements of a drag and drop form.
This class overrides mime type handling to be able to work with the drag and drop attribute editor.
Abstract interface for generating an expression context.
virtual QgsExpressionContext createExpressionContext() const =0
This method needs to be reimplemented in all classes which implement this interface and return an exp...
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Stores information about constraints which may be present on a field.
An expression with an additional enabled flag.
A grouped map of multiple QgsProperty objects, each referenced by a integer key value.
Represents a vector layer which manages a vector based data sets.
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)
The TabStyle struct defines color and font overrides for form fields, tabs and groups labels.