obliteration/src/game_models.hpp

40 lines
936 B
C++
Raw Normal View History

2022-09-17 08:03:04 +00:00
#pragma once
#include <QAbstractListModel>
#include <QList>
2022-09-24 11:58:23 +00:00
#include <QPixmap>
2022-09-17 08:03:04 +00:00
class Game final : public QObject {
public:
Game(const QString &name, const QString &directory);
~Game() override;
2022-09-17 08:03:04 +00:00
public:
const QString &name() const { return m_name; }
const QString &directory() const { return m_directory; }
2022-09-24 11:58:23 +00:00
QPixmap icon() const;
2022-09-17 08:03:04 +00:00
private:
QString m_name;
QString m_directory;
2022-09-17 08:03:04 +00:00
};
class GameListModel final : public QAbstractListModel {
public:
2022-09-18 12:58:34 +00:00
GameListModel(QObject *parent = nullptr);
2022-09-17 08:03:04 +00:00
~GameListModel();
public:
void add(Game *game);
2022-09-18 02:57:50 +00:00
Game *get(int i) const { return m_items[i]; }
2022-09-18 12:58:34 +00:00
void clear();
2023-09-17 09:21:32 +00:00
void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override;
2022-09-17 08:03:04 +00:00
public:
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
private:
QList<Game *> m_items;
};