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

parley

  • sources
  • kde-4.14
  • kdeedu
  • parley
  • src
  • practice
guifrontend.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  Copyright 2009 Daniel Laidig <d.laidig@gmx.de>
3  ***************************************************************************/
4 
5 /***************************************************************************
6  * *
7  * This program is free software; you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation; either version 2 of the License, or *
10  * (at your option) any later version. *
11  * *
12  ***************************************************************************/
13 
14 #include "guifrontend.h"
15 
16 #include <QtCore/QTimer>
17 
18 #include <kcolorscheme.h>
19 #include <kstandarddirs.h>
20 #include <kdebug.h>
21 
22 #include "ui_practice_mainwindow.h"
23 
24 #include "settings/kgametheme/kgametheme.h"
25 #include "comparisonmodewidget.h"
26 #include "conjugationmodewidget.h"
27 #include "flashcardmodewidget.h"
28 #include "mixedlettersmodewidget.h"
29 #include "multiplechoicemodewidget.h"
30 #include "themedbackgroundrenderer.h"
31 #include "writtenpracticewidget.h"
32 
33 using namespace Practice;
34 
35 GuiFrontend::GuiFrontend(QWidget* parent)
36  : AbstractFrontend(parent), m_modeWidget(0), m_lastImage("invalid"), m_currentBox(0), m_newBoxIfCorrect(0), m_newBoxIfWrong(0)
37 {
38  m_widget = new ImageWidget();
39  m_widget->setScalingEnabled(false, false);
40  m_widget->setKeepAspectRatio(Qt::IgnoreAspectRatio);
41  m_widget->setFadingEnabled(false);
42 
43  m_ui = new Ui::PracticeMainWindow();
44  m_ui->setupUi(m_widget);
45  m_ui->centralPracticeWidget->setLayout(new QHBoxLayout());
46 
47  m_themedBackgroundRenderer = new ThemedBackgroundRenderer(this, "practicethemecache.bin");
48 
49  connect(Prefs::self(), SIGNAL(configChanged()), this, SLOT(setTheme()));
50  setTheme();
51 
52  connect(m_themedBackgroundRenderer, SIGNAL(backgroundChanged(QPixmap)), this, SLOT(backgroundChanged(QPixmap)));
53  connect(m_widget, SIGNAL(sizeChanged()), this, SLOT(updateBackground()));
54 
55  connect(m_ui->continueButton, SIGNAL(clicked()), this, SIGNAL(continueAction()));
56  connect(m_ui->answerLaterButton, SIGNAL(clicked()), this, SIGNAL(skipAction()));
57  connect(m_ui->hintButton, SIGNAL(clicked()), this, SIGNAL(hintAction()));
58  connect(m_ui->statusToggle, SIGNAL(toggle()), this, SLOT(toggleResultState()));
59  connect(m_ui->countAsCorrectButton, SIGNAL(clicked()), this, SLOT(countAsCorrectButtonClicked()));
60  connect(m_ui->countAsWrongButton, SIGNAL(clicked()), this, SLOT(countAsWrongButtonClicked()));
61 
62  m_ui->centralPracticeWidget->installEventFilter(this);
63  m_ui->imageWidget->installEventFilter(this);
64  m_ui->rightContainer->installEventFilter(this);
65 
66  QTimer::singleShot(0, this, SLOT(updateBackground()));
67 }
68 
69 GuiFrontend::~GuiFrontend()
70 {
71  delete m_widget;
72 }
73 
74 QVariant GuiFrontend::userInput()
75 {
76  return m_modeWidget->userInput();
77 }
78 
79 QWidget* GuiFrontend::widget()
80 {
81  return m_widget;
82 }
83 
84 void GuiFrontend::setMode(Mode mode)
85 {
86  kDebug() << "setCentralWidget" << mode;
87  AbstractModeWidget *newWidget = 0;
88  switch (mode) {
89  case Written:
90  if (/*m_modeWidget->metaObject()->className() == QLatin1String("WrittenPracticeWidget")*/false) {
91  kDebug() << "Written practice widget is already the central widget";
92  break;
93  }
94  newWidget = new WrittenPracticeWidget(this, m_widget);
95  break;
96  case MultipleChoice:
97  newWidget = new MultiplechoiceModeWidget(this, m_widget);
98  break;
99  case FlashCard:
100  newWidget = new FlashCardModeWidget(this, m_widget);
101  break;
102  case MixedLetters:
103  newWidget = new MixedLettersModeWidget(this, m_widget);
104  break;
105  case Conjugation:
106  newWidget = new ConjugationModeWidget(this, m_widget);
107  break;
108  case Comparison:
109  newWidget = new ComparisonModeWidget(this, m_widget);
110  break;
111  case ExampleSentence:
112  newWidget = new WrittenPracticeWidget(this, m_widget, true);
113  break;
114  default:
115  Q_ASSERT("Practice Mode Invalid" == 0);
116  }
117  if (newWidget) {
118  m_ui->centralPracticeWidget->layout()->addWidget(newWidget);
119  modeWidgetDestroyed();
120  delete m_modeWidget;
121  m_modeWidget = newWidget;
122  connect(m_modeWidget, SIGNAL(continueAction()), m_ui->continueButton, SLOT(animateClick()));
123  }
124  m_ui->buttonStack->setCurrentIndex(0);
125  updateFontColors();
126 }
127 
128 void GuiFrontend::setLessonName(const QString& lessonName)
129 {
130  m_ui->lessonLabel->setText(i18nc("Display of the current unit during practice", "Unit: %1",
131  lessonName));
132 }
133 
134 void GuiFrontend::showGrade(int preGrade, int grade)
135 {
136  if (preGrade == 0 && grade == 0) {
137  m_ui->gradeLabel->setText(i18n("New word"));
138  }
139  else {
140  m_ui->gradeLabel->setText(i18nc("Display of the current confidence level during practice, 1st param is either initial or long term",
141  "%1, confidence %2",
142  grade == 0 ? i18n("initial") : i18n("long term"),
143  QString::number(grade == 0 ? preGrade : grade)));
144  }
145 }
146 
147 void GuiFrontend::showQuestion()
148 {
149  m_ui->answerLaterButton->setEnabled(true);
150  m_ui->hintButton->setEnabled(Prefs::showHints());
151  QTimer::singleShot(0, m_ui->continueButton, SLOT(setFocus()));
152  m_modeWidget->showQuestion();
153  setImage(m_questionImage);
154 }
155 
156 void GuiFrontend::showSolution()
157 {
158  m_ui->continueButton->setFocus();
159  m_modeWidget->showSolution();
160  m_ui->answerLaterButton->setEnabled(false);
161  m_ui->hintButton->setEnabled(false);
162  setImage(m_solutionImage);
163 }
164 void GuiFrontend::setSynonym(const QString& entry)
165 {
166  m_modeWidget->setSynonym(entry);
167 }
168 
169 void GuiFrontend::showSynonym()
170 {
171  m_modeWidget->showSynonym();
172 }
173 
174 void GuiFrontend::setBoxes(grade_t currentBox, grade_t newBoxIfCorrect, grade_t newBoxIfWrong)
175 {
176  m_ui->boxesWidget->setBoxes(currentBox, 0);
177  m_currentBox = currentBox;
178  m_newBoxIfCorrect = newBoxIfCorrect;
179  m_newBoxIfWrong = newBoxIfWrong;
180 }
181 
182 void GuiFrontend::backgroundChanged(const QPixmap &pixmap)
183 {
184  m_widget->setPixmap(pixmap);
185 }
186 
187 void GuiFrontend::showSetResultButtons(bool show)
188 {
189  m_ui->buttonStack->setCurrentIndex(int(show));
190  if (show) {
191  m_ui->countAsCorrectButton->setFocus();
192  }
193 }
194 
195 bool GuiFrontend::eventFilter(QObject *object, QEvent *event)
196 {
197  if (event->type() == QEvent::Resize)
198  updateBackground();
199  return AbstractFrontend::eventFilter(object, event);
200 }
201 
202 void GuiFrontend::setFinishedWordsTotalWords(int finished, int total)
203 {
204  int finishedPercentage = 1.0 * finished / total * 100;
205  // update progress bar
206  m_ui->totalProgress->setMaximum(total);
207  m_ui->totalProgress->setValue(finished);
208  m_ui->totalProgress->setToolTip(i18np("You answered correctly %2 of a total of %1 word.\nYou are %3% done.",
209  "You answered correctly %2 of a total of %1 words.\nYou are %3% done.",
210  total, finished, finishedPercentage));
211 }
212 
213 QFont GuiFrontend::knownLangFont() const
214 {
215  return m_knownLangFont;
216 }
217 
218 QFont GuiFrontend::learningLangFont() const
219 {
220  return m_learningLangFont;
221 }
222 
223 void GuiFrontend::setKnownLangFont(const QFont& font)
224 {
225  m_knownLangFont = font;
226 }
227 
228 void GuiFrontend::setLearningLangFont(const QFont& font)
229 {
230  m_learningLangFont = font;
231 }
232 
233 
234 void GuiFrontend::setHint(const QVariant& hint)
235 {
236  m_modeWidget->setHint(hint);
237 }
238 
239 void GuiFrontend::setQuestion(const QVariant& question)
240 {
241  m_modeWidget->setQuestion(question);
242 }
243 
244 
245 void GuiFrontend::setQuestionPronunciation(const QString& pronunciationText)
246 {
247  m_modeWidget->setQuestionPronunciation(pronunciationText);
248 }
249 
250 void GuiFrontend::setQuestionSound(const KUrl& soundUrl)
251 {
252  m_modeWidget->setQuestionSound(soundUrl);
253 }
254 
255 void GuiFrontend::setSolution(const QVariant& solution)
256 {
257  m_modeWidget->setSolution(solution);
258 }
259 
260 void GuiFrontend::setQuestionImage(const KUrl& image)
261 {
262  m_questionImage = image;
263 }
264 
265 void GuiFrontend::setSolutionImage(const KUrl& image)
266 {
267  m_solutionImage = image;
268 }
269 
270 void GuiFrontend::setQuestionFont(const QFont& font)
271 {
272  m_modeWidget->setQuestionFont(font);
273 }
274 
275 void GuiFrontend::setSolutionFont(const QFont& font)
276 {
277  m_modeWidget->setSolutionFont(font);
278 }
279 
280 void GuiFrontend::setImage(const KUrl& image)
281 {
282  if (m_lastImage == image) {
283  return;
284  }
285  QPixmap pixmap(image.path());
286  if (pixmap.isNull()) {
287  m_ui->imageWidget->setPixmap(m_themedBackgroundRenderer->getPixmapForId("image-placeholder", QSize(150, 150)));
288  } else {
289  m_ui->imageWidget->setPixmap(pixmap);
290  }
291  m_lastImage = image;
292 }
293 
294 void GuiFrontend::setSolutionPronunciation(const QString& pronunciationText)
295 {
296  m_modeWidget->setSolutionPronunciation(pronunciationText);
297 }
298 
299 void GuiFrontend::setSolutionSound(const KUrl& soundUrl)
300 {
301  m_modeWidget->setSolutionSound(soundUrl);
302 }
303 
304 void GuiFrontend::setFeedback(const QVariant& feedback)
305 {
306  m_modeWidget->setFeedback(feedback);
307 }
308 
309 void GuiFrontend::setFeedbackState(ResultState feedbackState)
310 {
311  m_feedbackState = feedbackState;
312  m_modeWidget->setFeedbackState(feedbackState);
313 }
314 
315 void GuiFrontend::setResultState(ResultState resultState)
316 {
317  // TODO: temporary text labels instead of graphics
318 // m_ui->statusImageLabel->setFont(QFont("", 80, QFont::Bold));
319  m_ui->statusToggle->setResultState(resultState);
320  switch (resultState) {
321  case AbstractFrontend::QuestionState:
322  case AbstractFrontend::AnswerSynonym:
323 // m_ui->statusImageLabel->setText("?");
324 // m_ui->toggleButton->setEnabled(false);
325 // m_ui->toggleButton->setText(QString(0x2717)+QChar(0x2192)+QChar(0x2713));
326  m_ui->boxesWidget->setBoxes(m_currentBox);
327  break;
328  case AbstractFrontend::AnswerCorrect:
329 // m_ui->statusImageLabel->setText(QChar(0x2713));
330 // m_ui->toggleButton->setEnabled(true);
331 // m_ui->toggleButton->setText(QString(0x2713)+QChar(0x2192)+QChar(0x2717));
332  m_ui->boxesWidget->setBoxes(m_newBoxIfCorrect, m_currentBox);
333  break;
334 
335 // m_ui->statusImageLabel->setText("?");
336 // m_ui->toggleButton->setEnabled(true);
337 // m_ui->toggleButton->setText(QString(0x2713)+QChar(0x2192)+QChar(0x2717));
338 // m_ui->boxesWidget->setBoxes(m_currentBox);
339 // break;
340  case AbstractFrontend::AnswerWrong:
341 // m_ui->statusImageLabel->setText(QChar(0x2717));
342 // m_ui->toggleButton->setEnabled(true);
343 // m_ui->toggleButton->setText(QString(0x2717)+QChar(0x2192)+QChar(0x2713));
344  m_ui->boxesWidget->setBoxes(m_newBoxIfWrong, m_currentBox);
345  break;
346  }
347 
348  m_resultState = resultState;
349  m_modeWidget->setResultState(resultState);
350 }
351 
352 AbstractFrontend::ResultState GuiFrontend::resultState()
353 {
354  return m_resultState;
355 }
356 
357 void GuiFrontend::countAsCorrectButtonClicked()
358 {
359  m_resultState = AnswerCorrect;
360  emit continueAction();
361 }
362 
363 void GuiFrontend::countAsWrongButtonClicked()
364 {
365  m_resultState = AnswerWrong;
366  emit continueAction();
367 }
368 
369 void GuiFrontend::toggleResultState()
370 {
371  if (resultState() == AnswerWrong) {
372  setResultState(AnswerCorrect);
373  } else {
374  setResultState(AnswerWrong);
375  }
376 }
377 
378 void GuiFrontend::updateBackground()
379 {
380  m_themedBackgroundRenderer->clearRects();
381  m_themedBackgroundRenderer->addRect("background", QRect(QPoint(), m_widget->size()));
382  m_themedBackgroundRenderer->addRect("image", m_ui->imageWidget->frameGeometry());
383  m_themedBackgroundRenderer->addRect("central", m_ui->centralPracticeWidget->frameGeometry());
384  m_themedBackgroundRenderer->addRect("buttons", m_ui->rightContainer->frameGeometry());
385  QPixmap pixmap = m_themedBackgroundRenderer->getScaledBackground();
386  if (!pixmap.isNull()) {
387  m_widget->setPixmap(pixmap);
388  }
389  m_themedBackgroundRenderer->updateBackground();
390 }
391 
392 void GuiFrontend::updateFontColors()
393 {
394  QPalette p(QApplication::palette());
395  QColor c = m_themedBackgroundRenderer->fontColor("Outer", p.color(QPalette::Active, QPalette::WindowText));
396  p.setColor(QPalette::WindowText, c);
397  m_ui->lessonLabel->setPalette(p);
398  m_ui->gradeLabel->setPalette(p);
399 
400  if (m_modeWidget) {
401  p = QApplication::palette();
402  c = m_themedBackgroundRenderer->fontColor("Central", p.color(QPalette::Active, QPalette::WindowText));
403  p.setColor(QPalette::Active, QPalette::WindowText, c);
404  p.setColor(QPalette::Inactive, QPalette::WindowText, c);
405  m_modeWidget->setPalette(p);
406 
407  KColorScheme scheme(QPalette::Active);
408  QPalette correctPalette = QApplication::palette();
409  c = m_themedBackgroundRenderer->fontColor("Correct", scheme.foreground(KColorScheme::PositiveText).color());
410  correctPalette.setColor(QPalette::WindowText, c);
411  correctPalette.setColor(QPalette::Text, scheme.foreground(KColorScheme::PositiveText).color());
412  QPalette wrongPalette = QApplication::palette();
413  c = m_themedBackgroundRenderer->fontColor("Wrong", scheme.foreground(KColorScheme::NegativeText).color());
414  wrongPalette.setColor(QPalette::WindowText, c);
415  wrongPalette.setColor(QPalette::Text, scheme.foreground(KColorScheme::NegativeText).color());
416 
417  m_modeWidget->setResultPalettes(correctPalette, wrongPalette);
418  }
419 }
420 
421 void GuiFrontend::setTheme()
422 {
423  m_themedBackgroundRenderer->setTheme(Prefs::theme());
424  updateFontColors();
425  updateBackground();
426  m_widget->setContentsMargins(m_themedBackgroundRenderer->contentMargins());
427  m_ui->boxesWidget->setRenderer(m_themedBackgroundRenderer);
428  m_ui->statusToggle->setRenderer(m_themedBackgroundRenderer);
429 }
430 
431 void GuiFrontend::modeWidgetDestroyed(QObject *obj)
432 {
433  Q_UNUSED(obj);
434 
435  if (m_modeWidget) {
436  m_modeWidget->objectDestroyed();
437  }
438 }
439 
440 #include "guifrontend.moc"
Practice::GuiFrontend::setResultState
virtual void setResultState(ResultState resultState)
The result state indicated whether a word is counted as correct (and grades are raised) and can be ch...
Definition: guifrontend.cpp:315
Practice::ComparisonModeWidget
Definition: comparisonmodewidget.h:29
QEvent
QWidget
QEvent::type
Type type() const
QWidget::setPalette
void setPalette(const QPalette &)
QPalette::setColor
void setColor(ColorGroup group, ColorRole role, const QColor &color)
Practice::AbstractModeWidget::setQuestion
virtual void setQuestion(const QVariant &question)=0
Practice::GuiFrontend::setFeedback
virtual void setFeedback(const QVariant &feedback)
Definition: guifrontend.cpp:304
Practice::GuiFrontend::toggleResultState
void toggleResultState()
Definition: guifrontend.cpp:369
QFont
Practice::GuiFrontend::userInput
virtual QVariant userInput()
Enables access to the input of the user.
Definition: guifrontend.cpp:74
Practice::GuiFrontend::setSolutionSound
virtual void setSolutionSound(const KUrl &soundUrl)
Definition: guifrontend.cpp:299
Practice::AbstractModeWidget::showQuestion
virtual void showQuestion()=0
Practice::GuiFrontend::setSolutionImage
virtual void setSolutionImage(const KUrl &img)
Definition: guifrontend.cpp:265
Practice::GuiFrontend::modeWidgetDestroyed
virtual void modeWidgetDestroyed(QObject *obj=0)
To be called prior to deleting a modeWidget.
Definition: guifrontend.cpp:431
Practice::GuiFrontend::resultState
virtual ResultState resultState()
Definition: guifrontend.cpp:352
QHBoxLayout
Practice::GuiFrontend::showSolution
void showSolution()
Definition: guifrontend.cpp:156
Practice::ThemedBackgroundRenderer::getScaledBackground
QPixmap getScaledBackground()
Definition: themedbackgroundrenderer.cpp:78
Practice::GuiFrontend::knownLangFont
QFont knownLangFont() const
fonts for learning and known languages.
Definition: guifrontend.cpp:213
Practice::GuiFrontend::setSolution
virtual void setSolution(const QVariant &solution)
Definition: guifrontend.cpp:255
QPoint
Practice::AbstractFrontend::QuestionState
Definition: abstractfrontend.h:42
Practice::AbstractModeWidget::objectDestroyed
virtual void objectDestroyed(QObject *obj=0)
To be called prior to focus change in deletion to allow any cleanup.
Definition: abstractwidget.cpp:30
Practice::ThemedBackgroundRenderer::contentMargins
QMargins contentMargins()
Definition: themedbackgroundrenderer.cpp:190
Practice::AbstractModeWidget::setSolutionSound
virtual void setSolutionSound(const KUrl &soundUrl)=0
Prefs::theme
static QString theme()
Get Theme to use for practice and welcome screen.
Definition: prefs.h:51
Practice::AbstractModeWidget
Definition: abstractwidget.h:27
Practice::AbstractFrontend::hintAction
void hintAction()
Practice::AbstractModeWidget::setSolution
virtual void setSolution(const QVariant &solution)=0
Practice::GuiFrontend::GuiFrontend
GuiFrontend(QWidget *parent=0)
Definition: guifrontend.cpp:35
Practice::ImageWidget::setScalingEnabled
void setScalingEnabled(bool scaling, bool onlyDownscaling=true)
Definition: imagewidget.cpp:224
Practice::GuiFrontend::showSetResultButtons
void showSetResultButtons(bool show)
Definition: guifrontend.cpp:187
Practice::GuiFrontend::showQuestion
void showQuestion()
Definition: guifrontend.cpp:147
Prefs::self
static Prefs * self()
Definition: prefs.cpp:17
QWidget::size
size
Practice::ThemedBackgroundRenderer::fontColor
QColor fontColor(const QString &context, const QColor &fallback)
Definition: themedbackgroundrenderer.cpp:106
Practice::GuiFrontend::setFinishedWordsTotalWords
virtual void setFinishedWordsTotalWords(int finished, int total)
The status such as lesson or number of words has changed.
Definition: guifrontend.cpp:202
QRect
QString::number
QString number(int n, int base)
Practice::GuiFrontend::setQuestion
virtual void setQuestion(const QVariant &question)
Definition: guifrontend.cpp:239
Practice::ImageWidget::setKeepAspectRatio
void setKeepAspectRatio(Qt::AspectRatioMode mode)
Definition: imagewidget.cpp:230
Practice::GuiFrontend::showSynonym
void showSynonym()
Definition: guifrontend.cpp:169
Practice::GuiFrontend::eventFilter
bool eventFilter(QObject *object, QEvent *event)
Definition: guifrontend.cpp:195
Practice::AbstractModeWidget::setQuestionFont
virtual void setQuestionFont(const QFont &font)=0
Practice::AbstractFrontend::AnswerWrong
Definition: abstractfrontend.h:45
Practice::AbstractFrontend::MixedLetters
Definition: abstractfrontend.h:33
Practice::AbstractModeWidget::setSynonym
virtual void setSynonym(const QString &entry)=0
QObject
Practice::GuiFrontend::setSolutionPronunciation
virtual void setSolutionPronunciation(const QString &pronunciationText)
Definition: guifrontend.cpp:294
Practice::AbstractModeWidget::setSolutionPronunciation
virtual void setSolutionPronunciation(const QString &pronunciationText)=0
Practice::AbstractFrontend::ResultState
ResultState
Definition: abstractfrontend.h:41
Practice::ThemedBackgroundRenderer::addRect
void addRect(const QString &name, const QRect &rect)
Definition: themedbackgroundrenderer.cpp:69
Practice::GuiFrontend::setSolutionFont
virtual void setSolutionFont(const QFont &font)
Definition: guifrontend.cpp:275
Practice::ImageWidget::setPixmap
void setPixmap(const QPixmap &pixmap)
Definition: imagewidget.cpp:200
QObject::eventFilter
virtual bool eventFilter(QObject *watched, QEvent *event)
Practice::AbstractModeWidget::setFeedbackState
virtual void setFeedbackState(AbstractFrontend::ResultState feedbackState)=0
Practice::AbstractModeWidget::setQuestionPronunciation
virtual void setQuestionPronunciation(const QString &pronunciationText)=0
QString
Practice::AbstractModeWidget::setResultState
virtual void setResultState(AbstractFrontend::ResultState resultState)=0
QColor
QApplication::palette
QPalette palette()
Practice::AbstractModeWidget::userInput
virtual QVariant userInput()=0
Practice::AbstractFrontend::Comparison
Definition: abstractfrontend.h:37
QPixmap
Practice::GuiFrontend::showGrade
void showGrade(int preGrade, int grade)
Definition: guifrontend.cpp:134
multiplechoicemodewidget.h
QPixmap::isNull
bool isNull() const
QSize
Practice::WrittenPracticeWidget
Definition: writtenpracticewidget.h:29
Practice::ThemedBackgroundRenderer::setTheme
void setTheme(const QString &theme)
Definition: themedbackgroundrenderer.cpp:50
Practice::AbstractModeWidget::setSolutionFont
virtual void setSolutionFont(const QFont &font)=0
Practice::FlashCardModeWidget
Definition: flashcardmodewidget.h:33
Practice::GuiFrontend::setSynonym
virtual void setSynonym(const QString &entry)
set a new synonym that should be shown
Definition: guifrontend.cpp:164
Practice::AbstractFrontend::skipAction
void skipAction()
Practice::ThemedBackgroundRenderer
Definition: themedbackgroundrenderer.h:31
Practice::AbstractModeWidget::showSolution
virtual void showSolution()=0
Practice::MultiplechoiceModeWidget
Definition: multiplechoicemodewidget.h:31
Practice::AbstractFrontend::FlashCard
Definition: abstractfrontend.h:32
Practice::AbstractFrontend::AnswerSynonym
Definition: abstractfrontend.h:44
Practice::AbstractFrontend::AnswerCorrect
Definition: abstractfrontend.h:43
Practice::GuiFrontend::setFeedbackState
virtual void setFeedbackState(ResultState feedbackState)
The feedback state tells the user if the currently entered word is correct (independent of whether th...
Definition: guifrontend.cpp:309
writtenpracticewidget.h
Practice::AbstractFrontend::continueAction
void continueAction()
Practice::AbstractFrontend::Mode
Mode
Definition: abstractfrontend.h:30
guifrontend.h
flashcardmodewidget.h
Practice::ThemedBackgroundRenderer::updateBackground
void updateBackground()
Definition: themedbackgroundrenderer.cpp:119
Practice::AbstractFrontend::Conjugation
Definition: abstractfrontend.h:36
Practice::ThemedBackgroundRenderer::getPixmapForId
QPixmap getPixmapForId(const QString &id, QSize size=QSize())
Definition: themedbackgroundrenderer.cpp:168
Practice::AbstractModeWidget::setQuestionSound
virtual void setQuestionSound(const KUrl &soundUrl)=0
conjugationmodewidget.h
Practice::AbstractModeWidget::setFeedback
virtual void setFeedback(const QVariant &feedback)=0
kgametheme.h
comparisonmodewidget.h
Practice::AbstractModeWidget::setHint
virtual void setHint(const QVariant &hint)=0
Practice::GuiFrontend::backgroundChanged
void backgroundChanged(const QPixmap &pixmap)
Definition: guifrontend.cpp:182
Practice::MixedLettersModeWidget
Definition: mixedlettersmodewidget.h:33
Practice::AbstractFrontend
Definition: abstractfrontend.h:26
Practice::GuiFrontend::setHint
virtual void setHint(const QVariant &hint)
Definition: guifrontend.cpp:234
Practice::GuiFrontend::setLessonName
void setLessonName(const QString &lessonName)
update lesson label
Definition: guifrontend.cpp:128
Practice::GuiFrontend::setQuestionPronunciation
virtual void setQuestionPronunciation(const QString &pronunciationText)
Definition: guifrontend.cpp:245
Practice::GuiFrontend::setQuestionFont
virtual void setQuestionFont(const QFont &font)
Definition: guifrontend.cpp:270
Practice::GuiFrontend::setKnownLangFont
void setKnownLangFont(const QFont &font)
Definition: guifrontend.cpp:223
Practice::ImageWidget::setFadingEnabled
void setFadingEnabled(bool fading)
Definition: imagewidget.cpp:235
Practice::GuiFrontend::setBoxes
void setBoxes(grade_t currentBox, grade_t newBoxIfCorrect, grade_t newBoxIfWrong)
Definition: guifrontend.cpp:174
Practice::ImageWidget
Definition: imagewidget.h:24
Practice::GuiFrontend::learningLangFont
QFont learningLangFont() const
Definition: guifrontend.cpp:218
Prefs::showHints
static bool showHints()
Get Enable the showing of hints.
Definition: prefs.h:488
Practice::ConjugationModeWidget
Definition: conjugationmodewidget.h:30
Practice::AbstractModeWidget::showSynonym
virtual void showSynonym()=0
Practice::ThemedBackgroundRenderer::clearRects
void clearRects()
Definition: themedbackgroundrenderer.cpp:63
mixedlettersmodewidget.h
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Practice::GuiFrontend::setQuestionSound
virtual void setQuestionSound(const KUrl &soundUrl)
Definition: guifrontend.cpp:250
Practice::AbstractModeWidget::setResultPalettes
virtual void setResultPalettes(const QPalette &correctPalette, const QPalette &wrongPalette)
Definition: abstractwidget.cpp:24
themedbackgroundrenderer.h
Practice::AbstractFrontend::Written
Definition: abstractfrontend.h:35
Practice::AbstractFrontend::ExampleSentence
Definition: abstractfrontend.h:38
Practice::GuiFrontend::setQuestionImage
virtual void setQuestionImage(const KUrl &img)
Definition: guifrontend.cpp:260
Practice::GuiFrontend::widget
QWidget * widget()
Definition: guifrontend.cpp:79
Practice::GuiFrontend::setLearningLangFont
void setLearningLangFont(const QFont &font)
Definition: guifrontend.cpp:228
Practice::GuiFrontend::setMode
void setMode(Mode mode)
Definition: guifrontend.cpp:84
QPalette
Practice::AbstractFrontend::MultipleChoice
Definition: abstractfrontend.h:34
Practice::GuiFrontend::~GuiFrontend
virtual ~GuiFrontend()
Definition: guifrontend.cpp:69
QWidget::setContentsMargins
void setContentsMargins(int left, int top, int right, int bottom)
QTimer::singleShot
singleShot
QVariant
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:15:56 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
  • 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