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

parley

AdjQueryDlg.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002 
00003                    query dialog for adjectives
00004 
00005     -----------------------------------------------------------------------
00006 
00007     begin         : Sat Dec 4 15:09:18 1999
00008 
00009     copyright     : (C) 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de>
00010                     (C) 2004-2007 Peter Hedlund <peter.hedlund@kdemail.net>
00011 
00012     -----------------------------------------------------------------------
00013 
00014  ***************************************************************************
00015 
00016  ***************************************************************************
00017  *                                                                         *
00018  *   This program is free software; you can redistribute it and/or modify  *
00019  *   it under the terms of the GNU General Public License as published by  *
00020  *   the Free Software Foundation; either version 2 of the License, or     *
00021  *   (at your option) any later version.                                   *
00022  *                                                                         *
00023  ***************************************************************************/
00024 
00025 #include "AdjQueryDlg.h"
00026 
00027 #include <QTimer>
00028 #include <QPushButton>
00029 #include <QLineEdit>
00030 #include <QLabel>
00031 
00032 #include <KLocale>
00033 #include <KRandomSequence>
00034 
00035 AdjQueryDlg::AdjQueryDlg(KEduVocDocument *doc, QWidget *parent) : PracticeDialog(i18n("Comparison Training"), doc, parent)
00036 {
00037     mw = new Ui::AdjQueryDlgForm();
00038     mw->setupUi(mainWidget());
00039 
00040     mw->stopPracticeButton->setIcon( KIcon("process-stop") );
00041     mw->verify->setIcon(KIcon("dialog-ok"));
00042     mw->know_it->setIcon(KIcon("go-next"));
00043     mw->dont_know->setIcon(KIcon("go-next"));
00044 
00045     connect(mw->stopPracticeButton, SIGNAL(clicked()), SLOT(close()));
00046     connect(mw->dont_know, SIGNAL(clicked()), SLOT(skipUnknown()));
00047     connect(mw->know_it, SIGNAL(clicked()), SLOT(skipKnown()));
00048     connect(mw->verify, SIGNAL(clicked()), SLOT(verifyClicked()));
00049     connect(mw->show_all, SIGNAL(clicked()), SLOT(showSolution()));
00050 
00051     connect(mw->lev1Field, SIGNAL(textChanged(const QString&)), SLOT(lev1Changed(const QString&)));
00052     connect(mw->lev2Field, SIGNAL(textChanged(const QString&)), SLOT(lev2Changed(const QString&)));
00053     connect(mw->lev3Field, SIGNAL(textChanged(const QString&)), SLOT(lev3Changed(const QString&)));
00054 
00055     mw->dont_know->setShortcut(QKeySequence(Qt::Key_Escape));
00056 
00057     mw->know_it->setVisible(Prefs::skipKnownEnabled());
00058 
00059     mw->countbar->setFormat("%v/%m");
00060     mw->timebar->setFormat("%v");
00061 
00062     mw->imageGraphicsView->setVisible(false);
00063 
00064     KConfigGroup cg(KGlobal::config(), "AdjQueryDlg");
00065     restoreDialogSize(cg);
00066 }
00067 
00068 
00069 AdjQueryDlg::~AdjQueryDlg()
00070 {
00071     KConfigGroup cg(KGlobal::config(), "AdjQueryDlg");
00072     KDialog::saveDialogSize(cg);
00073 }
00074 
00075 
00076 void AdjQueryDlg::setEntry(TestEntry* entry)
00077 {
00078     PracticeDialog::setEntry(entry);
00079 
00081 
00082     mw->timebar->setVisible(Prefs::practiceTimeout());
00083     mw->timelabel->setVisible(Prefs::practiceTimeout());
00084     mw->show_all->setDefault(true);
00085     QString s;
00086 //     s.setNum(q_cycle);
00087     mw->progCount->setText(s);
00088 
00089     mw->lev1Field->setText("");
00090     mw->lev2Field->setText("");
00091     mw->lev3Field->setText("");
00092 
00093     KRandomSequence rs;
00094     int sel = rs.getLong(3);
00095     switch (sel) {
00096     case 0:
00097         mw->lev1Field->setText(m_entry->entry()->translation(Prefs::solutionLanguage())->text());
00098         break;
00099 
00100     case 1:
00101         mw->lev2Field->setText(m_entry->entry()->translation(Prefs::solutionLanguage())->comparative());
00102         break;
00103 
00104     case 2:
00105         mw->lev3Field->setText(m_entry->entry()->translation(Prefs::solutionLanguage())->superlative());
00106         break;
00107     }
00108 
00109     mw->lev1Field->setEnabled(!m_entry->entry()->translation(Prefs::solutionLanguage())->text().isEmpty());
00110     mw->lev2Field->setEnabled(!m_entry->entry()->translation(Prefs::solutionLanguage())->comparative().isEmpty());
00111     mw->lev3Field->setEnabled(!m_entry->entry()->translation(Prefs::solutionLanguage())->superlative().isEmpty());
00112 
00113     resetAllFields();
00114 
00115     mw->lev1Field->setFocus();
00116 
00117     imageShowFromEntry( mw->imageGraphicsView );
00118 }
00119 
00120 
00121 void AdjQueryDlg::showSolution()
00122 {
00123     resetAllFields();
00124     mw->lev1Field->setText(m_entry->entry()->translation(Prefs::solutionLanguage())->text());
00125     mw->lev2Field->setText(m_entry->entry()->translation(Prefs::solutionLanguage())->comparative());
00126     mw->lev3Field->setText(m_entry->entry()->translation(Prefs::solutionLanguage())->superlative());
00127 
00128     mw->dont_know->setDefault(true);
00129     setAnswerTainted();
00130 }
00131 
00132 
00133 void AdjQueryDlg::verifyClicked()
00134 {
00135     bool all_known = true;
00136 
00137     double result = verifyAnswer(mw->lev1Field->text(), m_entry->entry()->translation(Prefs::solutionLanguage())->text());
00138     if ( result == 1.0 ) {
00139         setWidgetStyle( mw->lev1Field, PositiveResult );
00140     } else {
00141         setWidgetStyle( mw->lev1Field, NegativeResult );
00142         all_known = false;
00143     }
00144 
00145     result = verifyAnswer(mw->lev2Field->text(), m_entry->entry()->translation(Prefs::solutionLanguage())->comparative());
00146     if ( result == 1.0 ) {
00147         setWidgetStyle( mw->lev2Field, PositiveResult );
00148     } else {
00149         setWidgetStyle( mw->lev2Field, NegativeResult );
00150         all_known = false;
00151     }
00152 
00153     result = verifyAnswer(mw->lev3Field->text(), m_entry->entry()->translation(Prefs::solutionLanguage())->superlative());
00154     if ( result == 1.0 ) {
00155         setWidgetStyle( mw->lev3Field, PositiveResult );
00156     } else {
00157         setWidgetStyle( mw->lev3Field, NegativeResult );
00158         all_known = false;
00159     }
00160 
00161     if (all_known) {
00162 //  know_it->setDefault(true);
00163         resultCorrect();
00164         emit showSolutionFinished();
00165     } else {
00166         mw->dont_know->setDefault(true);
00167         setAnswerTainted();
00168     }
00169 }
00170 
00171 
00172 void AdjQueryDlg::resetAllFields()
00173 {
00174     setWidgetStyle(mw->lev1Field, Default);
00175     setWidgetStyle(mw->lev2Field, Default);
00176     setWidgetStyle(mw->lev3Field, Default);
00177 }
00178 
00179 
00180 void AdjQueryDlg::lev1Changed(const QString&)
00181 {
00182     mw->verify->setDefault(true);
00183     setWidgetStyle(mw->lev1Field);
00184 }
00185 
00186 
00187 void AdjQueryDlg::lev2Changed(const QString&)
00188 {
00189     mw->verify->setDefault(true);
00190     setWidgetStyle(mw->lev2Field);
00191 }
00192 
00193 
00194 void AdjQueryDlg::lev3Changed(const QString&)
00195 {
00196     mw->verify->setDefault(true);
00197     setWidgetStyle(mw->lev3Field);
00198 }
00199 
00200 
00201 void AdjQueryDlg::setProgressCounter(int current, int total)
00202 {
00203     mw->countbar->setMaximum(total);
00204     mw->countbar->setValue(current);
00205 }
00206 
00207 #include "AdjQueryDlg.moc"
00208 
00209 

parley

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

kdeedu

Skip menu "kdeedu"
  • kalzium
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  •   docs
  •   src
  • parley
  •   stepcore
Generated for kdeedu by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal