/** * @RDE_HEADER@ * PresentationManangement - Script Overview Dialog Model * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, SLSE, 2017-03-15 */ #pragma once #include "logger.h" #include #include class QSqlDatabase; namespace DBAdministration { struct Exercise { qint32 id = 0; QString name; qint64 startTime = 0; qint64 endTime = 0; }; class ServerDatabasesModel : public QAbstractTableModel { Q_OBJECT public: enum Columns { Id = 0, Name, StartTime, EndTime }; explicit ServerDatabasesModel(QObject *parent = nullptr); ~ServerDatabasesModel(); bool initModel(const QSqlDatabase &db); QVariant data(const QModelIndex &, int) const override final; int rowCount(const QModelIndex &parent) const override final; int columnCount(const QModelIndex &parent) const override final; QVariant headerData(int section, Qt::Orientation orientation, int role) const override final; Exercise getRowData(int row) const; bool insertRow(const Exercise &item); friend class ServerDatabasesProxyModel; protected: private: QVector m_vecData; LOGGER_T m_logger; }; class ServerDatabasesProxyModel final : public QSortFilterProxyModel { Q_OBJECT public: using QSortFilterProxyModel::QSortFilterProxyModel; void setSourceModel(QAbstractItemModel *sourceModel) override; protected: bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override; private: ServerDatabasesModel *m_sourceModel = nullptr; }; }