31 #include "templates/flashcard/flashcardsimulator.h"
33 #include "core/templatecore.h"
34 #include "templates/flashcard/flashcardeditor.h"
35 #include "templates/flashcard/flashcarditem.h"
36 #include "definitions/definitions.h"
37 #include "miscellaneous/application.h"
38 #include "miscellaneous/skinfactory.h"
41 FlashCardSimulator::FlashCardSimulator(
TemplateCore *core, QWidget *parent)
46 QFont caption_font = m_ui->m_lblHeading->font();
47 caption_font.setPointSize(caption_font.pointSize() + SIMULATOR_HEADING_SIZE_INCREASE);
48 m_ui->m_lblHeading->setFont(caption_font);
50 connect(m_ui->m_btnStart, SIGNAL(clicked()),
this, SLOT(start()));
51 connect(m_ui->m_btnRestart, SIGNAL(clicked()),
this, SLOT(restart()));
54 FlashCardSimulator::~FlashCardSimulator() {
55 qDebug(
"Destroying FlashCardSimulator instance.");
60 bool FlashCardSimulator::startSimulation() {
70 while (m_ui->m_phoneWidget->count() > 3) {
71 QWidget *question_widget = m_ui->m_phoneWidget->widget(2);
73 m_ui->m_phoneWidget->removeWidget(question_widget);
74 question_widget->deleteLater();
78 m_ui->m_btnStart->setEnabled(
true);
79 m_ui->m_lblAuthor->setText(editor->m_ui->m_txtAuthor->lineEdit()->text());
80 m_ui->m_lblHeading->setText(editor->m_ui->m_txtName->lineEdit()->text());
82 int question_number = 1;
83 QList<FlashCardQuestion> questions = editor->activeQuestions();
88 connect(item, SIGNAL(nextCardRequested()),
this, SLOT(moveToNextCard()));
89 connect(item, SIGNAL(previousCardRequested()),
this, SLOT(moveToPreviousCard()));
91 item->
setQuestion(question, question_number++, questions.size());
92 m_ui->m_phoneWidget->insertWidget(m_ui->m_phoneWidget->count() - 1, item);
96 m_ui->m_phoneWidget->setCurrentIndex(1);
100 bool FlashCardSimulator::stopSimulation() {
101 m_ui->m_phoneWidget->setCurrentIndex(0);
108 bool FlashCardSimulator::goBack() {
112 void FlashCardSimulator::start() {
116 void FlashCardSimulator::restart() {
117 m_ui->m_phoneWidget->setCurrentIndex(1);
120 void FlashCardSimulator::moveToNextCard() {
121 int current_index = m_ui->m_phoneWidget->currentIndex();
123 if (current_index < m_ui->m_phoneWidget->count() - 2) {
125 static_cast<FlashCardItem*
>(m_ui->m_phoneWidget->widget(current_index + 1))->reset();
128 m_ui->m_phoneWidget->setCurrentIndex(current_index + 1);
131 void FlashCardSimulator::moveToPreviousCard() {
132 int current_index = m_ui->m_phoneWidget->currentIndex();
134 if (current_index > 1) {
136 static_cast<FlashCardItem*
>(m_ui->m_phoneWidget->widget(current_index - 1))->reset();
139 m_ui->m_phoneWidget->setCurrentIndex(current_index - 1);
virtual TemplateEditor * editor() const
Access to editor widget of the template.
void setQuestion(const FlashCardQuestion &question, int question_number, int total_questions)
Sets new question for this widget.
void canGoBackChanged(bool can_go_back)
Emitted if "can go back" status of simulator changes.
TemplateCore * core() const
Access to associated template core.
The core class container for single template.
bool canGenerateApplications()
Specifies if template can generate applications or not.
Base widget which represents simulator of the template.