• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

parley

  • sources
  • kde-4.12
  • kdeedu
  • parley
  • src
  • practice
writtenpracticewidget.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  Copyright 2009-2010 Frederik Gladhorn <gladhorn@kde.org>
3  Copyright 2009-2010 Daniel Laidig <laidig@kde.org>
4  ***************************************************************************/
5 
6 /***************************************************************************
7  * *
8  * This program is free software; you can redistribute it and/or modify *
9  * it under the terms of the GNU General Public License as published by *
10  * the Free Software Foundation; either version 2 of the License, or *
11  * (at your option) any later version. *
12  * *
13  ***************************************************************************/
14 
15 #include "writtenpracticewidget.h"
16 #include "ui_practice_widget_written.h"
17 
18 #include "guifrontend.h"
19 #include "latexrenderer.h"
20 
21 #include "prefs.h"
22 
23 #include <kcolorscheme.h>
24 
25 #include <QTimer>
26 
27 using namespace Practice;
28 
29 WrittenPracticeWidget::WrittenPracticeWidget(GuiFrontend *frontend, QWidget *parent)
30  : AbstractModeWidget(frontend, parent), m_latexRenderer(0)
31 {
32  m_ui = new Ui::WrittenPracticeWidget();
33  m_ui->setupUi(this);
34  m_ui->mixedSolutionLabel->setVisible(false);
35  connect(m_ui->answerEdit, SIGNAL(returnPressed()), this, SLOT(continueClicked()));
36 }
37 
38 
39 void WrittenPracticeWidget::setQuestionFont(const QFont& font)
40 {
41  m_ui->questionLabel->setFont(font);
42 }
43 
44 void WrittenPracticeWidget::setSolutionFont(const QFont& font)
45 {
46  m_ui->answerEdit->setFont(font);
47  m_ui->solutionLabel->setFont(font);
48  m_ui->mixedSolutionLabel->setFont(font);
49 }
50 
51 void WrittenPracticeWidget::continueClicked()
52 {
53  emit continueAction();
54 }
55 
56 QVariant WrittenPracticeWidget::userInput()
57 {
58  return QVariant(m_ui->answerEdit->text());
59 }
60 
61 void WrittenPracticeWidget::setQuestion(const QVariant& question)
62 {
63  m_ui->questionLabel->setMinimumSize(QSize(0, 0));
64  if (LatexRenderer::isLatex(question.toString())) {
65  if(!m_latexRenderer) {
66  m_latexRenderer = new LatexRenderer(this);
67  m_latexRenderer->setResultLabel(m_ui->questionLabel);
68  }
69  m_latexRenderer->renderLatex(question.toString());
70  } else {
71  m_ui->questionLabel->setText(question.toString());
72  }
73 }
74 
75 void WrittenPracticeWidget::showQuestion()
76 {
77  m_ui->answerEdit->setEnabled(true);
78  m_ui->answerEdit->clear();
79  QTimer::singleShot(0, m_ui->answerEdit, SLOT(setFocus()));
80  m_ui->answerEdit->setPalette(palette());
81  m_ui->solutionLabel->setText(QString());
82  m_ui->helpLabel->clear();
83 
84  foreach(QWidget* child, synonymWidgets) {
85  m_ui->synonymList->removeWidget(child);
86  delete child;
87  }
88  synonymWidgets.clear();
89 
90  m_ui->questionPronunciationLabel->setVisible(m_ui->questionPronunciationLabel->isEnabled());
91  m_ui->questionSoundButton->setVisible(m_ui->questionSoundButton->isEnabled());
92  m_ui->solutionPronunciationLabel->setVisible(false);
93  m_ui->solutionSoundButton->setVisible(false);
94 }
95 
96 void WrittenPracticeWidget::setSolution(const QVariant& solution)
97 {
98  m_solution = solution.toString();
99 }
100 
101 void WrittenPracticeWidget::showSolution()
102 {
103  m_ui->solutionLabel->setText(m_solution);
104  m_ui->answerEdit->setEnabled(false);
105  if (m_feedbackState == AbstractFrontend::AnswerCorrect) {
106  m_ui->answerEdit->setPalette(m_correctPalette);
107  } else {
108  m_ui->answerEdit->setPalette(m_wrongPalette);
109  }
110  m_ui->solutionLabel->setPalette(m_correctPalette);
111 
112  m_ui->solutionPronunciationLabel->setVisible(m_ui->solutionPronunciationLabel->isEnabled());
113  m_ui->solutionSoundButton->setVisible(m_ui->solutionSoundButton->isEnabled());
114 }
115 
116 void WrittenPracticeWidget::setSynonym(const QString &synonym)
117 {
118  m_synonym = synonym;
119 }
120 
121 void WrittenPracticeWidget::showSynonym()
122 {
123  QLabel* synonym = new QLabel();
124  QFont font;
125  //TODO: use slightly smaller font for synonyms
126  //font.setPointSize(9);
127  synonym->setAlignment(Qt::AlignCenter);
128  synonym->setFont(font);
129  synonym->setText(i18n("Synonym: ") + m_synonym);
130  synonymWidgets.append(synonym);
131  m_ui->synonymList->addWidget(synonym);
132  m_ui->answerEdit->clear();
133 }
134 
135 void WrittenPracticeWidget::setHint(const QVariant& hint)
136 {
137  m_ui->helpLabel->setText(hint.toString());
138 }
139 
140 void WrittenPracticeWidget::setFeedback(const QVariant& feedback)
141 {
142  m_ui->helpLabel->setText(feedback.toString());
143 }
144 
145 void WrittenPracticeWidget::setFeedbackState(AbstractFrontend::ResultState feedbackState)
146 {
147  m_feedbackState = feedbackState;
148 }
149 
150 void WrittenPracticeWidget::setResultState(AbstractFrontend::ResultState resultState)
151 {
152  m_resultState = resultState;
153 }
154 
155 void WrittenPracticeWidget::setQuestionSound(const KUrl& soundUrl)
156 {
157  m_ui->questionSoundButton->setSoundFile(soundUrl);
158 }
159 
160 void WrittenPracticeWidget::setSolutionSound(const KUrl& soundUrl)
161 {
162  m_ui->solutionSoundButton->setSoundFile(soundUrl);
163 }
164 
165 void WrittenPracticeWidget::setSolutionPronunciation(const QString& pronunciationText)
166 {
167  m_ui->solutionPronunciationLabel->setText('['+pronunciationText+']');
168  m_ui->solutionPronunciationLabel->setEnabled(!pronunciationText.isNull());
169 }
170 
171 void WrittenPracticeWidget::setQuestionPronunciation(const QString& pronunciationText)
172 {
173  m_ui->questionPronunciationLabel->setText('['+pronunciationText+']');
174  m_ui->questionPronunciationLabel->setEnabled(!pronunciationText.isNull());
175 }
176 
177 #include "writtenpracticewidget.moc"
Practice::WrittenPracticeWidget::setSolutionSound
virtual void setSolutionSound(const KUrl &soundUrl)
Definition: writtenpracticewidget.cpp:160
Practice::WrittenPracticeWidget::setQuestion
virtual void setQuestion(const QVariant &question)
Definition: writtenpracticewidget.cpp:61
Practice::GuiFrontend
Definition: guifrontend.h:33
Practice::WrittenPracticeWidget::continueClicked
void continueClicked()
Definition: writtenpracticewidget.cpp:51
Practice::WrittenPracticeWidget::setSolutionFont
virtual void setSolutionFont(const QFont &font)
Definition: writtenpracticewidget.cpp:44
Practice::WrittenPracticeWidget::setQuestionPronunciation
virtual void setQuestionPronunciation(const QString &pronunciationText)
Definition: writtenpracticewidget.cpp:171
Practice::WrittenPracticeWidget::setQuestionFont
virtual void setQuestionFont(const QFont &font)
Definition: writtenpracticewidget.cpp:39
Practice::WrittenPracticeWidget::setFeedback
virtual void setFeedback(const QVariant &feedback)
Definition: writtenpracticewidget.cpp:140
QWidget
Practice::AbstractModeWidget::continueAction
void continueAction()
Practice::LatexRenderer
Definition: latexrenderer.h:26
Practice::WrittenPracticeWidget::setSynonym
virtual void setSynonym(const QString &entry)
Definition: writtenpracticewidget.cpp:116
prefs.h
Practice::LatexRenderer::setResultLabel
void setResultLabel(QLabel *label)
Definition: latexrenderer.h:32
Practice::AbstractModeWidget
Definition: abstractwidget.h:26
Practice::WrittenPracticeWidget::setResultState
virtual void setResultState(AbstractFrontend::ResultState resultState)
Definition: writtenpracticewidget.cpp:150
Practice::WrittenPracticeWidget::showSolution
void showSolution()
Definition: writtenpracticewidget.cpp:101
Practice::WrittenPracticeWidget::setQuestionSound
virtual void setQuestionSound(const KUrl &soundUrl)
Definition: writtenpracticewidget.cpp:155
Practice::AbstractModeWidget::m_correctPalette
QPalette m_correctPalette
Definition: abstractwidget.h:67
Practice::AbstractFrontend::ResultState
ResultState
Definition: abstractfrontend.h:39
Practice::AbstractModeWidget::m_wrongPalette
QPalette m_wrongPalette
Definition: abstractwidget.h:68
Practice::WrittenPracticeWidget::setHint
virtual void setHint(const QVariant &hint)
Definition: writtenpracticewidget.cpp:135
Practice::AbstractFrontend::AnswerCorrect
Definition: abstractfrontend.h:41
writtenpracticewidget.h
guifrontend.h
latexrenderer.h
Practice::WrittenPracticeWidget::setSolutionPronunciation
virtual void setSolutionPronunciation(const QString &pronunciationText)
Definition: writtenpracticewidget.cpp:165
Practice::WrittenPracticeWidget::showSynonym
void showSynonym()
Definition: writtenpracticewidget.cpp:121
Practice::WrittenPracticeWidget::setFeedbackState
virtual void setFeedbackState(AbstractFrontend::ResultState feedbackState)
Definition: writtenpracticewidget.cpp:145
Practice::WrittenPracticeWidget::setSolution
virtual void setSolution(const QVariant &solution)
Definition: writtenpracticewidget.cpp:96
Practice::WrittenPracticeWidget::userInput
virtual QVariant userInput()
Definition: writtenpracticewidget.cpp:56
Practice::WrittenPracticeWidget::WrittenPracticeWidget
WrittenPracticeWidget(GuiFrontend *frontend, QWidget *parent=0)
Definition: writtenpracticewidget.cpp:29
Practice::LatexRenderer::renderLatex
void renderLatex(QString tex)
Definition: latexrenderer.cpp:51
Practice::LatexRenderer::isLatex
static bool isLatex(const QString &tex)
Definition: latexrenderer.cpp:96
Practice::WrittenPracticeWidget::m_ui
Ui::WrittenPracticeWidget * m_ui
Definition: writtenpracticewidget.h:59
Practice::WrittenPracticeWidget::showQuestion
void showQuestion()
Definition: writtenpracticewidget.cpp:75
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:42:06 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

parley

Skip menu "parley"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal