ESGRAF48/source/ResultWidget/ResultModel.h

80 lines
1.5 KiB
C
Raw Normal View History

2018-06-06 16:05:30 +00:00
#pragma once
#include "Age.h"
2019-02-07 21:36:39 +00:00
2018-06-06 16:05:30 +00:00
#include <QAbstractTableModel>
2019-02-07 21:36:39 +00:00
#include <QPainter>
2018-06-06 16:05:30 +00:00
class TestResult
{
private:
QString m_name;
2018-06-14 17:19:53 +00:00
size_t m_points = 0;
size_t m_pr = 0;
2018-06-06 16:05:30 +00:00
public:
TestResult(const char *name)
: m_name(name)
{
}
2018-06-14 17:19:53 +00:00
void setPoints(const size_t &points)
{
m_points = points;
}
2018-06-14 17:19:53 +00:00
void setPR(const unsigned int &pr)
{
m_pr = pr;
}
2018-06-06 16:05:30 +00:00
const QString &name() const
{
return m_name;
}
const size_t points() const
{
return m_points;
}
2018-06-14 17:19:53 +00:00
const size_t pr() const
{
return m_pr;
}
2018-06-06 16:05:30 +00:00
};
class ResultModel : public QAbstractTableModel
{
Q_OBJECT
private:
2018-06-09 11:13:00 +00:00
Age m_age;
2018-06-06 16:05:30 +00:00
std::vector<TestResult> m_results;
public:
ResultModel(QObject *parent);
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(
const QModelIndex &index, int role = Qt::DisplayRole) const override;
QVariant headerData(int section, Qt::Orientation orientation,
int role = Qt::DisplayRole) const override;
2018-06-09 11:13:00 +00:00
void setAge(const Age &age);
2018-06-15 15:53:43 +00:00
void setPluralResult(unsigned int points);
void setGenusResult(unsigned int points);
2018-06-15 16:36:58 +00:00
void setVerbEndResult(unsigned int points);
void setAkkusativResult(unsigned int points);
void setDativResult(unsigned int points);
2018-06-25 21:04:32 +00:00
void setV2Result(unsigned int points);
void setSvkResult(unsigned int points);
2018-06-26 14:59:51 +00:00
void setPassivResult(unsigned int points);
void setGenitivResult(unsigned int points);
2019-02-07 21:36:39 +00:00
void printTo(QPainter &painter) const;
2018-06-06 16:05:30 +00:00
};