Re-formatted all source files

This commit is contained in:
Michael Mandl 2019-10-05 16:14:45 +02:00
parent 5c6ed8191b
commit d0f64ef440
77 changed files with 2443 additions and 2332 deletions

View file

@ -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};
};

View file

@ -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;
};

View file

@ -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};
};

View file

@ -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;
};

View file

@ -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};
};

View file

@ -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;
};

View file

@ -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);
}

View file

@ -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;
};

View file

@ -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);
}

View file

@ -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);
};

View file

@ -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};
};

View file

@ -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;
};