18#ifndef QGSLAYOUTATTRIBUTESELECTIONDIALOG_H
19#define QGSLAYOUTATTRIBUTESELECTIONDIALOG_H
24#include "ui_qgslayoutattributeselectiondialogbase.h"
30#include <QAbstractTableModel>
32#include <QItemDelegate>
35#include <QSortFilterProxyModel>
43class QgsLayoutTableAvailableSortProxyModel;
89 virtual QVector<QgsLayoutTableColumn> &
columns()
const = 0;
94 int rowCount(
const QModelIndex &
parent = QModelIndex() )
const override;
96 QVariant
data(
const QModelIndex &
index,
int role )
const override;
97 QVariant
headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
98 bool setData(
const QModelIndex &
index,
const QVariant &value,
int role = Qt::EditRole )
override;
99 Qt::ItemFlags
flags(
const QModelIndex &
index )
const override;
100 bool removeRows(
int row,
int count,
const QModelIndex &
parent = QModelIndex() )
override;
101 bool insertRows(
int row,
int count,
const QModelIndex &
parent = QModelIndex() )
override;
102 QModelIndex
index(
int row,
int column,
const QModelIndex &
parent )
const override;
103 QModelIndex
parent(
const QModelIndex &child )
const override;
139 QVector<QgsLayoutTableColumn> &columns()
const override;
174 QVector<QgsLayoutTableColumn> &columns()
const override;
196 QWidget *
createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
197 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
198 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
199 void updateEditorGeometry( QWidget *editor,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
222 QWidget *
createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
223 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
224 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
225 void updateEditorGeometry( QWidget *editor,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
227 void commitAndCloseEditor();
232 bool mForceExpressions =
false;
250 QWidget *
createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
251 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
252 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
253 void updateEditorGeometry( QWidget *editor,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
270 QWidget *
createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
271 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
272 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
273 void updateEditorGeometry( QWidget *editor,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
292 void mRemoveColumnPushButton_clicked();
293 void mAddColumnPushButton_clicked();
294 void mColumnUpPushButton_clicked();
295 void mColumnDownPushButton_clicked();
296 void mResetColumnsPushButton_clicked();
297 void mClearColumnsPushButton_clicked();
298 void mAddSortColumnPushButton_clicked();
299 void mRemoveSortColumnPushButton_clicked();
300 void mSortColumnUpPushButton_clicked();
301 void mSortColumnDownPushButton_clicked();
Abstract interface for generating an expression context.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
QgsLayoutAttributeSelectionDialog(QgsLayoutItemAttributeTable *table, QgsVectorLayer *vLayer, QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
constructor
A base model to hold the displaying or sorting columns used in a QgsLayoutAttributeTable.
QModelIndex index(int row, int column, const QModelIndex &parent) const override
Column
Available columns for the configuration table to be used by the model.
@ SortOrder
Defines the sort order.
@ Width
Defines the width of the column.
@ Heading
Defines the title of the column.
@ Attribute
Attribute for a field or an expression.
@ Alignment
Defines the alignment of the column.
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
bool moveRow(int row, ShiftDirection direction)
Moves the specified row up or down in the model.
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
virtual QVector< QgsLayoutTableColumn > & columns() const =0
To be reimplemented to provide the display or the sort columns.
QVariant data(const QModelIndex &index, int role) const override
QgsLayoutAttributeTableColumnModelBase(QgsLayoutItemAttributeTable *table, QObject *parent=nullptr)
Constructor for QgsLayoutAttributeTableColumnModel.
int columnCount(const QModelIndex &parent=QModelIndex()) const override
virtual QList< Column > displayedColumns() const =0
To be reimplemented to choose which column should be used by the model.
QgsLayoutItemAttributeTable * mTable
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Qt::ItemFlags flags(const QModelIndex &index) const override
QModelIndex parent(const QModelIndex &child) const override
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
ShiftDirection
Controls whether a row/column is shifted up or down.
@ ShiftUp
Shift the row/column up.
@ ShiftDown
Shift the row/column down.
bool insertRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
A model for displaying columns shown in a QgsLayoutAttributeTable.
QList< Column > displayedColumns() const override
To be reimplemented to choose which column should be used by the model.
QgsLayoutAttributeTableColumnModel(QgsLayoutItemAttributeTable *table, QObject *parent=nullptr)
Constructor for QgsLayoutAttributeTableColumnModel.
A delegate for showing column alignment as a combo box.
void setEditorData(QWidget *editor, const QModelIndex &index) const override
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
QgsLayoutColumnAlignmentDelegate(QObject *parent=nullptr)
constructor
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
A delegate for showing column sort order as a combo box.
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
void setEditorData(QWidget *editor, const QModelIndex &index) const override
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
QgsLayoutColumnSortOrderDelegate(QObject *parent=nullptr)
constructor
A delegate for showing column attribute source as a QgsFieldExpressionWidget.
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
QgsLayoutColumnSourceDelegate(QgsVectorLayer *vlayer, QObject *parent=nullptr, const QgsLayoutObject *layoutObject=nullptr, bool forceExpressions=false)
Constructor for QgsLayoutColumnSourceDelegate.
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void setEditorData(QWidget *editor, const QModelIndex &index) const override
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
A delegate for showing column width as a spin box.
void setEditorData(QWidget *editor, const QModelIndex &index) const override
QgsLayoutColumnWidthDelegate(QObject *parent=nullptr)
constructor
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
A layout table subclass that displays attributes from a vector layer.
A base class for objects which belong to a layout.
Stores properties of a column for a QgsLayoutTable.
Allows for filtering QgsComposerAttributeTable columns by columns which are sorted or unsorted.
QgsLayoutTableSortModel(QgsLayoutItemAttributeTable *table, QObject *parent=nullptr)
Constructor for QgsLayoutTableSortColumnsProxyModel.
QList< Column > displayedColumns() const override
To be reimplemented to choose which column should be used by the model.
Represents a vector layer which manages a vector based dataset.