18 #ifndef QGSTABLEEDITORWIDGET_H
19 #define QGSTABLEEDITORWIDGET_H
24 #include <QTableWidget>
25 #include <QPlainTextEdit>
26 #include <QStyledItemDelegate>
32 class QgsTableEditorTextEdit :
public QPlainTextEdit
36 QgsTableEditorTextEdit( QWidget *parent );
42 void setWeakEditorMode(
bool weakEditorMode );
44 void setWidgetOwnsGeometry(
bool value )
46 mWidgetOwnsGeometry = value;
51 void resizeToContents();
54 void changeEvent( QEvent *e )
override;
56 void keyPressEvent( QKeyEvent *e )
override;
60 void updateMinimumSize();
62 bool mWeakEditorMode =
false;
63 int mOriginalWidth = -1;
64 int mOriginalHeight = -1;
65 bool mWidgetOwnsGeometry =
false;
69 class QgsTableEditorDelegate :
public QStyledItemDelegate
73 QgsTableEditorDelegate( QObject *parent );
79 void setWeakEditorMode(
bool weakEditorMode );
83 void updateNumericFormatForIndex(
const QModelIndex &index )
const;
86 QWidget *createEditor( QWidget *parent,
const QStyleOptionViewItem & ,
const QModelIndex &index )
const override;
87 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
88 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
92 bool mWeakEditorMode =
false;
93 mutable QModelIndex mLastIndex;
162 bool hasMixedSelectionNumericFormat();
175 Q_DECL_DEPRECATED QColor selectionForegroundColor()
SIP_DEPRECATED;
186 QColor selectionBackgroundColor();
196 Qt::Alignment selectionHorizontalAlignment();
206 Qt::Alignment selectionVerticalAlignment();
233 double selectionRowHeight();
241 double selectionColumnWidth();
247 double tableRowHeight(
int row );
253 double tableColumnWidth(
int column );
263 void setTableRowHeight(
int row,
double height );
273 void setTableColumnWidth(
int column,
double width );
280 QList<int> rowsAssociatedWithSelection();
287 QList<int> columnsAssociatedWithSelection();
294 QVariantList tableHeaders()
const;
299 bool isHeaderCellSelected();
308 void insertRowsBelow();
315 void insertRowsAbove();
322 void insertColumnsBefore();
329 void insertColumnsAfter();
343 void deleteColumns();
350 void expandRowSelection();
357 void expandColumnSelection();
362 void clearSelectedCells();
372 Q_DECL_DEPRECATED
void setSelectionForegroundColor(
const QColor &color )
SIP_DEPRECATED;
380 void setSelectionBackgroundColor(
const QColor &color );
390 void setSelectionHorizontalAlignment( Qt::Alignment alignment );
400 void setSelectionVerticalAlignment( Qt::Alignment alignment );
407 void setSelectionCellProperty(
const QgsProperty &property );
421 void setSelectionRowHeight(
double height );
428 void setSelectionColumnWidth(
double height );
433 void setIncludeTableHeader(
bool included );
440 void setTableHeaders(
const QVariantList &headers );
443 void keyPressEvent( QKeyEvent *event )
override;
455 void activeCellChanged();
459 void updateNumericFormatForIndex(
const QModelIndex &index );
466 PresetBackgroundColorRole = Qt::UserRole + 1,
476 void updateHeaders();
478 bool collectConsecutiveRowRange(
const QModelIndexList &list,
int &minRow,
int &maxRow )
const;
479 bool collectConsecutiveColumnRange(
const QModelIndexList &list,
int &minColumn,
int &maxColumn )
const;
480 QList< int > collectUniqueRows(
const QModelIndexList &list )
const;
481 QList< int > collectUniqueColumns(
const QModelIndexList &list )
const;
483 int mBlockSignals = 0;
484 QHash< QTableWidgetItem *, QgsNumericFormat * > mNumericFormats;
485 QMenu *mHeaderMenu =
nullptr;
486 bool mIncludeHeader =
false;
487 bool mFirstSet =
true;
489 friend class QgsTableEditorDelegate;
493 #endif // QGSTABLEEDITORWIDGET_H