Krita Source Code Documentation
Loading...
Searching...
No Matches
TableDelegate Class Reference

#include <TableModel.h>

+ Inheritance diagram for TableDelegate:

Public Member Functions

void addBooleanColumn (int column)
 
void addDateTimeColumn (int column)
 
QWidget * createEditor (QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
 
bool editorEvent (QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override
 
void paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
 
void setEditable (bool editable)
 
QSize sizeHint (const QStyleOptionViewItem &option, const QModelIndex &index) const override
 
 TableDelegate (QObject *parent)
 

Private Attributes

QVector< int > m_booleanColumns
 
QVector< int > m_dateTimeColumns
 
bool m_editable {false}
 

Detailed Description

Definition at line 14 of file TableModel.h.

Constructor & Destructor Documentation

◆ TableDelegate()

TableDelegate::TableDelegate ( QObject * parent)

Definition at line 11 of file TableModel.cpp.

12 : QSqlRelationalDelegate(parent)
13{}

Member Function Documentation

◆ addBooleanColumn()

void TableDelegate::addBooleanColumn ( int column)

Definition at line 80 of file TableModel.cpp.

81{
82 m_booleanColumns << column;
83}
QVector< int > m_booleanColumns
Definition TableModel.h:32

References m_booleanColumns.

◆ addDateTimeColumn()

void TableDelegate::addDateTimeColumn ( int column)

Definition at line 75 of file TableModel.cpp.

76{
77 m_dateTimeColumns << column;
78}
QVector< int > m_dateTimeColumns
Definition TableModel.h:33

References m_dateTimeColumns.

◆ createEditor()

QWidget * TableDelegate::createEditor ( QWidget * parent,
const QStyleOptionViewItem & option,
const QModelIndex & index ) const
override

Definition at line 60 of file TableModel.cpp.

61{
62 if (m_editable) {
63 if (m_booleanColumns.contains(index.column())) {
64 QStyleOptionViewItem optionCheckable = option;
65 optionCheckable.features |= QStyleOptionViewItem::HasCheckIndicator;
66 optionCheckable.rect = getNewRect(option);
67 return QSqlRelationalDelegate::createEditor(parent, optionCheckable, index);
68 } else {
69 return QSqlRelationalDelegate::createEditor(parent, option, index);
70 }
71 }
72 return 0;
73}
QRect getNewRect(const QStyleOptionViewItem &option)

References getNewRect(), m_booleanColumns, and m_editable.

◆ editorEvent()

bool TableDelegate::editorEvent ( QEvent * event,
QAbstractItemModel * model,
const QStyleOptionViewItem & option,
const QModelIndex & index )
override

Definition at line 45 of file TableModel.cpp.

46{
47 if (m_editable) {
48 if (m_booleanColumns.contains(index.column())) {
49 QStyleOptionViewItem optionCheckable = option;
50 optionCheckable.rect = getNewRect(option);
51 optionCheckable.features |= QStyleOptionViewItem::HasCheckIndicator;
52 return QSqlRelationalDelegate::editorEvent(event, model, optionCheckable, index);
53 } else {
54 return QSqlRelationalDelegate::editorEvent(event, model, option, index);
55 }
56 }
57 return false;
58}

References getNewRect(), m_booleanColumns, and m_editable.

◆ paint()

void TableDelegate::paint ( QPainter * painter,
const QStyleOptionViewItem & option,
const QModelIndex & index ) const
override

Definition at line 28 of file TableModel.cpp.

29{
30 QStyleOptionViewItem viewItemOption(option);
31 // Only do this if we are accessing the column with boolean variables.
32 if (m_booleanColumns.contains(index.column())) {
33 // This basically changes the rectangle in which the check box is drawn.
34 viewItemOption.rect = getNewRect(option);
35 }
36 // Draw the check box using the new rectangle.
37 QSqlRelationalDelegate::paint(painter, viewItemOption, index);
38}

References getNewRect(), and m_booleanColumns.

◆ setEditable()

void TableDelegate::setEditable ( bool editable)

Definition at line 85 of file TableModel.cpp.

86{
87 m_editable = editable;
88}

References m_editable.

◆ sizeHint()

QSize TableDelegate::sizeHint ( const QStyleOptionViewItem & option,
const QModelIndex & index ) const
override

Definition at line 40 of file TableModel.cpp.

41{
42 return QSqlRelationalDelegate::sizeHint(option, index);
43}

Member Data Documentation

◆ m_booleanColumns

QVector<int> TableDelegate::m_booleanColumns
private

Definition at line 32 of file TableModel.h.

◆ m_dateTimeColumns

QVector<int> TableDelegate::m_dateTimeColumns
private

Definition at line 33 of file TableModel.h.

◆ m_editable

bool TableDelegate::m_editable {false}
private

Definition at line 31 of file TableModel.h.

31{false};

The documentation for this class was generated from the following files: