Krita Source Code Documentation
Loading...
Searching...
No Matches
TableModel.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2018 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef TABLEMODEL_H
7#define TABLEMODEL_H
8
9#include <QObject>
10#include <QSqlRelationalDelegate>
11#include <QSqlRelationalTableModel>
12#include <QSqlDatabase>
13
14class TableDelegate : public QSqlRelationalDelegate
15{
16 Q_OBJECT
17public:
18
19 TableDelegate(QObject *parent);
20
21 void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
22 QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
23 bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override;
24 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
25
26 void addDateTimeColumn(int column);
27 void addBooleanColumn(int column);
28 void setEditable(bool editable);
29private:
30
31 bool m_editable{false};
34};
35
40class TableModel : public QSqlRelationalTableModel
41{
42 Q_OBJECT
43public:
44
45 TableModel(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase());
46 ~TableModel() override;
47 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
48 bool setData(const QModelIndex & index, const QVariant & value, int role) override;
49 Qt::ItemFlags flags(const QModelIndex &index) const override;
50
51 void addDateTimeColumn(int column);
52 void addBooleanColumn(int column);
53
54private:
55
58
59};
60
61#endif // TABLEMODEL_H
float value(const T *src, size_t ch)
TableDelegate(QObject *parent)
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
QVector< int > m_dateTimeColumns
Definition TableModel.h:33
void addDateTimeColumn(int column)
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override
QVector< int > m_booleanColumns
Definition TableModel.h:32
void setEditable(bool editable)
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void addBooleanColumn(int column)
The TableModel class handles boolean and datetime columns in a custom way.
Definition TableModel.h:41
TableModel(QObject *parent=nullptr, QSqlDatabase db=QSqlDatabase())
QVector< int > m_dateTimeColumns
Definition TableModel.h:57
QVector< int > m_booleanColumns
Definition TableModel.h:56
Qt::ItemFlags flags(const QModelIndex &index) const override
bool setData(const QModelIndex &index, const QVariant &value, int role) override
void addBooleanColumn(int column)
~TableModel() override
void addDateTimeColumn(int column)
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override