diff --git a/memorybase/all_types.mdem b/memorybase/all_types.mdem new file mode 100644 index 0000000..a3e72ea --- /dev/null +++ b/memorybase/all_types.mdem @@ -0,0 +1,42 @@ + +- What is the capital of Latvia? > + - Rīga + +- [cap_est] What is the capital of Estonia? > + - Tallin + +- What countries reside in Europe? > + + Latvia + - Peru + + Poland + - China + +- Arrange these events in the order they occurred > + -^ The Fall of the Roman Empire (476 AD) + -^ The Renaissance (14th\-17th century) + -^ The Industrial Revolution (18th\-19th century) + +- [scient_method_order] Place the following steps of the scientific method in the correct order > + - Ask a Question + - Form a Hypothesis + -^ Conduct an Experiment + - Analyze Data + + +- Match Planets to Their Characteristics > + - Earth: + - Contains Life + - Mars: + - Red Planet + - Jupiter: + - Largest Planet + - Has Rings + - Venus: + - Hottest Planet + - Mercury: + - Smallest Planet + - Saturn: + - Has Rings + - Neptune: + - Farthest from the Sun + - Has Rings diff --git a/src/cpp/.gitignore b/src/cpp/.gitignore index f240e72..6db035b 100644 --- a/src/cpp/.gitignore +++ b/src/cpp/.gitignore @@ -1 +1,2 @@ Debug/ +Release/ diff --git a/src/cpp/include/stringUtils.h b/src/cpp/include/stringUtils.h index d182ec9..3dce044 100644 --- a/src/cpp/include/stringUtils.h +++ b/src/cpp/include/stringUtils.h @@ -1,2 +1,4 @@ #pragma once +#include + std::string cleanContent(std::string answer); diff --git a/src/cpp/qtapp/main.cpp b/src/cpp/qtapp/main.cpp index 173b063..7f91161 100644 --- a/src/cpp/qtapp/main.cpp +++ b/src/cpp/qtapp/main.cpp @@ -185,7 +185,21 @@ void CreateMdems(std::vector& questions) { auto choices = mw->Choices; for (size_t k = 0; k < choices.size(); ++k) { auto answer = choices[k].Answer; - answer = std::format("- {}", answer); + switch (mw->type) { + case MultiElementType::Order: + answer = std::format("{}. {}", k + 1, answer); + break; + case MultiElementType::MultiChoice: + if (choices[k].IsCorrect) { + answer = std::format("+ {}", answer); + } else { + answer = std::format("- {}", answer); + } + break; + case MultiElementType::Regular: + answer = std::format("- {}", answer); + break; + } if (k < mdems[i]->backLabels.size()) { mdems[i]->backLabels[k]->setText(QString::fromStdString(answer)); } else { @@ -195,7 +209,31 @@ void CreateMdems(std::vector& questions) { mdems[i]->wBack->layout()->addWidget(label); } } - mdems[i]->labelCount = choices.size(); + mdems[i]->labelCount = choices.size(); + } else if (GroupQuestion* mw = dynamic_cast(questions[i])) { + mdems[i]->wFrontText->setText( + QString::fromStdString(mw->QuestionText) + ); + auto groups = mw->Groups; + std::vector elements; + for (size_t k = 0; k < groups.size(); ++k) { + auto answer = groups[k].name; + elements.push_back(std::format("- {}:", answer)); + for (size_t l = 0; l < groups[k].elements.size(); ++l) { + elements.push_back(std::format(" - {}", groups[k].elements[l])); + } + } + for (size_t k = 0; k < elements.size(); ++k) { + if (k < mdems[i]->backLabels.size()) { + mdems[i]->backLabels[k]->setText(QString::fromStdString(elements[k])); + } else { + auto label = new QLabel(); + label->setText(QString::fromStdString(elements[k])); + mdems[i]->backLabels.push_back(label); + mdems[i]->wBack->layout()->addWidget(label); + } + } + mdems[i]->labelCount = groups.size(); } if (!mdems[i]->wMdem->isVisible()) { mdems[i]->wMdem->show(); diff --git a/src/cpp/qtapp/trainWindow.cpp b/src/cpp/qtapp/trainWindow.cpp index 6f01a59..7743259 100644 --- a/src/cpp/qtapp/trainWindow.cpp +++ b/src/cpp/qtapp/trainWindow.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -206,11 +207,15 @@ void initTrainWindow() { actionButtons = new QWidget(); hButtons = new QHBoxLayout(); btnPrev = new QToolButton(); + auto *leftSpacer = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum); btnShowAnswer = new QToolButton(); + auto *rightSpacer = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum); btnNext = new QToolButton(); hButtons->addWidget(btnPrev); + hButtons->addItem(leftSpacer); hButtons->addWidget(btnShowAnswer); + hButtons->addItem(rightSpacer); hButtons->addWidget(btnNext); vButtonBox->addWidget(actionButtons); actionButtons->setLayout(hButtons); diff --git a/src/cpp/transpiler/parser.cpp b/src/cpp/transpiler/parser.cpp index 69d82de..4465846 100644 --- a/src/cpp/transpiler/parser.cpp +++ b/src/cpp/transpiler/parser.cpp @@ -176,7 +176,6 @@ Result> ParseQuestions(const std::vector& tokens) std::string section; size_t i = 0; - debug = true; if (debug) { std::cout << "SECTION: Parser output:\n"; }