QHBoxLayout *hbox_less = new QHBoxLayout();
QHBoxLayout *hbox_question_lang = new QHBoxLayout();
QHBoxLayout *hbox_answer_lang = new QHBoxLayout();
- QHBoxLayout *hbox_buttons = new QHBoxLayout();
- QHBoxLayout *hbox_label = new QHBoxLayout();
+ QVBoxLayout *vbox_label = new QVBoxLayout();
- QPushButton *button = new QPushButton("Next");
-
- hbox_buttons->addWidget(button);
-
- connect(button, SIGNAL(clicked(bool)), this, SLOT(slotNext(bool)));
bgroup_lesson = new QButtonGroup();
bgroup_question_lang = new QButtonGroup();
bgroup_answer_lang = new QButtonGroup();
+ bgroup_choice = new QButtonGroup();
QuestionLabel = new QLabel();
QuestionLabel->setText("Here comes...");
- hbox_label->addWidget(QuestionLabel);
-
+ vbox_label->addWidget(QuestionLabel);
+
+ answer1 = new QPushButton;
+ answer2 = new QPushButton;
+ answer3 = new QPushButton;
+ vbox_label->addWidget(answer1);
+ vbox_label->addWidget(answer2);
+ vbox_label->addWidget(answer3);
+ answerButtonsList.append(answer1);
+ answerButtonsList.append(answer2);
+ answerButtonsList.append(answer3);
+ bgroup_choice->addButton(answer1);
+ bgroup_choice->setId(answer1, 0);
+ bgroup_choice->addButton(answer2);
+ bgroup_choice->setId(answer2, 1);
+ bgroup_choice->addButton(answer3);
+ bgroup_choice->setId(answer3, 2);
+
+ connect(answer1,SIGNAL(clicked(bool)),this,SLOT(slotAnswer1(bool)));
+ connect(answer2,SIGNAL(clicked(bool)),this,SLOT(slotAnswer2(bool)));
+ connect(answer3,SIGNAL(clicked(bool)),this,SLOT(slotAnswer3(bool)));
questionID = 0;
answerID = 0;
lessonID = 0;
+ CorrectID = 0;
QLabel *label_question = new QLabel("Question:");
hbox_question_lang->addWidget(label_question);
connect(radio_answer_lang, SIGNAL(toggled(bool)), this, SLOT(reactToToggleAnswerLang(bool)));
}
+ bgroup_question_lang->button(0)->click();;
+ bgroup_answer_lang->button(1)->click();
+
int lessonId = 0;
foreach(KEduVocContainer * c, lessons) {
if (c->containerType() == KEduVocLesson::Lesson) {
++lessonId;
}
+ bgroup_lesson->button(0)->click();
+
vbox->addLayout(hbox_less);
vbox->addLayout(hbox_question_lang);
vbox->addLayout(hbox_answer_lang);
- vbox->addLayout(hbox_label);
- vbox->addLayout(hbox_buttons);
+ vbox->addLayout(vbox_label);
setLayout(vbox);
+ slotInit();
}
TinyVocTrainer::~TinyVocTrainer()
}
-QString TinyVocTrainer::getAnyEntryFromLesson(KEduVocLesson *lesson, int language)
+KEduVocExpression * TinyVocTrainer::getAnyEntryFromLesson(KEduVocLesson *lesson, int language)
{
+ Q_UNUSED(language);
int random_int = ( rand() % ( lesson->entries().size() - 1 ) ) + 0;
- qDebug() << "random_int: " << random_int << "Lesson Size: " << lesson->entries().size();
- return lesson->entry(random_int)->translation(language)->text();
+ qDebug() << "anyEntry random_int: " << random_int << "Lesson Size: " << lesson->entries().size();
+ return lesson->entry(random_int);
}
if(checked){
qDebug() << "bgroup_question_lang: " << bgroup_question_lang->checkedId();
questionID = bgroup_question_lang->checkedId();
+ // slotInit();
}
}
if(checked){
qDebug() << "bgroup_answer_lang: " << bgroup_answer_lang->checkedId();
answerID = bgroup_answer_lang->checkedId();
+ // slotInit();
}
}
if(checked){
qDebug() << "bgroup_lesson: " << bgroup_lesson->checkedId();
lessonID = bgroup_lesson->checkedId();
+ // slotInit();
+ }
+}
+
+void TinyVocTrainer::slotAnswer1(bool clicked){
+ Q_UNUSED(clicked);
+ slotCheck(0);
+}
+
+void TinyVocTrainer::slotAnswer2(bool clicked){
+ Q_UNUSED(clicked);
+ slotCheck(1);
+}
+
+void TinyVocTrainer::slotAnswer3(bool clicked){
+ Q_UNUSED(clicked);
+ slotCheck(2);
+}
+
+void TinyVocTrainer::slotCheck(int buttonID){
+ qDebug() << "slotCheck(): buton id: " << buttonID << "Correct Id: " << CorrectID;
+
+ if(buttonID == CorrectID){
+ qDebug() << "\\o/ correct answer...";
+ slotInit();
+ return;
+ }
+ else{
+ qDebug() << ":-( sorry wrong...";
}
+
}
-void TinyVocTrainer::slotNext(bool clicked){
- qDebug() << "lessonsList count: " << lessonsList.count();
- qDebug() << "lessonsList Name: " << lessonsList.at(lessonID)->name();
- QuestionLabel->setText( getAnyEntryFromLesson(lessonsList.at(lessonID), questionID) );
+void TinyVocTrainer::slotInit(){
+
+ choiceList.clear();
+ for (int i=0; i < 3; ++i){
+ choiceList.append( getAnyEntryFromLesson(lessonsList.at(lessonID), questionID) );
+ answerButtonsList.at(i)->setText( choiceList.at(i)->translation(questionID)->text() );
+ }
+
+ int random_int = rand() % 3 + 0;
+ qDebug() << "ask for random_int: " << random_int;
+
+ QuestionLabel->setText(choiceList.at(random_int)->translation(answerID)->text());
+ CorrectID = random_int;
+
}
#include <QButtonGroup>
#include <QList>
#include <QLabel>
+#include <QPushButton>
#include "keduvocdocument.h"
#include "keduvoclesson.h"
public:
TinyVocTrainer(QWidget *parent = 0);
~TinyVocTrainer();
- QString getAnyEntryFromLesson(KEduVocLesson *lesson = 0, int language = 0);
+ KEduVocExpression * getAnyEntryFromLesson(KEduVocLesson *lesson = 0, int language = 0);
QButtonGroup *bgroup_lesson;
QButtonGroup *bgroup_question_lang;
QButtonGroup *bgroup_answer_lang;
+ QButtonGroup *bgroup_choice;
QList<KEduVocContainer *> lessons;
QList<KEduVocLesson *> lessonsList;
KEduVocDocument *docRead;
QLabel *QuestionLabel;
+ QPushButton *answer1;
+ QPushButton *answer2;
+ QPushButton *answer3;
+ QList<KEduVocExpression *> choiceList;
+ QList<QPushButton *> answerButtonsList;
+
int questionID;
int answerID;
int lessonID;
+ int CorrectID;
private slots:
void reactToToggleQuestionLang(bool checked = 0);
void reactToToggleAnswerLang(bool checked = 0);
void reactToToggleLesson(bool checked = 0);
- void slotNext(bool clicked = 0);
+ void slotCheck(int buttonID = 0);
+ void slotAnswer1(bool clicked = 0);
+ void slotAnswer2(bool clicked = 0);
+ void slotAnswer3(bool clicked = 0);
+ void slotInit();
};