From 1bbc6fcb302e8ffa34108a4eaca500ad6d469542 Mon Sep 17 00:00:00 2001 From: Michael Mandl Date: Fri, 15 Jun 2018 18:36:58 +0200 Subject: [PATCH] implemented verb-end results --- source/DataModel.cpp | 9 ++++-- source/DataModel.h | 1 + source/ResultWidget/ResultModel.cpp | 11 +++++++ source/ResultWidget/ResultModel.h | 1 + source/ResultWidget/VerbEndPR.h | 45 +++++++++++++++++++++++++++++ source/mainwindow.ui | 2 +- 6 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 source/ResultWidget/VerbEndPR.h diff --git a/source/DataModel.cpp b/source/DataModel.cpp index 05e8db2..d10b0b5 100644 --- a/source/DataModel.cpp +++ b/source/DataModel.cpp @@ -12,12 +12,12 @@ DataModel::DataModel(QObject *parent) { connect(&m_plural, &PluralModel::dataChanged, this, &DataModel::pluralModelChanged); - connect(&m_metaData, &PluralModel::dataChanged, this, &DataModel::metaDataChanged); - connect(&m_genus, &GenusModel::dataChanged, this, &DataModel::genusModelChanged); + connect(&m_verbEnd, &VerbEndModel::dataChanged, this, + &DataModel::verbEndModelChanged); } void DataModel::write(QJsonObject &target) const @@ -50,3 +50,8 @@ void DataModel::genusModelChanged() { m_results.setGenusResult(m_genus.getPoints()); } + +void DataModel::verbEndModelChanged() +{ + m_results.setVerbEndResult(m_verbEnd.getPoints()); +} diff --git a/source/DataModel.h b/source/DataModel.h index 7566c5b..e6bd592 100644 --- a/source/DataModel.h +++ b/source/DataModel.h @@ -52,4 +52,5 @@ private slots: void pluralModelChanged(); void metaDataChanged(); void genusModelChanged(); + void verbEndModelChanged(); }; diff --git a/source/ResultWidget/ResultModel.cpp b/source/ResultWidget/ResultModel.cpp index 0e6ad4b..6198c59 100644 --- a/source/ResultWidget/ResultModel.cpp +++ b/source/ResultWidget/ResultModel.cpp @@ -2,6 +2,7 @@ #include "PluralPR.h" #include "GenusPR.h" +#include "VerbEndPR.h" #include @@ -136,3 +137,13 @@ void ResultModel::setGenusResult(unsigned int points) emit dataChanged(index(0, 4), index(4, 4)); } } + +void ResultModel::setVerbEndResult(unsigned int points) +{ + if (m_results[2].points() != points) + { + m_results[2].setPoints(points); + m_results[2].setPR(VerbEndPR().lookup(m_age, points)); + emit dataChanged(index(0, 2), index(4, 2)); + } +} diff --git a/source/ResultWidget/ResultModel.h b/source/ResultWidget/ResultModel.h index 9b6f3c9..53a95c8 100644 --- a/source/ResultWidget/ResultModel.h +++ b/source/ResultWidget/ResultModel.h @@ -65,4 +65,5 @@ public: void setAge(const Age &age); void setPluralResult(unsigned int points); void setGenusResult(unsigned int points); + void setVerbEndResult(unsigned int points); }; diff --git a/source/ResultWidget/VerbEndPR.h b/source/ResultWidget/VerbEndPR.h new file mode 100644 index 0000000..1b80d9c --- /dev/null +++ b/source/ResultWidget/VerbEndPR.h @@ -0,0 +1,45 @@ +#pragma once + +#include "PRMap.h" + +class VerbEndPR : public PRMap +{ +public: + VerbEndPR() + { + // clang-format off + m_ages = { + { 4, 0 }, + { 4, 6 }, + { 5, 0 }, + { 6, 0 }, + { 9, 0 } + }; + + m_PRs = { + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 4, 1, 0, 0 }, + { 7, 4, 0, 0 }, + { 11, 4, 1, 0 }, + { 12, 4, 1, 0 }, + { 14, 4, 1, 0 }, + { 14, 6, 2, 1 }, + { 15, 8, 3, 1 }, + { 17, 8, 5, 1 }, + { 21, 11, 6, 2 }, + { 26, 14, 9, 2 }, + { 30, 18, 12, 3 }, + { 36, 22, 15, 5 }, + { 42, 29, 20, 10 }, + { 58, 39, 28, 22 }, + { 74, 51, 47, 38 }, + { 85, 79, 74, 65 }, + { 100, 100, 100, 100, 100 }, + }; + // clang-format on + } +}; + diff --git a/source/mainwindow.ui b/source/mainwindow.ui index c6a0755..2c6aed1 100644 --- a/source/mainwindow.ui +++ b/source/mainwindow.ui @@ -32,7 +32,7 @@ - Subtest 2: Verbenstellungsregel (VE) + Subtest 2: Verbendstellungsregel (VE)