• 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
flashcardmodewidget.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  Copyright 2009 Frederik Gladhorn <gladhorn@kde.org>
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 "flashcardmodewidget.h"
15 
16 #include "ui_practice_widget_flashcard.h"
17 
18 #include <KUrl>
19 
20 #include "guifrontend.h"
21 #include "latexrenderer.h"
22 
23 using namespace Practice;
24 
25 
26 FlashCardModeWidget::FlashCardModeWidget(GuiFrontend *frontend, QWidget* parent)
27  : AbstractModeWidget(frontend, parent), m_questionLatexRenderer(0), m_solutionLatexRenderer(0)
28 {
29  m_ui = new Ui::FlashCardPracticeWidget();
30  m_ui->setupUi(this);
31  connect(frontend, SIGNAL(continueAction()), this, SIGNAL(stopAudio()));
32  connect(frontend, SIGNAL(skipAction()), this, SIGNAL(stopAudio()));
33 }
34 
35 void FlashCardModeWidget::setQuestionFont(const QFont& font)
36 {
37  m_ui->questionLabel->setFont(font);
38 }
39 
40 void FlashCardModeWidget::setSolutionFont(const QFont& font)
41 {
42  m_ui->solutionLabel->setFont(font);
43 }
44 
45 void FlashCardModeWidget::setQuestion(const QVariant& question)
46 {
47  m_ui->questionLabel->setMinimumSize(QSize(0, 0));
48  if (LatexRenderer::isLatex(question.toString())) {
49  if (!m_questionLatexRenderer) {
50  m_questionLatexRenderer = new LatexRenderer(this);
51  m_questionLatexRenderer->setResultLabel(m_ui->questionLabel);
52  }
53  m_questionLatexRenderer->renderLatex(question.toString());
54  } else if (question.canConvert<KUrl>()) {
55  // A KUrl means an image.
56  QPixmap pixmap(question.value<KUrl>().path());
57  if (pixmap.isNull()) {
58  // Couldn't create the pixmap from the path. This should not happen!
59  // FIXME: Do something here (the line below is stolen from guifrontend.cpp
60  //m_ui->questionLabel->setPixmap(m_themedBackgroundRenderer->getPixmapForId("image-placeholder", QSize(150, 150)));
61  } else {
62  m_ui->questionLabel->setPixmap(pixmap.scaled(m_ui->questionLabel->size(),
63  Qt::KeepAspectRatio ));
64  }
65  } else {
66  // A normal text.
67  m_ui->questionLabel->setText(question.toString());
68  }
69 }
70 
71 void FlashCardModeWidget::showQuestion()
72 {
73  m_ui->solutionLabel->setHidden(true);
74  m_frontend->showSetResultButtons(false);
75 
76  m_ui->questionPronunciationLabel->setVisible(m_ui->questionPronunciationLabel->isEnabled());
77  m_ui->questionSoundButton->setVisible(m_ui->questionSoundButton->isEnabled());
78  m_ui->solutionPronunciationLabel->setVisible(false);
79  m_ui->solutionSoundButton->setVisible(false);
80 }
81 
82 void FlashCardModeWidget::setSolution(const QVariant& solution)
83 {
84  m_solution = solution.toString();
85 }
86 
87 void FlashCardModeWidget::setSynonym(const QString& /*entry*/)
88 {
89  //TODO Do something here to show synonyms
90 }
91 
92 void FlashCardModeWidget::showSynonym()
93 {
94  //TODO Do something here to show synonyms
95 }
96 
97 void FlashCardModeWidget::showSolution()
98 {
99  m_ui->solutionLabel->setHidden(true);
100  m_ui->solutionLabel->setPalette(m_correctPalette);
101 
102  m_ui->solutionLabel->setMinimumSize(QSize(0, 0));
103  if (LatexRenderer::isLatex(m_solution)) {
104  if (!m_solutionLatexRenderer) {
105  m_solutionLatexRenderer = new LatexRenderer(this);
106  m_solutionLatexRenderer->setResultLabel(m_ui->solutionLabel);
107  }
108  m_solutionLatexRenderer->renderLatex(m_solution);
109  } else {
110  m_ui->solutionLabel->setText(m_solution);
111  }
112 
113  m_ui->solutionLabel->setHidden(false);
114  m_frontend->showSetResultButtons(true);
115 
116  m_ui->solutionPronunciationLabel->setVisible(m_ui->solutionPronunciationLabel->isEnabled());
117  m_ui->solutionSoundButton->setVisible(m_ui->solutionSoundButton->isEnabled());
118 }
119 
120 void FlashCardModeWidget::setHint(const QVariant& hint)
121 {
122  m_ui->solutionLabel->setHidden(true);
123  m_ui->solutionLabel->setText(hint.toString());
124  m_ui->solutionLabel->setHidden(false);
125 }
126 
127 QVariant FlashCardModeWidget::userInput()
128 {
129  return QVariant();
130 }
131 
132 void FlashCardModeWidget::setQuestionSound(const KUrl& soundUrl)
133 {
134  m_ui->questionSoundButton->setSoundFile(soundUrl);
135 }
136 
137 void FlashCardModeWidget::setSolutionSound(const KUrl& soundUrl)
138 {
139  m_ui->solutionSoundButton->setSoundFile(soundUrl);
140 }
141 
142 void FlashCardModeWidget::setSolutionPronunciation(const QString& pronunciationText)
143 {
144  m_ui->solutionPronunciationLabel->setText('[' + pronunciationText + ']');
145  m_ui->solutionPronunciationLabel->setEnabled(!pronunciationText.isNull());
146 }
147 
148 void FlashCardModeWidget::setQuestionPronunciation(const QString& pronunciationText)
149 {
150  m_ui->questionPronunciationLabel->setText('[' + pronunciationText + ']');
151  m_ui->questionPronunciationLabel->setEnabled(!pronunciationText.isNull());
152 }
153 
154 #include "flashcardmodewidget.moc"
QVariant::canConvert
bool canConvert(Type t) const
QWidget
Practice::GuiFrontend
Definition: guifrontend.h:35
Practice::FlashCardModeWidget::setQuestion
virtual void setQuestion(const QVariant &question)
Definition: flashcardmodewidget.cpp:45
Practice::FlashCardModeWidget::setSolutionFont
virtual void setSolutionFont(const QFont &font)
Definition: flashcardmodewidget.cpp:40
Practice::FlashCardModeWidget::setSolution
virtual void setSolution(const QVariant &solution)
Definition: flashcardmodewidget.cpp:82
QFont
Practice::FlashCardModeWidget::FlashCardModeWidget
FlashCardModeWidget(GuiFrontend *frontend, QWidget *parent=0)
Definition: flashcardmodewidget.cpp:26
Practice::FlashCardModeWidget::showSolution
virtual void showSolution()
Definition: flashcardmodewidget.cpp:97
Practice::AbstractModeWidget::continueAction
void continueAction()
QVariant::value
T value() const
Practice::LatexRenderer
Definition: latexrenderer.h:27
Practice::LatexRenderer::setResultLabel
void setResultLabel(QLabel *label)
Definition: latexrenderer.h:33
Practice::AbstractModeWidget
Definition: abstractwidget.h:27
QString::isNull
bool isNull() const
Practice::GuiFrontend::showSetResultButtons
void showSetResultButtons(bool show)
Definition: guifrontend.cpp:187
Practice::FlashCardModeWidget::setSolutionSound
virtual void setSolutionSound(const KUrl &soundUrl)
Definition: flashcardmodewidget.cpp:137
Practice::AbstractModeWidget::skipAction
void skipAction()
Practice::FlashCardModeWidget::showSynonym
virtual void showSynonym()
Definition: flashcardmodewidget.cpp:92
Practice::FlashCardModeWidget::setHint
virtual void setHint(const QVariant &hint)
Definition: flashcardmodewidget.cpp:120
Practice::FlashCardModeWidget::setQuestionFont
virtual void setQuestionFont(const QFont &font)
Definition: flashcardmodewidget.cpp:35
Practice::AbstractModeWidget::m_frontend
GuiFrontend * m_frontend
Definition: abstractwidget.h:74
Practice::AbstractModeWidget::m_correctPalette
QPalette m_correctPalette
Definition: abstractwidget.h:76
Practice::FlashCardModeWidget::setQuestionPronunciation
virtual void setQuestionPronunciation(const QString &pronunciationText)
Definition: flashcardmodewidget.cpp:148
Practice::FlashCardModeWidget::showQuestion
virtual void showQuestion()
Definition: flashcardmodewidget.cpp:71
Practice::FlashCardModeWidget::setQuestionSound
virtual void setQuestionSound(const KUrl &soundUrl)
Definition: flashcardmodewidget.cpp:132
Practice::FlashCardModeWidget::setSolutionPronunciation
virtual void setSolutionPronunciation(const QString &pronunciationText)
Definition: flashcardmodewidget.cpp:142
QString
QPixmap
QSize
guifrontend.h
flashcardmodewidget.h
Practice::FlashCardModeWidget::setSynonym
virtual void setSynonym(const QString &entry)
Definition: flashcardmodewidget.cpp:87
latexrenderer.h
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Practice::FlashCardModeWidget::userInput
virtual QVariant userInput()
Definition: flashcardmodewidget.cpp:127
QVariant::toString
QString toString() const
Practice::LatexRenderer::renderLatex
void renderLatex(QString tex)
Definition: latexrenderer.cpp:51
Practice::AbstractModeWidget::stopAudio
void stopAudio()
Practice::LatexRenderer::isLatex
static bool isLatex(const QString &tex)
Definition: latexrenderer.cpp:96
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