35 lines
853 B
C++
35 lines
853 B
C++
#ifndef MOVIES_MODEL_H
|
|
#define MOVIES_MODEL_H
|
|
|
|
#include "base_sql_table_model.h"
|
|
|
|
class MoviesModel : public BaseSqlTableModel {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
// Enum for columns
|
|
enum MoviesColumns { Id, Title, GenreId, Duration };
|
|
|
|
public:
|
|
explicit MoviesModel(QObject *parent, const QSqlDatabase &database);
|
|
|
|
// Initialize the model
|
|
void initialize();
|
|
|
|
// Overlooking class BaseSqlTableModel methods
|
|
|
|
QVariant headerData(int section, Qt::Orientation orientation,
|
|
int role = Qt::DisplayRole) const override;
|
|
|
|
inline bool isCompleteDatabaseFiltering() const final { return true; };
|
|
|
|
protected:
|
|
QString createMultiColumnFilter(const QString &filter) const final;
|
|
|
|
private:
|
|
bool buildGenreIdFilterCondition(const QString &inFilter,
|
|
QString &outFilter) const;
|
|
};
|
|
|
|
#endif // MOVIES_MODEL_H
|