/************************************************************************** ** ** This file is part of Nut project. ** https://github.com/HamedMasafi/Nut ** ** Nut is free software: you can redistribute it and/or modify ** it under the terms of the GNU Lesser General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** Nut is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public License ** along with Nut. If not, see . ** **************************************************************************/ #ifndef SQLMODEL_H #define SQLMODEL_H #include #include "defines.h" #include "sqlmodel_p.h" #include #include #include NUT_BEGIN_NAMESPACE class Database; class TableSetBase; class Table; class TableModel; class NUT_EXPORT SqlModel : public QAbstractTableModel { Q_OBJECT std::function _renderer; public: // explicit SqlModel(Query *q); explicit SqlModel(Database *database, TableSetBase *tableSet, QObject *parent = Q_NULLPTR); int rowCount(const QModelIndex &parent) const; int columnCount(const QModelIndex &parent) const; QVariant data(const QModelIndex &index, int role) const; template void setTable(RowList rows); void setRows(RowList rows); void append(Row
table); // void append(Table *table); QVariant headerData(int section, Qt::Orientation orientation, int role) const; Row at(const int &i) const; void setRenderer(const std::function &renderer); private: QExplicitlySharedDataPointer d; signals: void beforeShowText(int col, QVariant &value); }; template Q_OUTOFLINE_TEMPLATE void SqlModel::setTable(RowList rows) { RowList
tab; foreach (auto t, rows) tab.append(t); setRows(tab); } NUT_END_NAMESPACE #endif // SQLMODEL_H