chooser for the algorithm

This commit is contained in:
jorenchik
2024-10-18 20:13:35 +03:00
parent 2127c52b94
commit d9f61f59de
3 changed files with 46 additions and 21 deletions

View File

@@ -235,12 +235,7 @@ std::vector<GroupView*> groupViews;
std::default_random_engine rng;
std::vector<QStandardItem*> itemPool;
/*QStandardItem *makeItem(std::string content, bool isCheckable) {*/
/* auto *item = new QStandardItem(); */
/* item->setText(QString::fromStdString(content));*/
/* item->setCheckable(isCheckable);*/
/* return item;*/
/*};*/
PracticeAlgorithm practiceAlgoritm;
#define ITEM_POOL_CHUNK 200
@@ -422,7 +417,6 @@ void setupGroupQuestion(GroupQuestion *question) {
groupView->itemList.setModel(&groupView->itemModel);
groupView->itemList.setMaximumHeight(100);
groupView->itemList.setItemDelegate(itemDelegate);
/*groupView->itemScroll.setWidget(&groupView->itemScroll);*/
groupView->widget.setLayout(&groupView->vWidget);
groupView->widget.layout()->addWidget(&groupView->label);
groupView->widget.layout()->addWidget(&groupView->itemList);
@@ -517,7 +511,7 @@ void updatePaginationVisibility() {
}
}
void setQuestions(std::vector<Question*> questions) {
void setQuestions(std::vector<Question*> questions, PracticeAlgorithm algorithm) {
trainQuestions = questions;
if (questions.size() <= 0) {
return;
@@ -525,6 +519,7 @@ void setQuestions(std::vector<Question*> questions) {
currentQuestionIndex = 0;
updatePaginationVisibility();
setupQuestion(trainQuestions[currentQuestionIndex]);
practiceAlgoritm = algorithm;
}
void initTrainWindow() {
@@ -642,11 +637,21 @@ void initTrainWindow() {
btnNext->setText("Next");
QObject::connect(btnNext, &QToolButton::clicked, []() {
currentQuestionIndex++;
if (currentQuestionIndex < trainQuestions.size()) {
setupQuestion(trainQuestions[currentQuestionIndex]);
switch (practiceAlgoritm) {
case PRIMARY:
currentQuestionIndex++;
if (currentQuestionIndex < trainQuestions.size()) {
setupQuestion(trainQuestions[currentQuestionIndex]);
}
updatePaginationVisibility();
break;
case RANDOM:
// TODO: implement
break;
case SPACED:
// TODO: implement
break;
}
updatePaginationVisibility();
});
questionBox->setObjectName("question-box");
actionButtons->setStyleSheet(QString(