115 lines
3.8 KiB
C++
115 lines
3.8 KiB
C++
#include "GenitivModel.h"
|
|
|
|
GenitivModel::GenitivModel(QObject *parent)
|
|
: CheckableTestModel(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)"}},
|
|
};
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
return CheckableTestModel::setData(modelIndex, value, role);
|
|
}
|
|
|
|
void GenitivModel::read(const ESGRAF48::LateSkillsGenitivModel &model)
|
|
{
|
|
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());
|
|
}
|
|
|
|
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());
|
|
}
|
|
|
|
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
|
}
|
|
|
|
void GenitivModel::write(ESGRAF48::LateSkillsGenitivModel &model) const
|
|
{
|
|
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());
|
|
}
|
|
|
|
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());
|
|
}
|
|
}
|
|
|
|
std::string GenitivModel::getName() const
|
|
{
|
|
return "";
|
|
}
|