/** * @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 LocalExercise { qint32 id; QString name; QString dbName; qint64 startTime; qint64 endTime; }; class LocalDatabasesModel : public QAbstractTableModel { Q_OBJECT public: enum Columns { Id = 0, Name, DbName, StartTime, EndTime }; explicit LocalDatabasesModel(QObject *parent = nullptr); ~LocalDatabasesModel(); 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; LocalExercise getRowData(int row) const; bool insertRow(const LocalExercise &item); friend class LocalDatabasesProxyModel; private: QVector m_vecData; LOGGER_T m_logger; }; class LocalDatabasesProxyModel 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: LocalDatabasesModel *m_sourceModel = nullptr; }; }