Re-formatted all source files
This commit is contained in:
parent
5c6ed8191b
commit
d0f64ef440
77 changed files with 2443 additions and 2332 deletions
|
@ -4,26 +4,26 @@
|
|||
#include "AkkusativModel.h"
|
||||
#include "DativModel.h"
|
||||
|
||||
AkkusativDativWidget::AkkusativDativWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::AkkusativDativWidget)
|
||||
AkkusativDativWidget::AkkusativDativWidget(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::AkkusativDativWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->setupUi(this);
|
||||
ui->akkusativTableView->horizontalHeader()->hide();
|
||||
ui->dativTableView->horizontalHeader()->hide();
|
||||
}
|
||||
|
||||
AkkusativDativWidget::~AkkusativDativWidget()
|
||||
{
|
||||
delete ui;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void AkkusativDativWidget::setAkkusativModel(AkkusativModel *model)
|
||||
void AkkusativDativWidget::setAkkusativModel(AkkusativModel* model)
|
||||
{
|
||||
ui->akkusativTableView->setModel(model);
|
||||
ui->akkusativTableView->setModel(model);
|
||||
}
|
||||
|
||||
void AkkusativDativWidget::setDativModel(DativModel *model)
|
||||
|
||||
void AkkusativDativWidget::setDativModel(DativModel* model)
|
||||
{
|
||||
ui->dativTableView->setModel(model);
|
||||
ui->dativTableView->setModel(model);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,15 @@ class AkkusativDativWidget;
|
|||
|
||||
class AkkusativDativWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
Ui::AkkusativDativWidget *ui;
|
||||
Ui::AkkusativDativWidget* ui;
|
||||
|
||||
public:
|
||||
AkkusativDativWidget(QWidget *parent = nullptr);
|
||||
~AkkusativDativWidget();
|
||||
AkkusativDativWidget(QWidget* parent = nullptr);
|
||||
~AkkusativDativWidget();
|
||||
|
||||
void setAkkusativModel(AkkusativModel *model);
|
||||
void setDativModel(DativModel *model);
|
||||
void setAkkusativModel(AkkusativModel* model);
|
||||
void setDativModel(DativModel* model);
|
||||
};
|
||||
|
|
|
@ -1,112 +1,112 @@
|
|||
#include "AkkusativModel.h"
|
||||
|
||||
AkkusativModel::AkkusativModel(QObject *parent)
|
||||
AkkusativModel::AkkusativModel(QObject* parent)
|
||||
: PrintableModel(parent)
|
||||
{
|
||||
m_tests = {{"Akkusativ Nominalphrase",
|
||||
{"Tiger", "Katze", "Affe", "Gans", "Bär", "Pferd", "Hund", "Elefant"}},
|
||||
{"Präpositionalphrase (Verstecke)",
|
||||
{"Vorhang", "Kiste", "Holz", "Kiste", "Baum", "Vorhang", "Holz", "Baum"}},
|
||||
{"Nominalphrase (Futter)",
|
||||
{"Salat", "Fleisch", "Knochen", "Banane", "Apfel", "Karotte", "Honig", "Zucker"}}};
|
||||
m_tests = {{"Akkusativ Nominalphrase",
|
||||
{"Tiger", "Katze", "Affe", "Gans", "Bär", "Pferd", "Hund", "Elefant"}},
|
||||
{"Präpositionalphrase (Verstecke)",
|
||||
{"Vorhang", "Kiste", "Holz", "Kiste", "Baum", "Vorhang", "Holz", "Baum"}},
|
||||
{"Nominalphrase (Futter)",
|
||||
{"Salat", "Fleisch", "Knochen", "Banane", "Apfel", "Karotte", "Honig", "Zucker"}}};
|
||||
}
|
||||
|
||||
void AkkusativModel::read(const ESGRAF48::AkkusativModel &model)
|
||||
void AkkusativModel::read(const ESGRAF48::AkkusativModel& model)
|
||||
{
|
||||
const auto &tiereModel = model.tiere();
|
||||
{
|
||||
auto &testItems = m_tests.at(0).items();
|
||||
const auto& tiereModel = model.tiere();
|
||||
{
|
||||
auto& testItems = m_tests.at(0).items();
|
||||
|
||||
testItems[0].setState(tiereModel.tiger());
|
||||
testItems[1].setState(tiereModel.katze());
|
||||
testItems[2].setState(tiereModel.affe());
|
||||
testItems[3].setState(tiereModel.gans());
|
||||
testItems[4].setState(tiereModel.baer());
|
||||
testItems[5].setState(tiereModel.pferd());
|
||||
testItems[6].setState(tiereModel.hund());
|
||||
testItems[7].setState(tiereModel.elefant());
|
||||
}
|
||||
testItems[0].setState(tiereModel.tiger());
|
||||
testItems[1].setState(tiereModel.katze());
|
||||
testItems[2].setState(tiereModel.affe());
|
||||
testItems[3].setState(tiereModel.gans());
|
||||
testItems[4].setState(tiereModel.baer());
|
||||
testItems[5].setState(tiereModel.pferd());
|
||||
testItems[6].setState(tiereModel.hund());
|
||||
testItems[7].setState(tiereModel.elefant());
|
||||
}
|
||||
|
||||
const auto &versteckeModel = model.verstecke();
|
||||
{
|
||||
auto &testItems = m_tests.at(1).items();
|
||||
const auto& versteckeModel = model.verstecke();
|
||||
{
|
||||
auto& testItems = m_tests.at(1).items();
|
||||
|
||||
testItems[0].setState(versteckeModel.vorhang1());
|
||||
testItems[1].setState(versteckeModel.kiste1());
|
||||
testItems[2].setState(versteckeModel.holz1());
|
||||
testItems[3].setState(versteckeModel.kiste2());
|
||||
testItems[4].setState(versteckeModel.baum1());
|
||||
testItems[5].setState(versteckeModel.vorhang2());
|
||||
testItems[6].setState(versteckeModel.holz2());
|
||||
testItems[7].setState(versteckeModel.baum2());
|
||||
}
|
||||
testItems[0].setState(versteckeModel.vorhang1());
|
||||
testItems[1].setState(versteckeModel.kiste1());
|
||||
testItems[2].setState(versteckeModel.holz1());
|
||||
testItems[3].setState(versteckeModel.kiste2());
|
||||
testItems[4].setState(versteckeModel.baum1());
|
||||
testItems[5].setState(versteckeModel.vorhang2());
|
||||
testItems[6].setState(versteckeModel.holz2());
|
||||
testItems[7].setState(versteckeModel.baum2());
|
||||
}
|
||||
|
||||
const auto &futterModel = model.futter();
|
||||
{
|
||||
auto &testItems = m_tests.at(2).items();
|
||||
const auto& futterModel = model.futter();
|
||||
{
|
||||
auto& testItems = m_tests.at(2).items();
|
||||
|
||||
testItems[0].setState(futterModel.salat());
|
||||
testItems[1].setState(futterModel.fleisch());
|
||||
testItems[2].setState(futterModel.knochen());
|
||||
testItems[3].setState(futterModel.banane());
|
||||
testItems[4].setState(futterModel.apfel());
|
||||
testItems[5].setState(futterModel.karotte());
|
||||
testItems[6].setState(futterModel.honig());
|
||||
testItems[7].setState(futterModel.zucker());
|
||||
}
|
||||
testItems[0].setState(futterModel.salat());
|
||||
testItems[1].setState(futterModel.fleisch());
|
||||
testItems[2].setState(futterModel.knochen());
|
||||
testItems[3].setState(futterModel.banane());
|
||||
testItems[4].setState(futterModel.apfel());
|
||||
testItems[5].setState(futterModel.karotte());
|
||||
testItems[6].setState(futterModel.honig());
|
||||
testItems[7].setState(futterModel.zucker());
|
||||
}
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
void AkkusativModel::write(ESGRAF48::AkkusativModel &model) const
|
||||
void AkkusativModel::write(ESGRAF48::AkkusativModel& model) const
|
||||
{
|
||||
auto *tiereModel = model.mutable_tiere();
|
||||
if (tiereModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(0).items();
|
||||
auto* tiereModel = model.mutable_tiere();
|
||||
if (tiereModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(0).items();
|
||||
|
||||
tiereModel->set_tiger(testItems[0].isChecked());
|
||||
tiereModel->set_katze(testItems[1].isChecked());
|
||||
tiereModel->set_affe(testItems[2].isChecked());
|
||||
tiereModel->set_gans(testItems[3].isChecked());
|
||||
tiereModel->set_baer(testItems[4].isChecked());
|
||||
tiereModel->set_pferd(testItems[5].isChecked());
|
||||
tiereModel->set_hund(testItems[6].isChecked());
|
||||
tiereModel->set_elefant(testItems[7].isChecked());
|
||||
}
|
||||
tiereModel->set_tiger(testItems[0].isChecked());
|
||||
tiereModel->set_katze(testItems[1].isChecked());
|
||||
tiereModel->set_affe(testItems[2].isChecked());
|
||||
tiereModel->set_gans(testItems[3].isChecked());
|
||||
tiereModel->set_baer(testItems[4].isChecked());
|
||||
tiereModel->set_pferd(testItems[5].isChecked());
|
||||
tiereModel->set_hund(testItems[6].isChecked());
|
||||
tiereModel->set_elefant(testItems[7].isChecked());
|
||||
}
|
||||
|
||||
auto *versteckeModel = model.mutable_verstecke();
|
||||
if (versteckeModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(1).items();
|
||||
auto* versteckeModel = model.mutable_verstecke();
|
||||
if (versteckeModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(1).items();
|
||||
|
||||
versteckeModel->set_vorhang1(testItems[0].isChecked());
|
||||
versteckeModel->set_kiste1(testItems[1].isChecked());
|
||||
versteckeModel->set_holz1(testItems[2].isChecked());
|
||||
versteckeModel->set_kiste2(testItems[3].isChecked());
|
||||
versteckeModel->set_baum1(testItems[4].isChecked());
|
||||
versteckeModel->set_vorhang2(testItems[5].isChecked());
|
||||
versteckeModel->set_holz2(testItems[6].isChecked());
|
||||
versteckeModel->set_baum2(testItems[7].isChecked());
|
||||
}
|
||||
versteckeModel->set_vorhang1(testItems[0].isChecked());
|
||||
versteckeModel->set_kiste1(testItems[1].isChecked());
|
||||
versteckeModel->set_holz1(testItems[2].isChecked());
|
||||
versteckeModel->set_kiste2(testItems[3].isChecked());
|
||||
versteckeModel->set_baum1(testItems[4].isChecked());
|
||||
versteckeModel->set_vorhang2(testItems[5].isChecked());
|
||||
versteckeModel->set_holz2(testItems[6].isChecked());
|
||||
versteckeModel->set_baum2(testItems[7].isChecked());
|
||||
}
|
||||
|
||||
auto *futterModel = model.mutable_futter();
|
||||
if (futterModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(2).items();
|
||||
auto* futterModel = model.mutable_futter();
|
||||
if (futterModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(2).items();
|
||||
|
||||
futterModel->set_salat(testItems[0].isChecked());
|
||||
futterModel->set_fleisch(testItems[1].isChecked());
|
||||
futterModel->set_knochen(testItems[2].isChecked());
|
||||
futterModel->set_banane(testItems[3].isChecked());
|
||||
futterModel->set_apfel(testItems[4].isChecked());
|
||||
futterModel->set_karotte(testItems[5].isChecked());
|
||||
futterModel->set_honig(testItems[6].isChecked());
|
||||
futterModel->set_zucker(testItems[7].isChecked());
|
||||
}
|
||||
futterModel->set_salat(testItems[0].isChecked());
|
||||
futterModel->set_fleisch(testItems[1].isChecked());
|
||||
futterModel->set_knochen(testItems[2].isChecked());
|
||||
futterModel->set_banane(testItems[3].isChecked());
|
||||
futterModel->set_apfel(testItems[4].isChecked());
|
||||
futterModel->set_karotte(testItems[5].isChecked());
|
||||
futterModel->set_honig(testItems[6].isChecked());
|
||||
futterModel->set_zucker(testItems[7].isChecked());
|
||||
}
|
||||
}
|
||||
|
||||
void AkkusativModel::printHeader(QPainter &painter) const
|
||||
|
||||
void AkkusativModel::printHeader(QPainter& painter) const
|
||||
{
|
||||
drawHeader2(painter, "Subtest 4: Akkusativ und Dativ");
|
||||
drawHeader2(painter, "Subtest 4: Akkusativ und Dativ");
|
||||
}
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
|
||||
class AkkusativModel : public PrintableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
AkkusativModel(QObject *parent);
|
||||
AkkusativModel(QObject* parent);
|
||||
|
||||
void read(const ESGRAF48::AkkusativModel &model);
|
||||
void write(ESGRAF48::AkkusativModel &model) const;
|
||||
void read(const ESGRAF48::AkkusativModel& model);
|
||||
void write(ESGRAF48::AkkusativModel& model) const;
|
||||
|
||||
protected:
|
||||
void printHeader(QPainter &painter) const override;
|
||||
void printHeader(QPainter& painter) const override;
|
||||
};
|
||||
|
|
|
@ -1,112 +1,112 @@
|
|||
#include "DativModel.h"
|
||||
|
||||
DativModel::DativModel(QObject *parent)
|
||||
DativModel::DativModel(QObject* parent)
|
||||
: PrintableModel(parent)
|
||||
{
|
||||
m_tests = {{"Dativ Nominalphrase",
|
||||
{"Affe", "Gans", "Tiger", "Hund", "Elefant", "Pferd", "Bär", "Katze"}},
|
||||
{"Präpositionalphrase (Verstecke)",
|
||||
{"Vorhang", "Kiste", "Holz", "Kiste", "Baum", "Vorhang", "Holz", "Baum"}},
|
||||
{"Nominalphrase (Tiere)",
|
||||
{"Gans", "Tiger", "Hund", "Affe", "Elefant", "Pferd", "Bär", "Katze"}}};
|
||||
m_tests = {{"Dativ Nominalphrase",
|
||||
{"Affe", "Gans", "Tiger", "Hund", "Elefant", "Pferd", "Bär", "Katze"}},
|
||||
{"Präpositionalphrase (Verstecke)",
|
||||
{"Vorhang", "Kiste", "Holz", "Kiste", "Baum", "Vorhang", "Holz", "Baum"}},
|
||||
{"Nominalphrase (Tiere)",
|
||||
{"Gans", "Tiger", "Hund", "Affe", "Elefant", "Pferd", "Bär", "Katze"}}};
|
||||
}
|
||||
|
||||
void DativModel::read(const ESGRAF48::DativModel &model)
|
||||
void DativModel::read(const ESGRAF48::DativModel& model)
|
||||
{
|
||||
const auto &tiereModel = model.tiere();
|
||||
{
|
||||
auto &testItems = m_tests.at(0).items();
|
||||
const auto& tiereModel = model.tiere();
|
||||
{
|
||||
auto& testItems = m_tests.at(0).items();
|
||||
|
||||
testItems[0].setState(tiereModel.affe());
|
||||
testItems[1].setState(tiereModel.gans());
|
||||
testItems[2].setState(tiereModel.tiger());
|
||||
testItems[3].setState(tiereModel.hund());
|
||||
testItems[4].setState(tiereModel.elefant());
|
||||
testItems[5].setState(tiereModel.pferd());
|
||||
testItems[6].setState(tiereModel.baer());
|
||||
testItems[7].setState(tiereModel.katze());
|
||||
}
|
||||
testItems[0].setState(tiereModel.affe());
|
||||
testItems[1].setState(tiereModel.gans());
|
||||
testItems[2].setState(tiereModel.tiger());
|
||||
testItems[3].setState(tiereModel.hund());
|
||||
testItems[4].setState(tiereModel.elefant());
|
||||
testItems[5].setState(tiereModel.pferd());
|
||||
testItems[6].setState(tiereModel.baer());
|
||||
testItems[7].setState(tiereModel.katze());
|
||||
}
|
||||
|
||||
const auto &versteckeModel = model.verstecke();
|
||||
{
|
||||
auto &testItems = m_tests.at(1).items();
|
||||
const auto& versteckeModel = model.verstecke();
|
||||
{
|
||||
auto& testItems = m_tests.at(1).items();
|
||||
|
||||
testItems[0].setState(versteckeModel.vorhang1());
|
||||
testItems[1].setState(versteckeModel.kiste1());
|
||||
testItems[2].setState(versteckeModel.holz1());
|
||||
testItems[3].setState(versteckeModel.kiste2());
|
||||
testItems[4].setState(versteckeModel.baum1());
|
||||
testItems[5].setState(versteckeModel.vorhang2());
|
||||
testItems[6].setState(versteckeModel.holz2());
|
||||
testItems[7].setState(versteckeModel.baum2());
|
||||
}
|
||||
testItems[0].setState(versteckeModel.vorhang1());
|
||||
testItems[1].setState(versteckeModel.kiste1());
|
||||
testItems[2].setState(versteckeModel.holz1());
|
||||
testItems[3].setState(versteckeModel.kiste2());
|
||||
testItems[4].setState(versteckeModel.baum1());
|
||||
testItems[5].setState(versteckeModel.vorhang2());
|
||||
testItems[6].setState(versteckeModel.holz2());
|
||||
testItems[7].setState(versteckeModel.baum2());
|
||||
}
|
||||
|
||||
const auto &nomTiereModel = model.nomtiere();
|
||||
{
|
||||
auto &testItems = m_tests.at(2).items();
|
||||
const auto& nomTiereModel = model.nomtiere();
|
||||
{
|
||||
auto& testItems = m_tests.at(2).items();
|
||||
|
||||
testItems[0].setState(nomTiereModel.gans());
|
||||
testItems[1].setState(nomTiereModel.tiger());
|
||||
testItems[2].setState(nomTiereModel.hund());
|
||||
testItems[3].setState(nomTiereModel.affe());
|
||||
testItems[4].setState(nomTiereModel.elefant());
|
||||
testItems[5].setState(nomTiereModel.pferd());
|
||||
testItems[6].setState(nomTiereModel.baer());
|
||||
testItems[7].setState(nomTiereModel.katze());
|
||||
}
|
||||
testItems[0].setState(nomTiereModel.gans());
|
||||
testItems[1].setState(nomTiereModel.tiger());
|
||||
testItems[2].setState(nomTiereModel.hund());
|
||||
testItems[3].setState(nomTiereModel.affe());
|
||||
testItems[4].setState(nomTiereModel.elefant());
|
||||
testItems[5].setState(nomTiereModel.pferd());
|
||||
testItems[6].setState(nomTiereModel.baer());
|
||||
testItems[7].setState(nomTiereModel.katze());
|
||||
}
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
void DativModel::write(ESGRAF48::DativModel &model) const
|
||||
void DativModel::write(ESGRAF48::DativModel& model) const
|
||||
{
|
||||
auto *tiereModel = model.mutable_tiere();
|
||||
if (tiereModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(0).items();
|
||||
auto* tiereModel = model.mutable_tiere();
|
||||
if (tiereModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(0).items();
|
||||
|
||||
tiereModel->set_affe(testItems[0].isChecked());
|
||||
tiereModel->set_gans(testItems[1].isChecked());
|
||||
tiereModel->set_tiger(testItems[2].isChecked());
|
||||
tiereModel->set_hund(testItems[3].isChecked());
|
||||
tiereModel->set_elefant(testItems[4].isChecked());
|
||||
tiereModel->set_pferd(testItems[5].isChecked());
|
||||
tiereModel->set_baer(testItems[6].isChecked());
|
||||
tiereModel->set_katze(testItems[7].isChecked());
|
||||
}
|
||||
tiereModel->set_affe(testItems[0].isChecked());
|
||||
tiereModel->set_gans(testItems[1].isChecked());
|
||||
tiereModel->set_tiger(testItems[2].isChecked());
|
||||
tiereModel->set_hund(testItems[3].isChecked());
|
||||
tiereModel->set_elefant(testItems[4].isChecked());
|
||||
tiereModel->set_pferd(testItems[5].isChecked());
|
||||
tiereModel->set_baer(testItems[6].isChecked());
|
||||
tiereModel->set_katze(testItems[7].isChecked());
|
||||
}
|
||||
|
||||
auto *versteckeModel = model.mutable_verstecke();
|
||||
if (versteckeModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(1).items();
|
||||
auto* versteckeModel = model.mutable_verstecke();
|
||||
if (versteckeModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(1).items();
|
||||
|
||||
versteckeModel->set_vorhang1(testItems[0].isChecked());
|
||||
versteckeModel->set_kiste1(testItems[1].isChecked());
|
||||
versteckeModel->set_holz1(testItems[2].isChecked());
|
||||
versteckeModel->set_kiste2(testItems[3].isChecked());
|
||||
versteckeModel->set_baum1(testItems[4].isChecked());
|
||||
versteckeModel->set_vorhang2(testItems[5].isChecked());
|
||||
versteckeModel->set_holz2(testItems[6].isChecked());
|
||||
versteckeModel->set_baum2(testItems[7].isChecked());
|
||||
}
|
||||
versteckeModel->set_vorhang1(testItems[0].isChecked());
|
||||
versteckeModel->set_kiste1(testItems[1].isChecked());
|
||||
versteckeModel->set_holz1(testItems[2].isChecked());
|
||||
versteckeModel->set_kiste2(testItems[3].isChecked());
|
||||
versteckeModel->set_baum1(testItems[4].isChecked());
|
||||
versteckeModel->set_vorhang2(testItems[5].isChecked());
|
||||
versteckeModel->set_holz2(testItems[6].isChecked());
|
||||
versteckeModel->set_baum2(testItems[7].isChecked());
|
||||
}
|
||||
|
||||
auto *nomTiereModel = model.mutable_nomtiere();
|
||||
if (nomTiereModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(2).items();
|
||||
auto* nomTiereModel = model.mutable_nomtiere();
|
||||
if (nomTiereModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(2).items();
|
||||
|
||||
nomTiereModel->set_gans(testItems[0].isChecked());
|
||||
nomTiereModel->set_tiger(testItems[1].isChecked());
|
||||
nomTiereModel->set_hund(testItems[2].isChecked());
|
||||
nomTiereModel->set_affe(testItems[3].isChecked());
|
||||
nomTiereModel->set_elefant(testItems[4].isChecked());
|
||||
nomTiereModel->set_pferd(testItems[5].isChecked());
|
||||
nomTiereModel->set_baer(testItems[6].isChecked());
|
||||
nomTiereModel->set_katze(testItems[7].isChecked());
|
||||
}
|
||||
nomTiereModel->set_gans(testItems[0].isChecked());
|
||||
nomTiereModel->set_tiger(testItems[1].isChecked());
|
||||
nomTiereModel->set_hund(testItems[2].isChecked());
|
||||
nomTiereModel->set_affe(testItems[3].isChecked());
|
||||
nomTiereModel->set_elefant(testItems[4].isChecked());
|
||||
nomTiereModel->set_pferd(testItems[5].isChecked());
|
||||
nomTiereModel->set_baer(testItems[6].isChecked());
|
||||
nomTiereModel->set_katze(testItems[7].isChecked());
|
||||
}
|
||||
}
|
||||
|
||||
void DativModel::printHeader(QPainter &painter) const
|
||||
|
||||
void DativModel::printHeader(QPainter& painter) const
|
||||
{
|
||||
painter.translate(0, -1.5 * painter.fontMetrics().lineSpacing());
|
||||
painter.translate(0, -1.5 * painter.fontMetrics().lineSpacing());
|
||||
}
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
|
||||
class DativModel : public PrintableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DativModel(QObject *parent);
|
||||
DativModel(QObject* parent);
|
||||
|
||||
void read(const ESGRAF48::DativModel &model);
|
||||
void write(ESGRAF48::DativModel &model) const;
|
||||
void read(const ESGRAF48::DativModel& model);
|
||||
void write(ESGRAF48::DativModel& model) const;
|
||||
|
||||
protected:
|
||||
void printHeader(QPainter &painter) const override;
|
||||
void printHeader(QPainter& painter) const override;
|
||||
};
|
||||
|
|
|
@ -1,99 +1,99 @@
|
|||
#include "GenusModel.h"
|
||||
|
||||
GenusModel::GenusModel(QObject *parent)
|
||||
GenusModel::GenusModel(QObject* parent)
|
||||
: PrintableModel(parent)
|
||||
{
|
||||
m_title = "Subtest 3: Genus";
|
||||
m_title = "Subtest 3: Genus";
|
||||
|
||||
m_tests = {{"Tiere", {"Tiger", "Bär", "Katze", "Pferd", "Gans", "Elefant", "Affe", "Hund"}},
|
||||
{"Futter",
|
||||
{"Salat", "Fleisch", "Knochen", "Banane", "Apfel", "Karotte", "Honig", "Zucker"}},
|
||||
{"Zirkus", {"Kiste", "Holz", "Vorhang", "Baum"}}};
|
||||
m_tests = {{"Tiere", {"Tiger", "Bär", "Katze", "Pferd", "Gans", "Elefant", "Affe", "Hund"}},
|
||||
{"Futter",
|
||||
{"Salat", "Fleisch", "Knochen", "Banane", "Apfel", "Karotte", "Honig", "Zucker"}},
|
||||
{"Zirkus", {"Kiste", "Holz", "Vorhang", "Baum"}}};
|
||||
}
|
||||
|
||||
void GenusModel::read(const ESGRAF48::GenusModel &model)
|
||||
void GenusModel::read(const ESGRAF48::GenusModel& model)
|
||||
{
|
||||
const auto &tiereModel = model.tiere();
|
||||
{
|
||||
auto &testItems = m_tests.at(0).items();
|
||||
const auto& tiereModel = model.tiere();
|
||||
{
|
||||
auto& testItems = m_tests.at(0).items();
|
||||
|
||||
testItems[0].setState(tiereModel.tiger());
|
||||
testItems[1].setState(tiereModel.baer());
|
||||
testItems[2].setState(tiereModel.katze());
|
||||
testItems[3].setState(tiereModel.pferd());
|
||||
testItems[4].setState(tiereModel.gans());
|
||||
testItems[5].setState(tiereModel.elefant());
|
||||
testItems[6].setState(tiereModel.affe());
|
||||
testItems[7].setState(tiereModel.hund());
|
||||
}
|
||||
testItems[0].setState(tiereModel.tiger());
|
||||
testItems[1].setState(tiereModel.baer());
|
||||
testItems[2].setState(tiereModel.katze());
|
||||
testItems[3].setState(tiereModel.pferd());
|
||||
testItems[4].setState(tiereModel.gans());
|
||||
testItems[5].setState(tiereModel.elefant());
|
||||
testItems[6].setState(tiereModel.affe());
|
||||
testItems[7].setState(tiereModel.hund());
|
||||
}
|
||||
|
||||
const auto &futterModel = model.futter();
|
||||
{
|
||||
auto &testItems = m_tests.at(1).items();
|
||||
const auto& futterModel = model.futter();
|
||||
{
|
||||
auto& testItems = m_tests.at(1).items();
|
||||
|
||||
testItems[0].setState(futterModel.salat());
|
||||
testItems[1].setState(futterModel.fleisch());
|
||||
testItems[2].setState(futterModel.knochen());
|
||||
testItems[3].setState(futterModel.banane());
|
||||
testItems[4].setState(futterModel.apfel());
|
||||
testItems[5].setState(futterModel.karotte());
|
||||
testItems[6].setState(futterModel.honig());
|
||||
testItems[7].setState(futterModel.zucker());
|
||||
}
|
||||
testItems[0].setState(futterModel.salat());
|
||||
testItems[1].setState(futterModel.fleisch());
|
||||
testItems[2].setState(futterModel.knochen());
|
||||
testItems[3].setState(futterModel.banane());
|
||||
testItems[4].setState(futterModel.apfel());
|
||||
testItems[5].setState(futterModel.karotte());
|
||||
testItems[6].setState(futterModel.honig());
|
||||
testItems[7].setState(futterModel.zucker());
|
||||
}
|
||||
|
||||
const auto &zirkusModel = model.zirkus();
|
||||
{
|
||||
auto &testItems = m_tests.at(2).items();
|
||||
const auto& zirkusModel = model.zirkus();
|
||||
{
|
||||
auto& testItems = m_tests.at(2).items();
|
||||
|
||||
testItems[0].setState(zirkusModel.kiste());
|
||||
testItems[1].setState(zirkusModel.holz());
|
||||
testItems[2].setState(zirkusModel.vorhang());
|
||||
testItems[3].setState(zirkusModel.baum());
|
||||
}
|
||||
testItems[0].setState(zirkusModel.kiste());
|
||||
testItems[1].setState(zirkusModel.holz());
|
||||
testItems[2].setState(zirkusModel.vorhang());
|
||||
testItems[3].setState(zirkusModel.baum());
|
||||
}
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
void GenusModel::write(ESGRAF48::GenusModel &model) const
|
||||
void GenusModel::write(ESGRAF48::GenusModel& model) const
|
||||
{
|
||||
auto *tiereModel = model.mutable_tiere();
|
||||
if (tiereModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(0).items();
|
||||
auto* tiereModel = model.mutable_tiere();
|
||||
if (tiereModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(0).items();
|
||||
|
||||
tiereModel->set_tiger(testItems[0].isChecked());
|
||||
tiereModel->set_baer(testItems[1].isChecked());
|
||||
tiereModel->set_katze(testItems[2].isChecked());
|
||||
tiereModel->set_pferd(testItems[3].isChecked());
|
||||
tiereModel->set_gans(testItems[4].isChecked());
|
||||
tiereModel->set_elefant(testItems[5].isChecked());
|
||||
tiereModel->set_affe(testItems[6].isChecked());
|
||||
tiereModel->set_hund(testItems[7].isChecked());
|
||||
}
|
||||
tiereModel->set_tiger(testItems[0].isChecked());
|
||||
tiereModel->set_baer(testItems[1].isChecked());
|
||||
tiereModel->set_katze(testItems[2].isChecked());
|
||||
tiereModel->set_pferd(testItems[3].isChecked());
|
||||
tiereModel->set_gans(testItems[4].isChecked());
|
||||
tiereModel->set_elefant(testItems[5].isChecked());
|
||||
tiereModel->set_affe(testItems[6].isChecked());
|
||||
tiereModel->set_hund(testItems[7].isChecked());
|
||||
}
|
||||
|
||||
auto *futterModel = model.mutable_futter();
|
||||
if (futterModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(1).items();
|
||||
auto* futterModel = model.mutable_futter();
|
||||
if (futterModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(1).items();
|
||||
|
||||
futterModel->set_salat(testItems[0].isChecked());
|
||||
futterModel->set_fleisch(testItems[1].isChecked());
|
||||
futterModel->set_knochen(testItems[2].isChecked());
|
||||
futterModel->set_banane(testItems[3].isChecked());
|
||||
futterModel->set_apfel(testItems[4].isChecked());
|
||||
futterModel->set_karotte(testItems[5].isChecked());
|
||||
futterModel->set_honig(testItems[6].isChecked());
|
||||
futterModel->set_zucker(testItems[7].isChecked());
|
||||
}
|
||||
futterModel->set_salat(testItems[0].isChecked());
|
||||
futterModel->set_fleisch(testItems[1].isChecked());
|
||||
futterModel->set_knochen(testItems[2].isChecked());
|
||||
futterModel->set_banane(testItems[3].isChecked());
|
||||
futterModel->set_apfel(testItems[4].isChecked());
|
||||
futterModel->set_karotte(testItems[5].isChecked());
|
||||
futterModel->set_honig(testItems[6].isChecked());
|
||||
futterModel->set_zucker(testItems[7].isChecked());
|
||||
}
|
||||
|
||||
auto *zirkusModel = model.mutable_zirkus();
|
||||
if (zirkusModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(2).items();
|
||||
auto* zirkusModel = model.mutable_zirkus();
|
||||
if (zirkusModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(2).items();
|
||||
|
||||
zirkusModel->set_kiste(testItems[0].isChecked());
|
||||
zirkusModel->set_holz(testItems[1].isChecked());
|
||||
zirkusModel->set_vorhang(testItems[2].isChecked());
|
||||
zirkusModel->set_baum(testItems[3].isChecked());
|
||||
}
|
||||
zirkusModel->set_kiste(testItems[0].isChecked());
|
||||
zirkusModel->set_holz(testItems[1].isChecked());
|
||||
zirkusModel->set_vorhang(testItems[2].isChecked());
|
||||
zirkusModel->set_baum(testItems[3].isChecked());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
class GenusModel : public PrintableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
GenusModel(QObject *parent);
|
||||
GenusModel(QObject* parent);
|
||||
|
||||
void read(const ESGRAF48::GenusModel &model);
|
||||
void write(ESGRAF48::GenusModel &model) const;
|
||||
void read(const ESGRAF48::GenusModel& model);
|
||||
void write(ESGRAF48::GenusModel& model) const;
|
||||
};
|
||||
|
|
|
@ -3,21 +3,21 @@
|
|||
|
||||
#include "GenusModel.h"
|
||||
|
||||
GenusWidget::GenusWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::GenusWidget)
|
||||
GenusWidget::GenusWidget(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::GenusWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->genusTableView->horizontalHeader()->hide();
|
||||
ui->genusTableView->horizontalHeader()->hide();
|
||||
}
|
||||
|
||||
GenusWidget::~GenusWidget()
|
||||
{
|
||||
delete ui;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void GenusWidget::setModel(GenusModel *model)
|
||||
void GenusWidget::setModel(GenusModel* model)
|
||||
{
|
||||
ui->genusTableView->setModel(model);
|
||||
ui->genusTableView->setModel(model);
|
||||
}
|
||||
|
|
|
@ -10,14 +10,14 @@ class GenusWidget;
|
|||
|
||||
class GenusWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
Ui::GenusWidget *ui;
|
||||
Ui::GenusWidget* ui;
|
||||
|
||||
public:
|
||||
GenusWidget(QWidget *parent = nullptr);
|
||||
~GenusWidget();
|
||||
GenusWidget(QWidget* parent = nullptr);
|
||||
~GenusWidget();
|
||||
|
||||
void setModel(GenusModel *model);
|
||||
void setModel(GenusModel* model);
|
||||
};
|
||||
|
|
|
@ -1,114 +1,114 @@
|
|||
#include "GenitivModel.h"
|
||||
|
||||
GenitivModel::GenitivModel(QObject *parent)
|
||||
GenitivModel::GenitivModel(QObject* parent)
|
||||
: LateSkillsModel(parent)
|
||||
{
|
||||
m_tests = {
|
||||
{"Genitiv Präpositionen",
|
||||
{"anstelle (1)", "anstelle (2)", "außerhalb (1)", "außerhalb (2)", "mithilfe (1)",
|
||||
"mithilfe (2)"}},
|
||||
{"Attributierung",
|
||||
{"Schuhe (1)", "Schuhe (2)", "Zauberstab (1)", "Zauberstab (2)", "Hut (1)", "Hut (2)",
|
||||
"Brille (1)", "Brille (2)", "Gürtel (1)", "Gürtel (2)"}},
|
||||
};
|
||||
m_tests = {
|
||||
{"Genitiv Präpositionen",
|
||||
{"anstelle (1)", "anstelle (2)", "außerhalb (1)", "außerhalb (2)", "mithilfe (1)",
|
||||
"mithilfe (2)"}},
|
||||
{"Attributierung",
|
||||
{"Schuhe (1)", "Schuhe (2)", "Zauberstab (1)", "Zauberstab (2)", "Hut (1)", "Hut (2)",
|
||||
"Brille (1)", "Brille (2)", "Gürtel (1)", "Gürtel (2)"}},
|
||||
};
|
||||
|
||||
for (auto index : {1, 3, 5})
|
||||
{
|
||||
m_tests[0].items()[index].setValue(2);
|
||||
}
|
||||
for (auto index : {1, 3, 5})
|
||||
{
|
||||
m_tests[0].items()[index].setValue(2);
|
||||
}
|
||||
|
||||
for (auto index : {1, 3, 5, 7, 9})
|
||||
{
|
||||
m_tests[1].items()[index].setValue(2);
|
||||
}
|
||||
for (auto index : {1, 3, 5, 7, 9})
|
||||
{
|
||||
m_tests[1].items()[index].setValue(2);
|
||||
}
|
||||
}
|
||||
|
||||
bool GenitivModel::setData(const QModelIndex &modelIndex, const QVariant &value, int role)
|
||||
bool GenitivModel::setData(const QModelIndex& modelIndex, const QVariant& value, int role)
|
||||
{
|
||||
if (role == Qt::CheckStateRole && value.toBool() == true)
|
||||
{
|
||||
if (modelIndex.column() % 2 == 0)
|
||||
{
|
||||
CheckableTestModel::setData(index(modelIndex.row(), modelIndex.column() + 1), false,
|
||||
role);
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckableTestModel::setData(index(modelIndex.row(), modelIndex.column() - 1), false,
|
||||
role);
|
||||
}
|
||||
}
|
||||
if (role == Qt::CheckStateRole && value.toBool() == true)
|
||||
{
|
||||
if (modelIndex.column() % 2 == 0)
|
||||
{
|
||||
CheckableTestModel::setData(index(modelIndex.row(), modelIndex.column() + 1), false,
|
||||
role);
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckableTestModel::setData(index(modelIndex.row(), modelIndex.column() - 1), false,
|
||||
role);
|
||||
}
|
||||
}
|
||||
|
||||
return CheckableTestModel::setData(modelIndex, value, role);
|
||||
return CheckableTestModel::setData(modelIndex, value, role);
|
||||
}
|
||||
|
||||
void GenitivModel::read(const ESGRAF48::LateSkillsGenitivModel &model)
|
||||
void GenitivModel::read(const ESGRAF48::LateSkillsGenitivModel& model)
|
||||
{
|
||||
const auto &praepositionenModel = model.praepositionen();
|
||||
{
|
||||
auto &testItems = m_tests.at(0).items();
|
||||
const auto& praepositionenModel = model.praepositionen();
|
||||
{
|
||||
auto& testItems = m_tests.at(0).items();
|
||||
|
||||
testItems[0].setState(praepositionenModel.anstelle1());
|
||||
testItems[1].setState(praepositionenModel.anstelle2());
|
||||
testItems[2].setState(praepositionenModel.ausserhalb1());
|
||||
testItems[3].setState(praepositionenModel.ausserhalb2());
|
||||
testItems[4].setState(praepositionenModel.mithilfe1());
|
||||
testItems[5].setState(praepositionenModel.mithilfe2());
|
||||
}
|
||||
testItems[0].setState(praepositionenModel.anstelle1());
|
||||
testItems[1].setState(praepositionenModel.anstelle2());
|
||||
testItems[2].setState(praepositionenModel.ausserhalb1());
|
||||
testItems[3].setState(praepositionenModel.ausserhalb2());
|
||||
testItems[4].setState(praepositionenModel.mithilfe1());
|
||||
testItems[5].setState(praepositionenModel.mithilfe2());
|
||||
}
|
||||
|
||||
const auto &attributierungModel = model.attributierung();
|
||||
{
|
||||
auto &testItems = m_tests.at(1).items();
|
||||
const auto& attributierungModel = model.attributierung();
|
||||
{
|
||||
auto& testItems = m_tests.at(1).items();
|
||||
|
||||
testItems[0].setState(attributierungModel.schuhe1());
|
||||
testItems[1].setState(attributierungModel.schuhe2());
|
||||
testItems[2].setState(attributierungModel.zauberstab1());
|
||||
testItems[3].setState(attributierungModel.zauberstab2());
|
||||
testItems[4].setState(attributierungModel.hut1());
|
||||
testItems[5].setState(attributierungModel.hut2());
|
||||
testItems[6].setState(attributierungModel.brille1());
|
||||
testItems[7].setState(attributierungModel.brille2());
|
||||
testItems[8].setState(attributierungModel.guertel1());
|
||||
testItems[9].setState(attributierungModel.guertel2());
|
||||
}
|
||||
testItems[0].setState(attributierungModel.schuhe1());
|
||||
testItems[1].setState(attributierungModel.schuhe2());
|
||||
testItems[2].setState(attributierungModel.zauberstab1());
|
||||
testItems[3].setState(attributierungModel.zauberstab2());
|
||||
testItems[4].setState(attributierungModel.hut1());
|
||||
testItems[5].setState(attributierungModel.hut2());
|
||||
testItems[6].setState(attributierungModel.brille1());
|
||||
testItems[7].setState(attributierungModel.brille2());
|
||||
testItems[8].setState(attributierungModel.guertel1());
|
||||
testItems[9].setState(attributierungModel.guertel2());
|
||||
}
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
void GenitivModel::write(ESGRAF48::LateSkillsGenitivModel &model) const
|
||||
void GenitivModel::write(ESGRAF48::LateSkillsGenitivModel& model) const
|
||||
{
|
||||
auto *praepositionenModel = model.mutable_praepositionen();
|
||||
if (praepositionenModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(0).items();
|
||||
auto* praepositionenModel = model.mutable_praepositionen();
|
||||
if (praepositionenModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(0).items();
|
||||
|
||||
praepositionenModel->set_anstelle1(testItems[0].isChecked());
|
||||
praepositionenModel->set_anstelle2(testItems[1].isChecked());
|
||||
praepositionenModel->set_ausserhalb1(testItems[2].isChecked());
|
||||
praepositionenModel->set_ausserhalb2(testItems[3].isChecked());
|
||||
praepositionenModel->set_mithilfe1(testItems[4].isChecked());
|
||||
praepositionenModel->set_mithilfe2(testItems[5].isChecked());
|
||||
}
|
||||
praepositionenModel->set_anstelle1(testItems[0].isChecked());
|
||||
praepositionenModel->set_anstelle2(testItems[1].isChecked());
|
||||
praepositionenModel->set_ausserhalb1(testItems[2].isChecked());
|
||||
praepositionenModel->set_ausserhalb2(testItems[3].isChecked());
|
||||
praepositionenModel->set_mithilfe1(testItems[4].isChecked());
|
||||
praepositionenModel->set_mithilfe2(testItems[5].isChecked());
|
||||
}
|
||||
|
||||
auto *attributierungModel = model.mutable_attributierung();
|
||||
if (attributierungModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(1).items();
|
||||
auto* attributierungModel = model.mutable_attributierung();
|
||||
if (attributierungModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(1).items();
|
||||
|
||||
attributierungModel->set_schuhe1(testItems[0].isChecked());
|
||||
attributierungModel->set_schuhe2(testItems[1].isChecked());
|
||||
attributierungModel->set_zauberstab1(testItems[2].isChecked());
|
||||
attributierungModel->set_zauberstab2(testItems[3].isChecked());
|
||||
attributierungModel->set_hut1(testItems[4].isChecked());
|
||||
attributierungModel->set_hut2(testItems[5].isChecked());
|
||||
attributierungModel->set_brille1(testItems[6].isChecked());
|
||||
attributierungModel->set_brille2(testItems[7].isChecked());
|
||||
attributierungModel->set_guertel1(testItems[8].isChecked());
|
||||
attributierungModel->set_guertel2(testItems[9].isChecked());
|
||||
}
|
||||
attributierungModel->set_schuhe1(testItems[0].isChecked());
|
||||
attributierungModel->set_schuhe2(testItems[1].isChecked());
|
||||
attributierungModel->set_zauberstab1(testItems[2].isChecked());
|
||||
attributierungModel->set_zauberstab2(testItems[3].isChecked());
|
||||
attributierungModel->set_hut1(testItems[4].isChecked());
|
||||
attributierungModel->set_hut2(testItems[5].isChecked());
|
||||
attributierungModel->set_brille1(testItems[6].isChecked());
|
||||
attributierungModel->set_brille2(testItems[7].isChecked());
|
||||
attributierungModel->set_guertel1(testItems[8].isChecked());
|
||||
attributierungModel->set_guertel2(testItems[9].isChecked());
|
||||
}
|
||||
}
|
||||
|
||||
void GenitivModel::printHeader(QPainter &painter) const
|
||||
|
||||
void GenitivModel::printHeader(QPainter& painter) const
|
||||
{
|
||||
painter.translate(0, -1.5 * painter.fontMetrics().lineSpacing());
|
||||
painter.translate(0, -1.5 * painter.fontMetrics().lineSpacing());
|
||||
}
|
||||
|
|
|
@ -5,16 +5,15 @@
|
|||
|
||||
class GenitivModel : public LateSkillsModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
GenitivModel(QObject *parent);
|
||||
bool setData(const QModelIndex &index, const QVariant &value,
|
||||
int role = Qt::EditRole) override;
|
||||
GenitivModel(QObject* parent);
|
||||
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
|
||||
|
||||
void read(const ESGRAF48::LateSkillsGenitivModel &model);
|
||||
void write(ESGRAF48::LateSkillsGenitivModel &model) const;
|
||||
void read(const ESGRAF48::LateSkillsGenitivModel& model);
|
||||
void write(ESGRAF48::LateSkillsGenitivModel& model) const;
|
||||
|
||||
protected:
|
||||
void printHeader(QPainter &painter) const override;
|
||||
void printHeader(QPainter& painter) const override;
|
||||
};
|
||||
|
|
|
@ -2,63 +2,63 @@
|
|||
|
||||
#include <regex>
|
||||
|
||||
LateSkillsModel::LateSkillsModel(QObject *parent)
|
||||
LateSkillsModel::LateSkillsModel(QObject* parent)
|
||||
: PrintableModel(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void LateSkillsModel::printTests(QPainter &painter) const
|
||||
void LateSkillsModel::printTests(QPainter& painter) const
|
||||
{
|
||||
painter.setFont(tableFont());
|
||||
painter.setPen(tablePen());
|
||||
painter.setFont(tableFont());
|
||||
painter.setPen(tablePen());
|
||||
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
|
||||
double headerWidth = headerWidthFactor() * width;
|
||||
double cellHeaderWidth = cellWidthFactor() * width;
|
||||
double cellWidth = 0.5 * cellHeaderWidth;
|
||||
double rowHeight = height;
|
||||
double headerWidth = headerWidthFactor() * width;
|
||||
double cellHeaderWidth = cellWidthFactor() * width;
|
||||
double cellWidth = 0.5 * cellHeaderWidth;
|
||||
double rowHeight = height;
|
||||
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
for (const auto &test : m_tests)
|
||||
{
|
||||
QString testName = QString::fromStdString(
|
||||
std::regex_replace(test.name().toStdString(), std::regex("\\s"), "\n"));
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
for (const auto& test : m_tests)
|
||||
{
|
||||
QString testName = QString::fromStdString(
|
||||
std::regex_replace(test.name().toStdString(), std::regex("\\s"), "\n"));
|
||||
|
||||
drawTextSquare(painter, {0, y, headerWidth, 3 * rowHeight}, testName);
|
||||
drawTextSquare(painter, {0, y, headerWidth, 3 * rowHeight}, testName);
|
||||
|
||||
const auto &items = test.items();
|
||||
const auto& items = test.items();
|
||||
|
||||
x = headerWidth;
|
||||
for (unsigned int i = 0; i < items.size(); i += 2)
|
||||
{
|
||||
const auto &item = test.items().at(i);
|
||||
QString itemText = QString::fromStdString(item.getText()).split(" ").at(0);
|
||||
x = headerWidth;
|
||||
for (unsigned int i = 0; i < items.size(); i += 2)
|
||||
{
|
||||
const auto& item = test.items().at(i);
|
||||
QString itemText = QString::fromStdString(item.getText()).split(" ").at(0);
|
||||
|
||||
drawTextSquare(painter, {x, y, cellHeaderWidth, rowHeight}, itemText);
|
||||
drawTextSquare(painter, {x, y, cellHeaderWidth, rowHeight}, itemText);
|
||||
|
||||
x += cellHeaderWidth;
|
||||
}
|
||||
y += rowHeight;
|
||||
x += cellHeaderWidth;
|
||||
}
|
||||
y += rowHeight;
|
||||
|
||||
x = headerWidth;
|
||||
for (const auto &item : items)
|
||||
{
|
||||
drawTextSquare(painter, {x, y, cellWidth, rowHeight}, QString::number(item.value()));
|
||||
drawCheckSquare(painter, {x, y + rowHeight, cellWidth, rowHeight}, item.isChecked());
|
||||
x = headerWidth;
|
||||
for (const auto& item : items)
|
||||
{
|
||||
drawTextSquare(painter, {x, y, cellWidth, rowHeight}, QString::number(item.value()));
|
||||
drawCheckSquare(painter, {x, y + rowHeight, cellWidth, rowHeight}, item.isChecked());
|
||||
|
||||
x += cellWidth;
|
||||
}
|
||||
x += cellWidth;
|
||||
}
|
||||
|
||||
if (m_tests.size() > 1)
|
||||
{
|
||||
drawResultSquare(painter, y + rowHeight, true, test.getPoints());
|
||||
}
|
||||
if (m_tests.size() > 1)
|
||||
{
|
||||
drawResultSquare(painter, y + rowHeight, true, test.getPoints());
|
||||
}
|
||||
|
||||
y += 2 * rowHeight;
|
||||
}
|
||||
y += 2 * rowHeight;
|
||||
}
|
||||
|
||||
painter.translate(0, y + rowHeight);
|
||||
painter.translate(0, y + rowHeight);
|
||||
}
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
class LateSkillsModel : public PrintableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
LateSkillsModel(QObject *parent);
|
||||
LateSkillsModel(QObject* parent);
|
||||
|
||||
protected:
|
||||
void printTests(QPainter &painter) const override;
|
||||
void printTests(QPainter& painter) const override;
|
||||
};
|
||||
|
|
|
@ -4,26 +4,26 @@
|
|||
#include "PassivModel.h"
|
||||
#include "GenitivModel.h"
|
||||
|
||||
LateSkillsWidget::LateSkillsWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
LateSkillsWidget::LateSkillsWidget(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::LateSkillsWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->setupUi(this);
|
||||
ui->passivTableView->horizontalHeader()->hide();
|
||||
ui->genitivTableView->horizontalHeader()->hide();
|
||||
}
|
||||
|
||||
LateSkillsWidget::~LateSkillsWidget()
|
||||
{
|
||||
delete ui;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void LateSkillsWidget::setPassivModel(PassivModel *model)
|
||||
void LateSkillsWidget::setPassivModel(PassivModel* model)
|
||||
{
|
||||
ui->passivTableView->setModel(model);
|
||||
}
|
||||
|
||||
void LateSkillsWidget::setGenitivModel(GenitivModel *model)
|
||||
|
||||
void LateSkillsWidget::setGenitivModel(GenitivModel* model)
|
||||
{
|
||||
ui->genitivTableView->setModel(model);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,15 @@ class LateSkillsWidget;
|
|||
|
||||
class LateSkillsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
Ui::LateSkillsWidget *ui;
|
||||
Ui::LateSkillsWidget* ui;
|
||||
|
||||
public:
|
||||
LateSkillsWidget(QWidget *parent = nullptr);
|
||||
~LateSkillsWidget();
|
||||
LateSkillsWidget(QWidget* parent = nullptr);
|
||||
~LateSkillsWidget();
|
||||
|
||||
void setPassivModel(PassivModel *model);
|
||||
void setGenitivModel(GenitivModel *model);
|
||||
void setPassivModel(PassivModel* model);
|
||||
void setGenitivModel(GenitivModel* model);
|
||||
};
|
||||
|
|
|
@ -1,72 +1,72 @@
|
|||
#include "PassivModel.h"
|
||||
|
||||
PassivModel::PassivModel(QObject *parent)
|
||||
PassivModel::PassivModel(QObject* parent)
|
||||
: LateSkillsModel(parent)
|
||||
{
|
||||
m_tests = {{"Passiv",
|
||||
{"Elefant (1)", "Elefant (2)", "Pferde (1)", "Pferde (2)", "Bälle (1)", "Bälle (2)",
|
||||
"Ball (1)", "Ball (2)", "Fleisch (1)", "Fleisch (2)"}}};
|
||||
m_tests = {{"Passiv",
|
||||
{"Elefant (1)", "Elefant (2)", "Pferde (1)", "Pferde (2)", "Bälle (1)", "Bälle (2)",
|
||||
"Ball (1)", "Ball (2)", "Fleisch (1)", "Fleisch (2)"}}};
|
||||
|
||||
for (auto index : {1, 3, 5, 7, 9})
|
||||
{
|
||||
m_tests[0].items()[index].setValue(2);
|
||||
}
|
||||
for (auto index : {1, 3, 5, 7, 9})
|
||||
{
|
||||
m_tests[0].items()[index].setValue(2);
|
||||
}
|
||||
}
|
||||
|
||||
bool PassivModel::setData(const QModelIndex &modelIndex, const QVariant &value, int role)
|
||||
bool PassivModel::setData(const QModelIndex& modelIndex, const QVariant& value, int role)
|
||||
{
|
||||
if (role == Qt::CheckStateRole && value.toBool() == true)
|
||||
{
|
||||
if (modelIndex.column() % 2 == 0)
|
||||
{
|
||||
CheckableTestModel::setData(index(modelIndex.row(), modelIndex.column() + 1), false,
|
||||
role);
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckableTestModel::setData(index(modelIndex.row(), modelIndex.column() - 1), false,
|
||||
role);
|
||||
}
|
||||
}
|
||||
if (role == Qt::CheckStateRole && value.toBool() == true)
|
||||
{
|
||||
if (modelIndex.column() % 2 == 0)
|
||||
{
|
||||
CheckableTestModel::setData(index(modelIndex.row(), modelIndex.column() + 1), false,
|
||||
role);
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckableTestModel::setData(index(modelIndex.row(), modelIndex.column() - 1), false,
|
||||
role);
|
||||
}
|
||||
}
|
||||
|
||||
return CheckableTestModel::setData(modelIndex, value, role);
|
||||
return CheckableTestModel::setData(modelIndex, value, role);
|
||||
}
|
||||
|
||||
void PassivModel::read(const ESGRAF48::LateSkillsPassivModel &model)
|
||||
void PassivModel::read(const ESGRAF48::LateSkillsPassivModel& model)
|
||||
{
|
||||
auto &testItems = m_tests.at(0).items();
|
||||
auto& testItems = m_tests.at(0).items();
|
||||
|
||||
testItems[0].setState(model.elefant1());
|
||||
testItems[1].setState(model.elefant2());
|
||||
testItems[2].setState(model.pferde1());
|
||||
testItems[3].setState(model.pferde2());
|
||||
testItems[4].setState(model.baelle1());
|
||||
testItems[5].setState(model.baelle2());
|
||||
testItems[6].setState(model.ball1());
|
||||
testItems[7].setState(model.ball2());
|
||||
testItems[8].setState(model.fleisch1());
|
||||
testItems[9].setState(model.fleisch2());
|
||||
testItems[0].setState(model.elefant1());
|
||||
testItems[1].setState(model.elefant2());
|
||||
testItems[2].setState(model.pferde1());
|
||||
testItems[3].setState(model.pferde2());
|
||||
testItems[4].setState(model.baelle1());
|
||||
testItems[5].setState(model.baelle2());
|
||||
testItems[6].setState(model.ball1());
|
||||
testItems[7].setState(model.ball2());
|
||||
testItems[8].setState(model.fleisch1());
|
||||
testItems[9].setState(model.fleisch2());
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
void PassivModel::write(ESGRAF48::LateSkillsPassivModel &model) const
|
||||
void PassivModel::write(ESGRAF48::LateSkillsPassivModel& model) const
|
||||
{
|
||||
const auto &testItems = m_tests.at(0).items();
|
||||
const auto& testItems = m_tests.at(0).items();
|
||||
|
||||
model.set_elefant1(testItems[0].isChecked());
|
||||
model.set_elefant2(testItems[1].isChecked());
|
||||
model.set_pferde1(testItems[2].isChecked());
|
||||
model.set_pferde2(testItems[3].isChecked());
|
||||
model.set_baelle1(testItems[4].isChecked());
|
||||
model.set_baelle2(testItems[5].isChecked());
|
||||
model.set_ball1(testItems[6].isChecked());
|
||||
model.set_ball2(testItems[7].isChecked());
|
||||
model.set_fleisch1(testItems[8].isChecked());
|
||||
model.set_fleisch2(testItems[9].isChecked());
|
||||
model.set_elefant1(testItems[0].isChecked());
|
||||
model.set_elefant2(testItems[1].isChecked());
|
||||
model.set_pferde1(testItems[2].isChecked());
|
||||
model.set_pferde2(testItems[3].isChecked());
|
||||
model.set_baelle1(testItems[4].isChecked());
|
||||
model.set_baelle2(testItems[5].isChecked());
|
||||
model.set_ball1(testItems[6].isChecked());
|
||||
model.set_ball2(testItems[7].isChecked());
|
||||
model.set_fleisch1(testItems[8].isChecked());
|
||||
model.set_fleisch2(testItems[9].isChecked());
|
||||
}
|
||||
|
||||
void PassivModel::printHeader(QPainter &painter) const
|
||||
|
||||
void PassivModel::printHeader(QPainter& painter) const
|
||||
{
|
||||
drawHeader2(painter, "Subtest 6: Späte Fähigkeiten (7;0-8;11)");
|
||||
drawHeader2(painter, "Subtest 6: Späte Fähigkeiten (7;0-8;11)");
|
||||
}
|
||||
|
|
|
@ -5,15 +5,15 @@
|
|||
|
||||
class PassivModel : public LateSkillsModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PassivModel(QObject *parent);
|
||||
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
|
||||
PassivModel(QObject* parent);
|
||||
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
|
||||
|
||||
void read(const ESGRAF48::LateSkillsPassivModel &model);
|
||||
void write(ESGRAF48::LateSkillsPassivModel &model) const;
|
||||
void read(const ESGRAF48::LateSkillsPassivModel& model);
|
||||
void write(ESGRAF48::LateSkillsPassivModel& model) const;
|
||||
|
||||
protected:
|
||||
void printHeader(QPainter &painter) const override;
|
||||
void printHeader(QPainter& painter) const override;
|
||||
};
|
||||
|
|
|
@ -4,80 +4,80 @@
|
|||
|
||||
#include <regex>
|
||||
|
||||
PluralModel::PluralModel(QObject *parent)
|
||||
PluralModel::PluralModel(QObject* parent)
|
||||
: PrintableModel(parent)
|
||||
{
|
||||
m_title = "Subtest 5: Plural";
|
||||
m_title = "Subtest 5: Plural";
|
||||
|
||||
m_tests = {{"Plural",
|
||||
{"Fisch /-e/", "Banane /-n/", "Bonbon /-s/", "Ei /-er/", "Eimer /-ø/",
|
||||
"Korn UML+/-er/", "Nuss UML+/-e/", "Bär /-en/", "Apfel UML"}}};
|
||||
m_tests = {{"Plural",
|
||||
{"Fisch /-e/", "Banane /-n/", "Bonbon /-s/", "Ei /-er/", "Eimer /-ø/",
|
||||
"Korn UML+/-er/", "Nuss UML+/-e/", "Bär /-en/", "Apfel UML"}}};
|
||||
}
|
||||
|
||||
void PluralModel::read(const ESGRAF48::PluralModel &model)
|
||||
void PluralModel::read(const ESGRAF48::PluralModel& model)
|
||||
{
|
||||
auto &testItems = m_tests.at(0).items();
|
||||
auto& testItems = m_tests.at(0).items();
|
||||
|
||||
testItems[0].setState(model.fisch());
|
||||
testItems[1].setState(model.banane());
|
||||
testItems[2].setState(model.bonbon());
|
||||
testItems[3].setState(model.ei());
|
||||
testItems[4].setState(model.eimer());
|
||||
testItems[5].setState(model.korn());
|
||||
testItems[6].setState(model.nuss());
|
||||
testItems[7].setState(model.baer());
|
||||
testItems[8].setState(model.apfel());
|
||||
testItems[0].setState(model.fisch());
|
||||
testItems[1].setState(model.banane());
|
||||
testItems[2].setState(model.bonbon());
|
||||
testItems[3].setState(model.ei());
|
||||
testItems[4].setState(model.eimer());
|
||||
testItems[5].setState(model.korn());
|
||||
testItems[6].setState(model.nuss());
|
||||
testItems[7].setState(model.baer());
|
||||
testItems[8].setState(model.apfel());
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
void PluralModel::write(ESGRAF48::PluralModel &model) const
|
||||
void PluralModel::write(ESGRAF48::PluralModel& model) const
|
||||
{
|
||||
const auto &testItems = m_tests.at(0).items();
|
||||
const auto& testItems = m_tests.at(0).items();
|
||||
|
||||
model.set_fisch(testItems[0].isChecked());
|
||||
model.set_banane(testItems[1].isChecked());
|
||||
model.set_bonbon(testItems[2].isChecked());
|
||||
model.set_ei(testItems[3].isChecked());
|
||||
model.set_eimer(testItems[4].isChecked());
|
||||
model.set_korn(testItems[5].isChecked());
|
||||
model.set_nuss(testItems[6].isChecked());
|
||||
model.set_baer(testItems[7].isChecked());
|
||||
model.set_apfel(testItems[8].isChecked());
|
||||
model.set_fisch(testItems[0].isChecked());
|
||||
model.set_banane(testItems[1].isChecked());
|
||||
model.set_bonbon(testItems[2].isChecked());
|
||||
model.set_ei(testItems[3].isChecked());
|
||||
model.set_eimer(testItems[4].isChecked());
|
||||
model.set_korn(testItems[5].isChecked());
|
||||
model.set_nuss(testItems[6].isChecked());
|
||||
model.set_baer(testItems[7].isChecked());
|
||||
model.set_apfel(testItems[8].isChecked());
|
||||
}
|
||||
|
||||
void PluralModel::printTests(QPainter &painter) const
|
||||
void PluralModel::printTests(QPainter& painter) const
|
||||
{
|
||||
painter.setFont(tableFont());
|
||||
painter.setPen(tablePen());
|
||||
painter.setFont(tableFont());
|
||||
painter.setPen(tablePen());
|
||||
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
|
||||
double headerWidth = headerWidthFactor() * width;
|
||||
double cellWidth = cellWidthFactor() * width;
|
||||
double rowHeight = height;
|
||||
double headerWidth = headerWidthFactor() * width;
|
||||
double cellWidth = cellWidthFactor() * width;
|
||||
double rowHeight = height;
|
||||
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
for (const auto &test : m_tests)
|
||||
{
|
||||
drawTextSquare(painter, {0, y, headerWidth, 3 * rowHeight}, test.name());
|
||||
x = headerWidth;
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
for (const auto& test : m_tests)
|
||||
{
|
||||
drawTextSquare(painter, {0, y, headerWidth, 3 * rowHeight}, test.name());
|
||||
x = headerWidth;
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
QString itemText =
|
||||
QString::fromStdString(std::regex_replace(item.getText(), std::regex("\\s"), "\n"));
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
QString itemText =
|
||||
QString::fromStdString(std::regex_replace(item.getText(), std::regex("\\s"), "\n"));
|
||||
|
||||
drawTextSquare(painter, {x, y, cellWidth, 2 * rowHeight}, itemText);
|
||||
drawCheckSquare(painter, {x, y + 2 * rowHeight, cellWidth, rowHeight},
|
||||
item.isChecked());
|
||||
drawTextSquare(painter, {x, y, cellWidth, 2 * rowHeight}, itemText);
|
||||
drawCheckSquare(painter, {x, y + 2 * rowHeight, cellWidth, rowHeight},
|
||||
item.isChecked());
|
||||
|
||||
x += cellWidth;
|
||||
}
|
||||
y += 2 * rowHeight;
|
||||
}
|
||||
x += cellWidth;
|
||||
}
|
||||
y += 2 * rowHeight;
|
||||
}
|
||||
|
||||
painter.translate(0, y + 2 * rowHeight);
|
||||
painter.translate(0, y + 2 * rowHeight);
|
||||
}
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
|
||||
class PluralModel : public PrintableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PluralModel(QObject *parent);
|
||||
PluralModel(QObject* parent);
|
||||
|
||||
void read(const ESGRAF48::PluralModel &model);
|
||||
void write(ESGRAF48::PluralModel &model) const;
|
||||
void read(const ESGRAF48::PluralModel& model);
|
||||
void write(ESGRAF48::PluralModel& model) const;
|
||||
|
||||
protected:
|
||||
virtual void printTests(QPainter &painter) const;
|
||||
virtual void printTests(QPainter& painter) const;
|
||||
};
|
||||
|
|
|
@ -3,21 +3,21 @@
|
|||
|
||||
#include "PluralModel.h"
|
||||
|
||||
PluralWidget::PluralWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::PluralWidget)
|
||||
PluralWidget::PluralWidget(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::PluralWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->pluralTableView->horizontalHeader()->hide();
|
||||
ui->pluralTableView->horizontalHeader()->hide();
|
||||
}
|
||||
|
||||
PluralWidget::~PluralWidget()
|
||||
{
|
||||
delete ui;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void PluralWidget::setModel(PluralModel *model)
|
||||
void PluralWidget::setModel(PluralModel* model)
|
||||
{
|
||||
ui->pluralTableView->setModel(model);
|
||||
ui->pluralTableView->setModel(model);
|
||||
}
|
||||
|
|
|
@ -10,14 +10,14 @@ class PluralWidget;
|
|||
|
||||
class PluralWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
Ui::PluralWidget *ui;
|
||||
Ui::PluralWidget* ui;
|
||||
|
||||
public:
|
||||
PluralWidget(QWidget *parent = nullptr);
|
||||
~PluralWidget();
|
||||
PluralWidget(QWidget* parent = nullptr);
|
||||
~PluralWidget();
|
||||
|
||||
void setModel(PluralModel *model);
|
||||
void setModel(PluralModel* model);
|
||||
};
|
||||
|
|
|
@ -1,115 +1,115 @@
|
|||
#include "OTModel.h"
|
||||
|
||||
OTModel::OTModel(QObject *parent)
|
||||
OTModel::OTModel(QObject* parent)
|
||||
: V2SvkModel(parent)
|
||||
{
|
||||
m_tests = {
|
||||
{"Objekt-Topikalisierung",
|
||||
{"Affe", "Affe", "Affe", "Affe", "Schwein", "Schwein", "Schwein", "Schwein", "Gans",
|
||||
"Gans", "Gans", "Gans"}},
|
||||
{"SVK: Stamm",
|
||||
{"Affe", "Affe", "Affe", "Affe", "Schwein", "Schwein", "Schwein", "Schwein", "Gans",
|
||||
"Gans", "Gans", "Gans"}},
|
||||
};
|
||||
m_tests = {
|
||||
{"Objekt-Topikalisierung",
|
||||
{"Affe", "Affe", "Affe", "Affe", "Schwein", "Schwein", "Schwein", "Schwein", "Gans",
|
||||
"Gans", "Gans", "Gans"}},
|
||||
{"SVK: Stamm",
|
||||
{"Affe", "Affe", "Affe", "Affe", "Schwein", "Schwein", "Schwein", "Schwein", "Gans",
|
||||
"Gans", "Gans", "Gans"}},
|
||||
};
|
||||
}
|
||||
|
||||
unsigned int OTModel::getV2Points() const
|
||||
{
|
||||
unsigned int points = 0;
|
||||
unsigned int points = 0;
|
||||
|
||||
for (auto testIndex : {0})
|
||||
{
|
||||
const auto &test = m_tests.at(testIndex);
|
||||
for (auto testIndex : {0})
|
||||
{
|
||||
const auto& test = m_tests.at(testIndex);
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return points;
|
||||
return points;
|
||||
}
|
||||
|
||||
unsigned int OTModel::getSvkPoints() const
|
||||
{
|
||||
unsigned int points = 0;
|
||||
unsigned int points = 0;
|
||||
|
||||
for (auto testIndex : {1})
|
||||
{
|
||||
const auto &test = m_tests.at(testIndex);
|
||||
for (auto testIndex : {1})
|
||||
{
|
||||
const auto& test = m_tests.at(testIndex);
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return points;
|
||||
return points;
|
||||
}
|
||||
|
||||
void OTModel::write(ESGRAF48::V2SvkModel &model) const
|
||||
void OTModel::write(ESGRAF48::V2SvkModel& model) const
|
||||
{
|
||||
auto writeFourVals = [&](ESGRAF48::V2SvkModel::FourEach *modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(testIndex).items();
|
||||
auto writeFourVals = [&](ESGRAF48::V2SvkModel::FourEach* modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
modelData->set_affe1(testItems[0].isChecked());
|
||||
modelData->set_affe2(testItems[1].isChecked());
|
||||
modelData->set_affe3(testItems[2].isChecked());
|
||||
modelData->set_affe4(testItems[3].isChecked());
|
||||
modelData->set_schwein1(testItems[4].isChecked());
|
||||
modelData->set_schwein2(testItems[5].isChecked());
|
||||
modelData->set_schwein3(testItems[6].isChecked());
|
||||
modelData->set_schwein4(testItems[7].isChecked());
|
||||
modelData->set_gans1(testItems[8].isChecked());
|
||||
modelData->set_gans2(testItems[9].isChecked());
|
||||
modelData->set_gans3(testItems[10].isChecked());
|
||||
modelData->set_gans4(testItems[11].isChecked());
|
||||
}
|
||||
};
|
||||
modelData->set_affe1(testItems[0].isChecked());
|
||||
modelData->set_affe2(testItems[1].isChecked());
|
||||
modelData->set_affe3(testItems[2].isChecked());
|
||||
modelData->set_affe4(testItems[3].isChecked());
|
||||
modelData->set_schwein1(testItems[4].isChecked());
|
||||
modelData->set_schwein2(testItems[5].isChecked());
|
||||
modelData->set_schwein3(testItems[6].isChecked());
|
||||
modelData->set_schwein4(testItems[7].isChecked());
|
||||
modelData->set_gans1(testItems[8].isChecked());
|
||||
modelData->set_gans2(testItems[9].isChecked());
|
||||
modelData->set_gans3(testItems[10].isChecked());
|
||||
modelData->set_gans4(testItems[11].isChecked());
|
||||
}
|
||||
};
|
||||
|
||||
writeFourVals(model.mutable_objtop(), 0);
|
||||
writeFourVals(model.mutable_svkstamm(), 1);
|
||||
writeFourVals(model.mutable_objtop(), 0);
|
||||
writeFourVals(model.mutable_svkstamm(), 1);
|
||||
}
|
||||
|
||||
void OTModel::read(const ESGRAF48::V2SvkModel &model)
|
||||
void OTModel::read(const ESGRAF48::V2SvkModel& model)
|
||||
{
|
||||
auto readFourVals = [&](const ESGRAF48::V2SvkModel::FourEach &modelData, int testIndex) {
|
||||
auto &testItems = m_tests.at(testIndex).items();
|
||||
auto readFourVals = [&](const ESGRAF48::V2SvkModel::FourEach& modelData, int testIndex) {
|
||||
auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
testItems[0].setState(modelData.affe1());
|
||||
testItems[1].setState(modelData.affe2());
|
||||
testItems[2].setState(modelData.affe3());
|
||||
testItems[3].setState(modelData.affe4());
|
||||
testItems[4].setState(modelData.schwein1());
|
||||
testItems[5].setState(modelData.schwein2());
|
||||
testItems[6].setState(modelData.schwein3());
|
||||
testItems[7].setState(modelData.schwein4());
|
||||
testItems[8].setState(modelData.gans1());
|
||||
testItems[9].setState(modelData.gans2());
|
||||
testItems[10].setState(modelData.gans3());
|
||||
testItems[11].setState(modelData.gans4());
|
||||
};
|
||||
testItems[0].setState(modelData.affe1());
|
||||
testItems[1].setState(modelData.affe2());
|
||||
testItems[2].setState(modelData.affe3());
|
||||
testItems[3].setState(modelData.affe4());
|
||||
testItems[4].setState(modelData.schwein1());
|
||||
testItems[5].setState(modelData.schwein2());
|
||||
testItems[6].setState(modelData.schwein3());
|
||||
testItems[7].setState(modelData.schwein4());
|
||||
testItems[8].setState(modelData.gans1());
|
||||
testItems[9].setState(modelData.gans2());
|
||||
testItems[10].setState(modelData.gans3());
|
||||
testItems[11].setState(modelData.gans4());
|
||||
};
|
||||
|
||||
readFourVals(model.objtop(), 0);
|
||||
readFourVals(model.svkstamm(), 1);
|
||||
readFourVals(model.objtop(), 0);
|
||||
readFourVals(model.svkstamm(), 1);
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
std::set<int> OTModel::v2Tests() const
|
||||
{
|
||||
return {0};
|
||||
return {0};
|
||||
};
|
||||
|
||||
std::set<int> OTModel::svkTests() const
|
||||
{
|
||||
return {1};
|
||||
return {1};
|
||||
};
|
||||
|
|
|
@ -5,20 +5,20 @@
|
|||
|
||||
class OTModel : public V2SvkModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
OTModel(QObject *parent);
|
||||
OTModel(QObject* parent);
|
||||
|
||||
unsigned int getV2Points() const override;
|
||||
unsigned int getSvkPoints() const override;
|
||||
unsigned int getV2Points() const override;
|
||||
unsigned int getSvkPoints() const override;
|
||||
|
||||
void write(ESGRAF48::V2SvkModel &model) const override;
|
||||
void read(const ESGRAF48::V2SvkModel &model) override;
|
||||
void write(ESGRAF48::V2SvkModel& model) const override;
|
||||
void read(const ESGRAF48::V2SvkModel& model) override;
|
||||
|
||||
protected:
|
||||
void printHeader(QPainter &) const override {};
|
||||
void printHeader(QPainter&) const override{};
|
||||
|
||||
std::set<int> v2Tests() const override;
|
||||
std::set<int> svkTests() const override;
|
||||
std::set<int> v2Tests() const override;
|
||||
std::set<int> svkTests() const override;
|
||||
};
|
||||
|
|
|
@ -1,105 +1,105 @@
|
|||
#include "TPeModel.h"
|
||||
|
||||
TPeModel::TPeModel(QObject *parent)
|
||||
TPeModel::TPeModel(QObject* parent)
|
||||
: V2SvkModel(parent)
|
||||
{
|
||||
m_tests = {
|
||||
{"Temporaladverb Perfekt", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
{"Verbtrennung", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
{"SVK: /-e/ o. Stamm", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
{"Partizip", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
};
|
||||
m_tests = {
|
||||
{"Temporaladverb Perfekt", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
{"Verbtrennung", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
{"SVK: /-e/ o. Stamm", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
{"Partizip", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
};
|
||||
}
|
||||
|
||||
unsigned int TPeModel::getV2Points() const
|
||||
{
|
||||
unsigned int points = 0;
|
||||
unsigned int points = 0;
|
||||
|
||||
for (auto testIndex : {0, 1})
|
||||
{
|
||||
const auto &test = m_tests.at(testIndex);
|
||||
for (auto testIndex : {0, 1})
|
||||
{
|
||||
const auto& test = m_tests.at(testIndex);
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return points;
|
||||
return points;
|
||||
}
|
||||
|
||||
unsigned int TPeModel::getSvkPoints() const
|
||||
{
|
||||
unsigned int points = 0;
|
||||
unsigned int points = 0;
|
||||
|
||||
for (auto testIndex : {2, 3})
|
||||
{
|
||||
const auto &test = m_tests.at(testIndex);
|
||||
for (auto testIndex : {2, 3})
|
||||
{
|
||||
const auto& test = m_tests.at(testIndex);
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return points;
|
||||
return points;
|
||||
}
|
||||
|
||||
void TPeModel::write(ESGRAF48::V2SvkModel &model) const
|
||||
void TPeModel::write(ESGRAF48::V2SvkModel& model) const
|
||||
{
|
||||
auto writeTwoVals = [&](ESGRAF48::V2SvkModel::TwoEach *modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(testIndex).items();
|
||||
auto writeTwoVals = [&](ESGRAF48::V2SvkModel::TwoEach* modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
modelData->set_affe1(testItems[0].isChecked());
|
||||
modelData->set_affe2(testItems[1].isChecked());
|
||||
modelData->set_schwein1(testItems[2].isChecked());
|
||||
modelData->set_schwein2(testItems[3].isChecked());
|
||||
modelData->set_gans1(testItems[4].isChecked());
|
||||
modelData->set_gans2(testItems[5].isChecked());
|
||||
}
|
||||
};
|
||||
modelData->set_affe1(testItems[0].isChecked());
|
||||
modelData->set_affe2(testItems[1].isChecked());
|
||||
modelData->set_schwein1(testItems[2].isChecked());
|
||||
modelData->set_schwein2(testItems[3].isChecked());
|
||||
modelData->set_gans1(testItems[4].isChecked());
|
||||
modelData->set_gans2(testItems[5].isChecked());
|
||||
}
|
||||
};
|
||||
|
||||
writeTwoVals(model.mutable_tempperf(), 0);
|
||||
writeTwoVals(model.mutable_verbtrennung2(), 1);
|
||||
writeTwoVals(model.mutable_svke2(), 2);
|
||||
writeTwoVals(model.mutable_partizip(), 3);
|
||||
writeTwoVals(model.mutable_tempperf(), 0);
|
||||
writeTwoVals(model.mutable_verbtrennung2(), 1);
|
||||
writeTwoVals(model.mutable_svke2(), 2);
|
||||
writeTwoVals(model.mutable_partizip(), 3);
|
||||
}
|
||||
|
||||
void TPeModel::read(const ESGRAF48::V2SvkModel &model)
|
||||
void TPeModel::read(const ESGRAF48::V2SvkModel& model)
|
||||
{
|
||||
auto readTwoVals = [&](const ESGRAF48::V2SvkModel::TwoEach &modelData, int testIndex) {
|
||||
auto &testItems = m_tests.at(testIndex).items();
|
||||
auto readTwoVals = [&](const ESGRAF48::V2SvkModel::TwoEach& modelData, int testIndex) {
|
||||
auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
testItems[0].setState(modelData.affe1());
|
||||
testItems[1].setState(modelData.affe2());
|
||||
testItems[2].setState(modelData.schwein1());
|
||||
testItems[3].setState(modelData.schwein2());
|
||||
testItems[4].setState(modelData.gans1());
|
||||
testItems[5].setState(modelData.gans2());
|
||||
};
|
||||
testItems[0].setState(modelData.affe1());
|
||||
testItems[1].setState(modelData.affe2());
|
||||
testItems[2].setState(modelData.schwein1());
|
||||
testItems[3].setState(modelData.schwein2());
|
||||
testItems[4].setState(modelData.gans1());
|
||||
testItems[5].setState(modelData.gans2());
|
||||
};
|
||||
|
||||
readTwoVals(model.tempperf(), 0);
|
||||
readTwoVals(model.verbtrennung2(), 1);
|
||||
readTwoVals(model.svke2(), 2);
|
||||
readTwoVals(model.partizip(), 3);
|
||||
readTwoVals(model.tempperf(), 0);
|
||||
readTwoVals(model.verbtrennung2(), 1);
|
||||
readTwoVals(model.svke2(), 2);
|
||||
readTwoVals(model.partizip(), 3);
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
std::set<int> TPeModel::v2Tests() const
|
||||
{
|
||||
return {0, 1};
|
||||
return {0, 1};
|
||||
};
|
||||
|
||||
std::set<int> TPeModel::svkTests() const
|
||||
{
|
||||
return {2, 3};
|
||||
return {2, 3};
|
||||
};
|
||||
|
|
|
@ -5,20 +5,20 @@
|
|||
|
||||
class TPeModel : public V2SvkModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TPeModel(QObject *parent);
|
||||
TPeModel(QObject* parent);
|
||||
|
||||
unsigned int getV2Points() const override;
|
||||
unsigned int getSvkPoints() const override;
|
||||
unsigned int getV2Points() const override;
|
||||
unsigned int getSvkPoints() const override;
|
||||
|
||||
void write(ESGRAF48::V2SvkModel &model) const override;
|
||||
void read(const ESGRAF48::V2SvkModel &model) override;
|
||||
void write(ESGRAF48::V2SvkModel& model) const override;
|
||||
void read(const ESGRAF48::V2SvkModel& model) override;
|
||||
|
||||
protected:
|
||||
void printHeader(QPainter &) const override {};
|
||||
void printHeader(QPainter&) const override{};
|
||||
|
||||
std::set<int> v2Tests() const override;
|
||||
std::set<int> svkTests() const override;
|
||||
std::set<int> v2Tests() const override;
|
||||
std::set<int> svkTests() const override;
|
||||
};
|
||||
|
|
|
@ -1,99 +1,99 @@
|
|||
#include "TPrModel.h"
|
||||
|
||||
TPrModel::TPrModel(QObject *parent)
|
||||
TPrModel::TPrModel(QObject* parent)
|
||||
: V2SvkModel(parent)
|
||||
{
|
||||
m_tests = {
|
||||
{"Temporaladverb Präsens", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
{"SKV: /-e/ o. Stamm", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
};
|
||||
m_tests = {
|
||||
{"Temporaladverb Präsens", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
{"SKV: /-e/ o. Stamm", {"Affe", "Affe", "Schwein", "Schwein", "Gans", "Gans"}},
|
||||
};
|
||||
}
|
||||
|
||||
unsigned int TPrModel::getV2Points() const
|
||||
{
|
||||
unsigned int points = 0;
|
||||
unsigned int points = 0;
|
||||
|
||||
for (auto testIndex : {0})
|
||||
{
|
||||
const auto &test = m_tests.at(testIndex);
|
||||
for (auto testIndex : {0})
|
||||
{
|
||||
const auto& test = m_tests.at(testIndex);
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return points;
|
||||
return points;
|
||||
}
|
||||
|
||||
unsigned int TPrModel::getSvkPoints() const
|
||||
{
|
||||
unsigned int points = 0;
|
||||
unsigned int points = 0;
|
||||
|
||||
for (auto testIndex : {1})
|
||||
{
|
||||
const auto &test = m_tests.at(testIndex);
|
||||
for (auto testIndex : {1})
|
||||
{
|
||||
const auto& test = m_tests.at(testIndex);
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return points;
|
||||
return points;
|
||||
}
|
||||
|
||||
void TPrModel::write(ESGRAF48::V2SvkModel &model) const
|
||||
void TPrModel::write(ESGRAF48::V2SvkModel& model) const
|
||||
{
|
||||
auto writeTwoVals = [&](ESGRAF48::V2SvkModel::TwoEach *modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(testIndex).items();
|
||||
auto writeTwoVals = [&](ESGRAF48::V2SvkModel::TwoEach* modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
modelData->set_affe1(testItems[0].isChecked());
|
||||
modelData->set_affe2(testItems[1].isChecked());
|
||||
modelData->set_schwein1(testItems[2].isChecked());
|
||||
modelData->set_schwein2(testItems[3].isChecked());
|
||||
modelData->set_gans1(testItems[4].isChecked());
|
||||
modelData->set_gans2(testItems[5].isChecked());
|
||||
}
|
||||
};
|
||||
modelData->set_affe1(testItems[0].isChecked());
|
||||
modelData->set_affe2(testItems[1].isChecked());
|
||||
modelData->set_schwein1(testItems[2].isChecked());
|
||||
modelData->set_schwein2(testItems[3].isChecked());
|
||||
modelData->set_gans1(testItems[4].isChecked());
|
||||
modelData->set_gans2(testItems[5].isChecked());
|
||||
}
|
||||
};
|
||||
|
||||
writeTwoVals(model.mutable_temppraes(), 0);
|
||||
writeTwoVals(model.mutable_svke1(), 1);
|
||||
writeTwoVals(model.mutable_temppraes(), 0);
|
||||
writeTwoVals(model.mutable_svke1(), 1);
|
||||
}
|
||||
|
||||
void TPrModel::read(const ESGRAF48::V2SvkModel &model)
|
||||
void TPrModel::read(const ESGRAF48::V2SvkModel& model)
|
||||
{
|
||||
auto readTwoVals = [&](const ESGRAF48::V2SvkModel::TwoEach &modelData, int testIndex) {
|
||||
auto &testItems = m_tests.at(testIndex).items();
|
||||
auto readTwoVals = [&](const ESGRAF48::V2SvkModel::TwoEach& modelData, int testIndex) {
|
||||
auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
testItems[0].setState(modelData.affe1());
|
||||
testItems[1].setState(modelData.affe2());
|
||||
testItems[2].setState(modelData.schwein1());
|
||||
testItems[3].setState(modelData.schwein2());
|
||||
testItems[4].setState(modelData.gans1());
|
||||
testItems[5].setState(modelData.gans2());
|
||||
};
|
||||
testItems[0].setState(modelData.affe1());
|
||||
testItems[1].setState(modelData.affe2());
|
||||
testItems[2].setState(modelData.schwein1());
|
||||
testItems[3].setState(modelData.schwein2());
|
||||
testItems[4].setState(modelData.gans1());
|
||||
testItems[5].setState(modelData.gans2());
|
||||
};
|
||||
|
||||
readTwoVals(model.temppraes(), 0);
|
||||
readTwoVals(model.svke1(), 1);
|
||||
readTwoVals(model.temppraes(), 0);
|
||||
readTwoVals(model.svke1(), 1);
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
std::set<int> TPrModel::v2Tests() const
|
||||
{
|
||||
return {0};
|
||||
return {0};
|
||||
};
|
||||
|
||||
std::set<int> TPrModel::svkTests() const
|
||||
{
|
||||
return {1};
|
||||
return {1};
|
||||
};
|
||||
|
|
|
@ -5,20 +5,20 @@
|
|||
|
||||
class TPrModel : public V2SvkModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TPrModel(QObject *parent);
|
||||
TPrModel(QObject* parent);
|
||||
|
||||
unsigned int getV2Points() const override;
|
||||
unsigned int getSvkPoints() const override;
|
||||
unsigned int getV2Points() const override;
|
||||
unsigned int getSvkPoints() const override;
|
||||
|
||||
void write(ESGRAF48::V2SvkModel &model) const override;
|
||||
void read(const ESGRAF48::V2SvkModel &model) override;
|
||||
void write(ESGRAF48::V2SvkModel& model) const override;
|
||||
void read(const ESGRAF48::V2SvkModel& model) override;
|
||||
|
||||
protected:
|
||||
void printHeader(QPainter &) const override{};
|
||||
void printHeader(QPainter&) const override{};
|
||||
|
||||
std::set<int> v2Tests() const override;
|
||||
std::set<int> svkTests() const override;
|
||||
std::set<int> v2Tests() const override;
|
||||
std::set<int> svkTests() const override;
|
||||
};
|
||||
|
|
|
@ -2,136 +2,137 @@
|
|||
|
||||
#include <regex>
|
||||
|
||||
V2SvkModel::V2SvkModel(QObject *parent)
|
||||
V2SvkModel::V2SvkModel(QObject* parent)
|
||||
: PrintableModel(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void V2SvkModel::printTests(QPainter &painter) const
|
||||
void V2SvkModel::printTests(QPainter& painter) const
|
||||
{
|
||||
painter.setFont(tableFont());
|
||||
painter.setPen(tablePen());
|
||||
painter.setFont(tableFont());
|
||||
painter.setPen(tablePen());
|
||||
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
|
||||
auto v2TestIndices = v2Tests();
|
||||
auto svkTestIndices = svkTests();
|
||||
auto v2TestIndices = v2Tests();
|
||||
auto svkTestIndices = svkTests();
|
||||
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
auto testIndex = 0;
|
||||
for (const auto &test : m_tests)
|
||||
{
|
||||
double rowHeaderWidth = headerWidthFactor() * width;
|
||||
double resultCellWidth = (test.size() > 8 ? 0.5 : 1) * cellWidthFactor() * width;
|
||||
double rowHeight = height;
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
auto testIndex = 0;
|
||||
for (const auto& test : m_tests)
|
||||
{
|
||||
double rowHeaderWidth = headerWidthFactor() * width;
|
||||
double resultCellWidth = (test.size() > 8 ? 0.5 : 1) * cellWidthFactor() * width;
|
||||
double rowHeight = height;
|
||||
|
||||
QString testName = test.name();
|
||||
if (testName.length() > 20)
|
||||
{
|
||||
testName = QString::fromStdString(
|
||||
std::regex_replace(testName.toStdString(), std::regex("[\\s-]"), "\n"));
|
||||
}
|
||||
QString testName = test.name();
|
||||
if (testName.length() > 20)
|
||||
{
|
||||
testName = QString::fromStdString(
|
||||
std::regex_replace(testName.toStdString(), std::regex("[\\s-]"), "\n"));
|
||||
}
|
||||
|
||||
if (testIndex == 0)
|
||||
{
|
||||
drawTextSquare(painter, {x, y, rowHeaderWidth, 2 * rowHeight}, testName);
|
||||
x += rowHeaderWidth;
|
||||
if (testIndex == 0)
|
||||
{
|
||||
drawTextSquare(painter, {x, y, rowHeaderWidth, 2 * rowHeight}, testName);
|
||||
x += rowHeaderWidth;
|
||||
|
||||
std::vector<std::pair<std::string, unsigned int>> columnHeaders;
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
const auto &itemText = item.getText();
|
||||
if (!columnHeaders.empty() && columnHeaders.back().first == itemText)
|
||||
{
|
||||
columnHeaders.back().second++;
|
||||
}
|
||||
else
|
||||
{
|
||||
columnHeaders.emplace_back(itemText, 1);
|
||||
}
|
||||
}
|
||||
std::vector<std::pair<std::string, unsigned int>> columnHeaders;
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
const auto& itemText = item.getText();
|
||||
if (!columnHeaders.empty() && columnHeaders.back().first == itemText)
|
||||
{
|
||||
columnHeaders.back().second++;
|
||||
}
|
||||
else
|
||||
{
|
||||
columnHeaders.emplace_back(itemText, 1);
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto &columnHeader : columnHeaders)
|
||||
{
|
||||
double cellWidth = columnHeader.second * resultCellWidth;
|
||||
drawTextSquare(painter, {x, y, cellWidth, rowHeight}, columnHeader.first.c_str());
|
||||
x += cellWidth;
|
||||
}
|
||||
x = rowHeaderWidth;
|
||||
y += rowHeight;
|
||||
}
|
||||
else
|
||||
{
|
||||
drawTextSquare(painter, {x, y, rowHeaderWidth, rowHeight}, testName);
|
||||
x += rowHeaderWidth;
|
||||
}
|
||||
for (const auto& columnHeader : columnHeaders)
|
||||
{
|
||||
double cellWidth = columnHeader.second * resultCellWidth;
|
||||
drawTextSquare(painter, {x, y, cellWidth, rowHeight}, columnHeader.first.c_str());
|
||||
x += cellWidth;
|
||||
}
|
||||
x = rowHeaderWidth;
|
||||
y += rowHeight;
|
||||
}
|
||||
else
|
||||
{
|
||||
drawTextSquare(painter, {x, y, rowHeaderWidth, rowHeight}, testName);
|
||||
x += rowHeaderWidth;
|
||||
}
|
||||
|
||||
unsigned int emptyItemsStack = 0;
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.getText().empty())
|
||||
{
|
||||
emptyItemsStack++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (emptyItemsStack > 0)
|
||||
{
|
||||
drawGreySquare(painter, {x - emptyItemsStack * resultCellWidth, y,
|
||||
emptyItemsStack * resultCellWidth, rowHeight});
|
||||
emptyItemsStack = 0;
|
||||
}
|
||||
unsigned int emptyItemsStack = 0;
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.getText().empty())
|
||||
{
|
||||
emptyItemsStack++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (emptyItemsStack > 0)
|
||||
{
|
||||
drawGreySquare(painter,
|
||||
{x - emptyItemsStack * resultCellWidth, y,
|
||||
emptyItemsStack * resultCellWidth, rowHeight});
|
||||
emptyItemsStack = 0;
|
||||
}
|
||||
|
||||
drawCheckSquare(painter, {x, y, resultCellWidth, rowHeight}, item.isChecked());
|
||||
}
|
||||
x += resultCellWidth;
|
||||
}
|
||||
if (emptyItemsStack > 0)
|
||||
{
|
||||
drawGreySquare(painter, {x - emptyItemsStack * resultCellWidth, y,
|
||||
emptyItemsStack * resultCellWidth, rowHeight});
|
||||
emptyItemsStack = 0;
|
||||
}
|
||||
drawCheckSquare(painter, {x, y, resultCellWidth, rowHeight}, item.isChecked());
|
||||
}
|
||||
x += resultCellWidth;
|
||||
}
|
||||
if (emptyItemsStack > 0)
|
||||
{
|
||||
drawGreySquare(painter,
|
||||
{x - emptyItemsStack * resultCellWidth, y,
|
||||
emptyItemsStack * resultCellWidth, rowHeight});
|
||||
emptyItemsStack = 0;
|
||||
}
|
||||
|
||||
if (v2TestIndices.find(testIndex) != v2TestIndices.end())
|
||||
{
|
||||
drawResultSquare(painter, y, false, test.getPoints());
|
||||
}
|
||||
if (v2TestIndices.find(testIndex) != v2TestIndices.end())
|
||||
{
|
||||
drawResultSquare(painter, y, false, test.getPoints());
|
||||
}
|
||||
|
||||
if (svkTestIndices.find(testIndex) != svkTestIndices.end())
|
||||
{
|
||||
drawResultSquare(painter, y, true, test.getPoints());
|
||||
}
|
||||
if (svkTestIndices.find(testIndex) != svkTestIndices.end())
|
||||
{
|
||||
drawResultSquare(painter, y, true, test.getPoints());
|
||||
}
|
||||
|
||||
x = 0;
|
||||
y += rowHeight;
|
||||
x = 0;
|
||||
y += rowHeight;
|
||||
|
||||
testIndex++;
|
||||
}
|
||||
testIndex++;
|
||||
}
|
||||
|
||||
x = 0;
|
||||
y += height;
|
||||
x = 0;
|
||||
y += height;
|
||||
|
||||
painter.translate(0, y);
|
||||
painter.translate(0, y);
|
||||
}
|
||||
|
||||
void V2SvkModel::printSummary(QPainter &painter, unsigned int v2Points, unsigned int svkPoints)
|
||||
void V2SvkModel::printSummary(QPainter& painter, unsigned int v2Points, unsigned int svkPoints)
|
||||
{
|
||||
painter.setFont(PrintableModel::tableFont());
|
||||
painter.setPen(PrintableModel::tablePen());
|
||||
painter.setFont(PrintableModel::tableFont());
|
||||
painter.setPen(PrintableModel::tablePen());
|
||||
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
|
||||
painter.drawText(0, 0, 0.91 * width, height, Qt::AlignRight | Qt::AlignVCenter,
|
||||
"Rohwertpunkte Total:");
|
||||
painter.drawText(0, 0, 0.91 * width, height, Qt::AlignRight | Qt::AlignVCenter,
|
||||
"Rohwertpunkte Total:");
|
||||
|
||||
painter.setPen(resultPen());
|
||||
drawNumberSquare(painter, 0.93 * width, 0, v2Points);
|
||||
drawNumberSquare(painter, 0.97 * width, 0, svkPoints);
|
||||
painter.setPen(resultPen());
|
||||
drawNumberSquare(painter, 0.93 * width, 0, v2Points);
|
||||
drawNumberSquare(painter, 0.97 * width, 0, svkPoints);
|
||||
|
||||
painter.translate(0, 3 * height);
|
||||
painter.translate(0, 3 * height);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,23 +5,23 @@
|
|||
|
||||
class V2SvkModel : public PrintableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
V2SvkModel(QObject *parent);
|
||||
V2SvkModel(QObject* parent);
|
||||
|
||||
virtual unsigned int getV2Points() const = 0;
|
||||
virtual unsigned int getSvkPoints() const = 0;
|
||||
virtual unsigned int getV2Points() const = 0;
|
||||
virtual unsigned int getSvkPoints() const = 0;
|
||||
|
||||
virtual void write(ESGRAF48::V2SvkModel &model) const = 0;
|
||||
virtual void read(const ESGRAF48::V2SvkModel &model) = 0;
|
||||
virtual void write(ESGRAF48::V2SvkModel& model) const = 0;
|
||||
virtual void read(const ESGRAF48::V2SvkModel& model) = 0;
|
||||
|
||||
static void printSummary(QPainter &painter, unsigned int v2Points, unsigned int svkPoints);
|
||||
static void printSummary(QPainter& painter, unsigned int v2Points, unsigned int svkPoints);
|
||||
|
||||
protected:
|
||||
void printTests(QPainter &painter) const override;
|
||||
void printSummary(QPainter &painter) const override {};
|
||||
void printTests(QPainter& painter) const override;
|
||||
void printSummary(QPainter& painter) const override{};
|
||||
|
||||
virtual std::set<int> v2Tests() const = 0;
|
||||
virtual std::set<int> svkTests() const = 0;
|
||||
virtual std::set<int> v2Tests() const = 0;
|
||||
virtual std::set<int> svkTests() const = 0;
|
||||
};
|
||||
|
|
|
@ -6,38 +6,38 @@
|
|||
#include "TPrModel.h"
|
||||
#include "TPeModel.h"
|
||||
|
||||
V2SvkWidget::V2SvkWidget(QWidget *parent)
|
||||
V2SvkWidget::V2SvkWidget(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::V2SvkWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->wfTableView->horizontalHeader()->hide();
|
||||
ui->otTableView->horizontalHeader()->hide();
|
||||
ui->tprTableView->horizontalHeader()->hide();
|
||||
ui->tpeTableView->horizontalHeader()->hide();
|
||||
ui->setupUi(this);
|
||||
ui->wfTableView->horizontalHeader()->hide();
|
||||
ui->otTableView->horizontalHeader()->hide();
|
||||
ui->tprTableView->horizontalHeader()->hide();
|
||||
ui->tpeTableView->horizontalHeader()->hide();
|
||||
}
|
||||
|
||||
V2SvkWidget::~V2SvkWidget()
|
||||
{
|
||||
delete ui;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void V2SvkWidget::setWFModel(WFModel *model)
|
||||
void V2SvkWidget::setWFModel(WFModel* model)
|
||||
{
|
||||
ui->wfTableView->setModel(model);
|
||||
ui->wfTableView->setModel(model);
|
||||
}
|
||||
|
||||
void V2SvkWidget::setOTModel(OTModel *model)
|
||||
void V2SvkWidget::setOTModel(OTModel* model)
|
||||
{
|
||||
ui->otTableView->setModel(model);
|
||||
ui->otTableView->setModel(model);
|
||||
}
|
||||
|
||||
void V2SvkWidget::setTPrModel(TPrModel *model)
|
||||
void V2SvkWidget::setTPrModel(TPrModel* model)
|
||||
{
|
||||
ui->tprTableView->setModel(model);
|
||||
ui->tprTableView->setModel(model);
|
||||
}
|
||||
|
||||
void V2SvkWidget::setTPeModel(TPeModel *model)
|
||||
void V2SvkWidget::setTPeModel(TPeModel* model)
|
||||
{
|
||||
ui->tpeTableView->setModel(model);
|
||||
ui->tpeTableView->setModel(model);
|
||||
}
|
||||
|
|
|
@ -13,17 +13,17 @@ class V2SvkWidget;
|
|||
|
||||
class V2SvkWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
Ui::V2SvkWidget *ui;
|
||||
Ui::V2SvkWidget* ui;
|
||||
|
||||
public:
|
||||
V2SvkWidget(QWidget *parent = nullptr);
|
||||
~V2SvkWidget();
|
||||
V2SvkWidget(QWidget* parent = nullptr);
|
||||
~V2SvkWidget();
|
||||
|
||||
void setWFModel(WFModel *model);
|
||||
void setOTModel(OTModel *model);
|
||||
void setTPrModel(TPrModel *model);
|
||||
void setTPeModel(TPeModel *model);
|
||||
void setWFModel(WFModel* model);
|
||||
void setOTModel(OTModel* model);
|
||||
void setTPrModel(TPrModel* model);
|
||||
void setTPeModel(TPeModel* model);
|
||||
};
|
||||
|
|
|
@ -1,147 +1,147 @@
|
|||
#include "WFModel.h"
|
||||
|
||||
WFModel::WFModel(QObject *parent)
|
||||
WFModel::WFModel(QObject* parent)
|
||||
: V2SvkModel(parent)
|
||||
{
|
||||
m_title = "Subtest 1: Verbzweitstellungsregel (V2) und Subjekt-Verb-Kontrollregel (SVK)";
|
||||
m_title = "Subtest 1: Verbzweitstellungsregel (V2) und Subjekt-Verb-Kontrollregel (SVK)";
|
||||
|
||||
m_tests = {
|
||||
{"W-Frage",
|
||||
{"Affe", "Affe", "Affe", "Affe", "Schwein", "Schwein", "Schwein", "Schwein", "Gans",
|
||||
"Gans", "Gans", "Gans"}},
|
||||
{"Verbtrennung", {"", "Affe", "", "", "", "", "", "Schwein", "", "", "Gans", ""}},
|
||||
{"SVK: /-st/",
|
||||
{"Affe", "Affe", "Affe", "Affe", "Schwein", "Schwein", "Schwein", "Schwein", "Gans",
|
||||
"Gans", "Gans", "Gans"}},
|
||||
};
|
||||
m_tests = {
|
||||
{"W-Frage",
|
||||
{"Affe", "Affe", "Affe", "Affe", "Schwein", "Schwein", "Schwein", "Schwein", "Gans",
|
||||
"Gans", "Gans", "Gans"}},
|
||||
{"Verbtrennung", {"", "Affe", "", "", "", "", "", "Schwein", "", "", "Gans", ""}},
|
||||
{"SVK: /-st/",
|
||||
{"Affe", "Affe", "Affe", "Affe", "Schwein", "Schwein", "Schwein", "Schwein", "Gans",
|
||||
"Gans", "Gans", "Gans"}},
|
||||
};
|
||||
}
|
||||
|
||||
unsigned int WFModel::getV2Points() const
|
||||
{
|
||||
unsigned int points = 0;
|
||||
unsigned int points = 0;
|
||||
|
||||
for (auto testIndex : {0, 1})
|
||||
{
|
||||
const auto &test = m_tests.at(testIndex);
|
||||
for (auto testIndex : {0, 1})
|
||||
{
|
||||
const auto& test = m_tests.at(testIndex);
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return points;
|
||||
return points;
|
||||
}
|
||||
|
||||
unsigned int WFModel::getSvkPoints() const
|
||||
{
|
||||
unsigned int points = 0;
|
||||
unsigned int points = 0;
|
||||
|
||||
for (auto testIndex : {2})
|
||||
{
|
||||
const auto &test = m_tests.at(testIndex);
|
||||
for (auto testIndex : {2})
|
||||
{
|
||||
const auto& test = m_tests.at(testIndex);
|
||||
|
||||
for (const auto &item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto& item : test.items())
|
||||
{
|
||||
if (item.isChecked())
|
||||
{
|
||||
points++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return points;
|
||||
return points;
|
||||
}
|
||||
|
||||
bool WFModel::isValidIndex(const QModelIndex &index) const
|
||||
bool WFModel::isValidIndex(const QModelIndex& index) const
|
||||
{
|
||||
if (index.row() == 1)
|
||||
{
|
||||
return index.column() == 1 || index.column() == 7 || index.column() == 10;
|
||||
}
|
||||
if (index.row() == 1)
|
||||
{
|
||||
return index.column() == 1 || index.column() == 7 || index.column() == 10;
|
||||
}
|
||||
|
||||
return CheckableTestModel::isValidIndex(index);
|
||||
return CheckableTestModel::isValidIndex(index);
|
||||
}
|
||||
|
||||
void WFModel::write(ESGRAF48::V2SvkModel &model) const
|
||||
void WFModel::write(ESGRAF48::V2SvkModel& model) const
|
||||
{
|
||||
auto writeOneVal = [&](ESGRAF48::V2SvkModel::OneEach *modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(testIndex).items();
|
||||
auto writeOneVal = [&](ESGRAF48::V2SvkModel::OneEach* modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
modelData->set_affe(testItems[1].isChecked());
|
||||
modelData->set_schwein(testItems[7].isChecked());
|
||||
modelData->set_gans(testItems[10].isChecked());
|
||||
}
|
||||
};
|
||||
modelData->set_affe(testItems[1].isChecked());
|
||||
modelData->set_schwein(testItems[7].isChecked());
|
||||
modelData->set_gans(testItems[10].isChecked());
|
||||
}
|
||||
};
|
||||
|
||||
auto writeFourVals = [&](ESGRAF48::V2SvkModel::FourEach *modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(testIndex).items();
|
||||
auto writeFourVals = [&](ESGRAF48::V2SvkModel::FourEach* modelData, int testIndex) {
|
||||
if (modelData != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
modelData->set_affe1(testItems[0].isChecked());
|
||||
modelData->set_affe2(testItems[1].isChecked());
|
||||
modelData->set_affe3(testItems[2].isChecked());
|
||||
modelData->set_affe4(testItems[3].isChecked());
|
||||
modelData->set_schwein1(testItems[4].isChecked());
|
||||
modelData->set_schwein2(testItems[5].isChecked());
|
||||
modelData->set_schwein3(testItems[6].isChecked());
|
||||
modelData->set_schwein4(testItems[7].isChecked());
|
||||
modelData->set_gans1(testItems[8].isChecked());
|
||||
modelData->set_gans2(testItems[9].isChecked());
|
||||
modelData->set_gans3(testItems[10].isChecked());
|
||||
modelData->set_gans4(testItems[11].isChecked());
|
||||
}
|
||||
};
|
||||
modelData->set_affe1(testItems[0].isChecked());
|
||||
modelData->set_affe2(testItems[1].isChecked());
|
||||
modelData->set_affe3(testItems[2].isChecked());
|
||||
modelData->set_affe4(testItems[3].isChecked());
|
||||
modelData->set_schwein1(testItems[4].isChecked());
|
||||
modelData->set_schwein2(testItems[5].isChecked());
|
||||
modelData->set_schwein3(testItems[6].isChecked());
|
||||
modelData->set_schwein4(testItems[7].isChecked());
|
||||
modelData->set_gans1(testItems[8].isChecked());
|
||||
modelData->set_gans2(testItems[9].isChecked());
|
||||
modelData->set_gans3(testItems[10].isChecked());
|
||||
modelData->set_gans4(testItems[11].isChecked());
|
||||
}
|
||||
};
|
||||
|
||||
writeFourVals(model.mutable_wfrage(), 0);
|
||||
writeOneVal(model.mutable_verbtrennung1(), 1);
|
||||
writeFourVals(model.mutable_wfrage(), 0);
|
||||
writeOneVal(model.mutable_verbtrennung1(), 1);
|
||||
}
|
||||
|
||||
void WFModel::read(const ESGRAF48::V2SvkModel &model)
|
||||
void WFModel::read(const ESGRAF48::V2SvkModel& model)
|
||||
{
|
||||
auto readOneVal = [&](const ESGRAF48::V2SvkModel::OneEach &modelData, int testIndex) {
|
||||
auto &testItems = m_tests.at(testIndex).items();
|
||||
auto readOneVal = [&](const ESGRAF48::V2SvkModel::OneEach& modelData, int testIndex) {
|
||||
auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
testItems[1].setState(modelData.affe());
|
||||
testItems[7].setState(modelData.schwein());
|
||||
testItems[10].setState(modelData.gans());
|
||||
};
|
||||
testItems[1].setState(modelData.affe());
|
||||
testItems[7].setState(modelData.schwein());
|
||||
testItems[10].setState(modelData.gans());
|
||||
};
|
||||
|
||||
auto readFourVals = [&](const ESGRAF48::V2SvkModel::FourEach &modelData, int testIndex) {
|
||||
auto &testItems = m_tests.at(testIndex).items();
|
||||
auto readFourVals = [&](const ESGRAF48::V2SvkModel::FourEach& modelData, int testIndex) {
|
||||
auto& testItems = m_tests.at(testIndex).items();
|
||||
|
||||
testItems[0].setState(modelData.affe1());
|
||||
testItems[1].setState(modelData.affe2());
|
||||
testItems[2].setState(modelData.affe3());
|
||||
testItems[3].setState(modelData.affe4());
|
||||
testItems[4].setState(modelData.schwein1());
|
||||
testItems[5].setState(modelData.schwein2());
|
||||
testItems[6].setState(modelData.schwein3());
|
||||
testItems[7].setState(modelData.schwein4());
|
||||
testItems[8].setState(modelData.gans1());
|
||||
testItems[9].setState(modelData.gans2());
|
||||
testItems[10].setState(modelData.gans3());
|
||||
testItems[11].setState(modelData.gans4());
|
||||
};
|
||||
testItems[0].setState(modelData.affe1());
|
||||
testItems[1].setState(modelData.affe2());
|
||||
testItems[2].setState(modelData.affe3());
|
||||
testItems[3].setState(modelData.affe4());
|
||||
testItems[4].setState(modelData.schwein1());
|
||||
testItems[5].setState(modelData.schwein2());
|
||||
testItems[6].setState(modelData.schwein3());
|
||||
testItems[7].setState(modelData.schwein4());
|
||||
testItems[8].setState(modelData.gans1());
|
||||
testItems[9].setState(modelData.gans2());
|
||||
testItems[10].setState(modelData.gans3());
|
||||
testItems[11].setState(modelData.gans4());
|
||||
};
|
||||
|
||||
readFourVals(model.wfrage(), 0);
|
||||
readOneVal(model.verbtrennung1(), 1);
|
||||
readFourVals(model.wfrage(), 0);
|
||||
readOneVal(model.verbtrennung1(), 1);
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
std::set<int> WFModel::v2Tests() const
|
||||
{
|
||||
return {0, 1};
|
||||
return {0, 1};
|
||||
};
|
||||
|
||||
std::set<int> WFModel::svkTests() const
|
||||
{
|
||||
return {2};
|
||||
return {2};
|
||||
};
|
||||
|
|
|
@ -5,20 +5,20 @@
|
|||
|
||||
class WFModel : public V2SvkModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
WFModel(QObject *parent);
|
||||
WFModel(QObject* parent);
|
||||
|
||||
unsigned int getV2Points() const override;
|
||||
unsigned int getSvkPoints() const override;
|
||||
unsigned int getV2Points() const override;
|
||||
unsigned int getSvkPoints() const override;
|
||||
|
||||
void write(ESGRAF48::V2SvkModel &model) const override;
|
||||
void read(const ESGRAF48::V2SvkModel &model) override;
|
||||
void write(ESGRAF48::V2SvkModel& model) const override;
|
||||
void read(const ESGRAF48::V2SvkModel& model) override;
|
||||
|
||||
protected:
|
||||
std::set<int> v2Tests() const override;
|
||||
std::set<int> svkTests() const override;
|
||||
std::set<int> v2Tests() const override;
|
||||
std::set<int> svkTests() const override;
|
||||
|
||||
bool isValidIndex(const QModelIndex &index) const override;
|
||||
bool isValidIndex(const QModelIndex& index) const override;
|
||||
};
|
||||
|
|
|
@ -1,128 +1,128 @@
|
|||
#include "VerbEndModel.h"
|
||||
|
||||
VerbEndModel::VerbEndModel(QObject *parent)
|
||||
VerbEndModel::VerbEndModel(QObject* parent)
|
||||
: PrintableModel(parent)
|
||||
{
|
||||
m_title = "Subtest 2: Verbendstellungsregel (VE)";
|
||||
m_title = "Subtest 2: Verbendstellungsregel (VE)";
|
||||
|
||||
m_tests = {
|
||||
{"Telefonat", {"Kausal", "Kausal", "Relativ", "Kausal", "Final", "Temporal", "Temporal"}},
|
||||
{"Zaubertrick", {"Relativ", "Final", "Kausal", "Final", "Temporal", "Kausal", "Temporal"}},
|
||||
{"Zauberregel", {"Temporal", "Kausal", "Final", "Relativ", "Temporal", "Relativ"}}};
|
||||
m_tests = {
|
||||
{"Telefonat", {"Kausal", "Kausal", "Relativ", "Kausal", "Final", "Temporal", "Temporal"}},
|
||||
{"Zaubertrick", {"Relativ", "Final", "Kausal", "Final", "Temporal", "Kausal", "Temporal"}},
|
||||
{"Zauberregel", {"Temporal", "Kausal", "Final", "Relativ", "Temporal", "Relativ"}}};
|
||||
}
|
||||
|
||||
void VerbEndModel::write(ESGRAF48::VerbEndModel &model) const
|
||||
void VerbEndModel::write(ESGRAF48::VerbEndModel& model) const
|
||||
{
|
||||
auto *telefonatModel = model.mutable_telefonat();
|
||||
if (telefonatModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(0).items();
|
||||
auto* telefonatModel = model.mutable_telefonat();
|
||||
if (telefonatModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(0).items();
|
||||
|
||||
telefonatModel->set_kausal1(testItems[0].isChecked());
|
||||
telefonatModel->set_kausal2(testItems[1].isChecked());
|
||||
telefonatModel->set_relativ(testItems[2].isChecked());
|
||||
telefonatModel->set_kausal3(testItems[3].isChecked());
|
||||
telefonatModel->set_final(testItems[4].isChecked());
|
||||
telefonatModel->set_temporal1(testItems[5].isChecked());
|
||||
telefonatModel->set_temporal2(testItems[6].isChecked());
|
||||
}
|
||||
telefonatModel->set_kausal1(testItems[0].isChecked());
|
||||
telefonatModel->set_kausal2(testItems[1].isChecked());
|
||||
telefonatModel->set_relativ(testItems[2].isChecked());
|
||||
telefonatModel->set_kausal3(testItems[3].isChecked());
|
||||
telefonatModel->set_final(testItems[4].isChecked());
|
||||
telefonatModel->set_temporal1(testItems[5].isChecked());
|
||||
telefonatModel->set_temporal2(testItems[6].isChecked());
|
||||
}
|
||||
|
||||
auto *zaubertrickModel = model.mutable_zaubertrick();
|
||||
if (zaubertrickModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(1).items();
|
||||
auto* zaubertrickModel = model.mutable_zaubertrick();
|
||||
if (zaubertrickModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(1).items();
|
||||
|
||||
zaubertrickModel->set_relativ(testItems[0].isChecked());
|
||||
zaubertrickModel->set_final1(testItems[1].isChecked());
|
||||
zaubertrickModel->set_kausal1(testItems[2].isChecked());
|
||||
zaubertrickModel->set_final2(testItems[3].isChecked());
|
||||
zaubertrickModel->set_temporal1(testItems[4].isChecked());
|
||||
zaubertrickModel->set_kausal2(testItems[5].isChecked());
|
||||
zaubertrickModel->set_temporal2(testItems[6].isChecked());
|
||||
}
|
||||
zaubertrickModel->set_relativ(testItems[0].isChecked());
|
||||
zaubertrickModel->set_final1(testItems[1].isChecked());
|
||||
zaubertrickModel->set_kausal1(testItems[2].isChecked());
|
||||
zaubertrickModel->set_final2(testItems[3].isChecked());
|
||||
zaubertrickModel->set_temporal1(testItems[4].isChecked());
|
||||
zaubertrickModel->set_kausal2(testItems[5].isChecked());
|
||||
zaubertrickModel->set_temporal2(testItems[6].isChecked());
|
||||
}
|
||||
|
||||
auto *zauberregelModel = model.mutable_zauberregel();
|
||||
if (zauberregelModel != nullptr)
|
||||
{
|
||||
const auto &testItems = m_tests.at(2).items();
|
||||
auto* zauberregelModel = model.mutable_zauberregel();
|
||||
if (zauberregelModel != nullptr)
|
||||
{
|
||||
const auto& testItems = m_tests.at(2).items();
|
||||
|
||||
zauberregelModel->set_temporal1(testItems[0].isChecked());
|
||||
zauberregelModel->set_kausal(testItems[1].isChecked());
|
||||
zauberregelModel->set_final(testItems[2].isChecked());
|
||||
zauberregelModel->set_relativ1(testItems[3].isChecked());
|
||||
zauberregelModel->set_temporal2(testItems[4].isChecked());
|
||||
zauberregelModel->set_relativ2(testItems[5].isChecked());
|
||||
}
|
||||
zauberregelModel->set_temporal1(testItems[0].isChecked());
|
||||
zauberregelModel->set_kausal(testItems[1].isChecked());
|
||||
zauberregelModel->set_final(testItems[2].isChecked());
|
||||
zauberregelModel->set_relativ1(testItems[3].isChecked());
|
||||
zauberregelModel->set_temporal2(testItems[4].isChecked());
|
||||
zauberregelModel->set_relativ2(testItems[5].isChecked());
|
||||
}
|
||||
}
|
||||
|
||||
void VerbEndModel::read(const ESGRAF48::VerbEndModel &model)
|
||||
void VerbEndModel::read(const ESGRAF48::VerbEndModel& model)
|
||||
{
|
||||
const auto &telefonatModel = model.telefonat();
|
||||
{
|
||||
auto &testItems = m_tests.at(0).items();
|
||||
const auto& telefonatModel = model.telefonat();
|
||||
{
|
||||
auto& testItems = m_tests.at(0).items();
|
||||
|
||||
testItems[0].setState(telefonatModel.kausal1());
|
||||
testItems[1].setState(telefonatModel.kausal2());
|
||||
testItems[2].setState(telefonatModel.relativ());
|
||||
testItems[3].setState(telefonatModel.kausal3());
|
||||
testItems[4].setState(telefonatModel.final());
|
||||
testItems[5].setState(telefonatModel.temporal1());
|
||||
testItems[6].setState(telefonatModel.temporal2());
|
||||
}
|
||||
testItems[0].setState(telefonatModel.kausal1());
|
||||
testItems[1].setState(telefonatModel.kausal2());
|
||||
testItems[2].setState(telefonatModel.relativ());
|
||||
testItems[3].setState(telefonatModel.kausal3());
|
||||
testItems[4].setState(telefonatModel.final());
|
||||
testItems[5].setState(telefonatModel.temporal1());
|
||||
testItems[6].setState(telefonatModel.temporal2());
|
||||
}
|
||||
|
||||
const auto &zaubertrickModel = model.zaubertrick();
|
||||
{
|
||||
auto &testItems = m_tests.at(1).items();
|
||||
const auto& zaubertrickModel = model.zaubertrick();
|
||||
{
|
||||
auto& testItems = m_tests.at(1).items();
|
||||
|
||||
testItems[0].setState(zaubertrickModel.relativ());
|
||||
testItems[1].setState(zaubertrickModel.final1());
|
||||
testItems[2].setState(zaubertrickModel.kausal1());
|
||||
testItems[3].setState(zaubertrickModel.final2());
|
||||
testItems[4].setState(zaubertrickModel.temporal1());
|
||||
testItems[5].setState(zaubertrickModel.kausal2());
|
||||
testItems[6].setState(zaubertrickModel.temporal2());
|
||||
}
|
||||
testItems[0].setState(zaubertrickModel.relativ());
|
||||
testItems[1].setState(zaubertrickModel.final1());
|
||||
testItems[2].setState(zaubertrickModel.kausal1());
|
||||
testItems[3].setState(zaubertrickModel.final2());
|
||||
testItems[4].setState(zaubertrickModel.temporal1());
|
||||
testItems[5].setState(zaubertrickModel.kausal2());
|
||||
testItems[6].setState(zaubertrickModel.temporal2());
|
||||
}
|
||||
|
||||
const auto &zauberregelModel = model.zauberregel();
|
||||
{
|
||||
auto &testItems = m_tests.at(2).items();
|
||||
const auto& zauberregelModel = model.zauberregel();
|
||||
{
|
||||
auto& testItems = m_tests.at(2).items();
|
||||
|
||||
testItems[0].setState(zauberregelModel.temporal1());
|
||||
testItems[1].setState(zauberregelModel.kausal());
|
||||
testItems[2].setState(zauberregelModel.final());
|
||||
testItems[3].setState(zauberregelModel.relativ1());
|
||||
testItems[4].setState(zauberregelModel.temporal2());
|
||||
testItems[5].setState(zauberregelModel.relativ2());
|
||||
}
|
||||
testItems[0].setState(zauberregelModel.temporal1());
|
||||
testItems[1].setState(zauberregelModel.kausal());
|
||||
testItems[2].setState(zauberregelModel.final());
|
||||
testItems[3].setState(zauberregelModel.relativ1());
|
||||
testItems[4].setState(zauberregelModel.temporal2());
|
||||
testItems[5].setState(zauberregelModel.relativ2());
|
||||
}
|
||||
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
unsigned int VerbEndModel::getKausalPoints() const
|
||||
{
|
||||
auto points = [&](unsigned int testId, unsigned int itemId) {
|
||||
return m_tests.at(testId).items().at(itemId).points();
|
||||
};
|
||||
auto points = [&](unsigned int testId, unsigned int itemId) {
|
||||
return m_tests.at(testId).items().at(itemId).points();
|
||||
};
|
||||
|
||||
return points(0, 0) + points(0, 1) + points(0, 3) + points(1, 2) + points(1, 5) + points(2, 1);
|
||||
return points(0, 0) + points(0, 1) + points(0, 3) + points(1, 2) + points(1, 5) + points(2, 1);
|
||||
}
|
||||
|
||||
void VerbEndModel::printSummary(QPainter &painter) const
|
||||
void VerbEndModel::printSummary(QPainter& painter) const
|
||||
{
|
||||
painter.setFont(tableFont());
|
||||
painter.setFont(tableFont());
|
||||
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
auto width = painter.device()->width();
|
||||
auto height = 1.5 * painter.fontMetrics().lineSpacing();
|
||||
|
||||
painter.drawText(0, 0, 0.71 * width, height, Qt::AlignRight | Qt::AlignVCenter,
|
||||
"Rohwertpunkte Kausalsätze:");
|
||||
painter.drawText(0, 0, 0.95 * width, height, Qt::AlignRight | Qt::AlignVCenter,
|
||||
"Rohwertpunkte Total:");
|
||||
painter.drawText(0, 0, 0.71 * width, height, Qt::AlignRight | Qt::AlignVCenter,
|
||||
"Rohwertpunkte Kausalsätze:");
|
||||
painter.drawText(0, 0, 0.95 * width, height, Qt::AlignRight | Qt::AlignVCenter,
|
||||
"Rohwertpunkte Total:");
|
||||
|
||||
drawNumberSquare(painter, 0.73 * width, 0, getKausalPoints());
|
||||
drawNumberSquare(painter, 0.73 * width, 0, getKausalPoints());
|
||||
|
||||
painter.setPen(resultPen());
|
||||
drawNumberSquare(painter, 0.97 * width, 0, getKausalPoints());
|
||||
painter.setPen(resultPen());
|
||||
drawNumberSquare(painter, 0.97 * width, 0, getKausalPoints());
|
||||
|
||||
painter.translate(0, 3 * height);
|
||||
painter.translate(0, 3 * height);
|
||||
}
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
|
||||
class VerbEndModel : public PrintableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
VerbEndModel(QObject *parent);
|
||||
VerbEndModel(QObject* parent);
|
||||
|
||||
void write(ESGRAF48::VerbEndModel &model) const;
|
||||
void read(const ESGRAF48::VerbEndModel &model);
|
||||
void write(ESGRAF48::VerbEndModel& model) const;
|
||||
void read(const ESGRAF48::VerbEndModel& model);
|
||||
|
||||
unsigned int getKausalPoints() const;
|
||||
unsigned int getKausalPoints() const;
|
||||
|
||||
protected:
|
||||
void printSummary(QPainter &painter) const override;
|
||||
void printSummary(QPainter& painter) const override;
|
||||
};
|
||||
|
|
|
@ -3,21 +3,21 @@
|
|||
|
||||
#include "VerbEndModel.h"
|
||||
|
||||
VerbEndWidget::VerbEndWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::VerbEndWidget)
|
||||
VerbEndWidget::VerbEndWidget(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::VerbEndWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->verbEndTableView->horizontalHeader()->hide();
|
||||
ui->verbEndTableView->horizontalHeader()->hide();
|
||||
}
|
||||
|
||||
VerbEndWidget::~VerbEndWidget()
|
||||
{
|
||||
delete ui;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void VerbEndWidget::setModel(VerbEndModel *model)
|
||||
void VerbEndWidget::setModel(VerbEndModel* model)
|
||||
{
|
||||
ui->verbEndTableView->setModel(model);
|
||||
ui->verbEndTableView->setModel(model);
|
||||
}
|
||||
|
|
|
@ -10,14 +10,14 @@ class VerbEndWidget;
|
|||
|
||||
class VerbEndWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
Ui::VerbEndWidget *ui;
|
||||
Ui::VerbEndWidget* ui;
|
||||
|
||||
public:
|
||||
VerbEndWidget(QWidget *parent = nullptr);
|
||||
~VerbEndWidget();
|
||||
VerbEndWidget(QWidget* parent = nullptr);
|
||||
~VerbEndWidget();
|
||||
|
||||
void setModel(VerbEndModel *model);
|
||||
void setModel(VerbEndModel* model);
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue