• Skip to content
  • Skip to link menu
KDE 4.0 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 #include <kvttablemodel.h>
00036 
00037 AdjQueryDlg::AdjQueryDlg(KEduVocDocument *doc, QWidget *parent) : PracticeDialog(i18n("Comparison Training"), doc, parent)
00038 {
00039     mw = new Ui::AdjQueryDlgForm();
00040     mw->setupUi(mainWidget());
00041 
00042     mw->stopPracticeButton->setIcon( KIcon("process-stop") );
00043     mw->editEntryButton->setIcon( KIcon("document-properties") );
00044     mw->verify->setIcon(KIcon("dialog-ok"));
00045     mw->know_it->setIcon(KIcon("go-next"));
00046     mw->dont_know->setIcon(KIcon("go-next"));
00047 
00048     connect(mw->stopPracticeButton, SIGNAL(clicked()), SLOT(close()));
00049     connect(mw->editEntryButton, SIGNAL(clicked()), SLOT(editEntry()));
00050 
00051     connect(mw->dont_know, SIGNAL(clicked()), SLOT(skipUnknown()));
00052     connect(mw->know_it, SIGNAL(clicked()), SLOT(skipKnown()));
00053     connect(mw->verify, SIGNAL(clicked()), SLOT(verifyClicked()));
00054     connect(mw->show_all, SIGNAL(clicked()), SLOT(showSolution()));
00055 
00056     connect(mw->lev1Field, SIGNAL(textChanged(const QString&)), SLOT(lev1Changed(const QString&)));
00057     connect(mw->lev2Field, SIGNAL(textChanged(const QString&)), SLOT(lev2Changed(const QString&)));
00058     connect(mw->lev3Field, SIGNAL(textChanged(const QString&)), SLOT(lev3Changed(const QString&)));
00059 
00060     mw->dont_know->setShortcut(QKeySequence(Qt::Key_Escape));
00061 
00062     mw->know_it->setVisible(Prefs::skipKnownEnabled());
00063 
00064     mw->countbar->setFormat("%v/%m");
00065     mw->timebar->setFormat("%v");
00066 
00067     mw->imageGraphicsView->setVisible(false);
00068 
00069     KConfigGroup cg(KGlobal::config(), "AdjQueryDlg");
00070     restoreDialogSize(cg);
00071 }
00072 
00073 
00074 AdjQueryDlg::~AdjQueryDlg()
00075 {
00076     KConfigGroup cg(KGlobal::config(), "AdjQueryDlg");
00077     KDialog::saveDialogSize(cg);
00078 }
00079 
00080 
00081 void AdjQueryDlg::setEntry(TestEntry* entry)
00082 {
00083     PracticeDialog::setEntry(entry);
00084 
00086 
00087     comp = entry->exp->translation(Prefs::solutionLanguage()).comparison();
00088 
00089     mw->timebar->setVisible(Prefs::practiceTimeout());
00090     mw->timelabel->setVisible(Prefs::practiceTimeout());
00091     mw->show_all->setDefault(true);
00092     QString s;
00093 //     s.setNum(q_cycle);
00094     mw->progCount->setText(s);
00095 
00096     mw->lev1Field->setText("");
00097     mw->lev2Field->setText("");
00098     mw->lev3Field->setText("");
00099 
00100     KRandomSequence rs;
00101     int sel = rs.getLong(3);
00102     switch (sel) {
00103     case 0:
00104         mw->lev1Field->setText(comp.l1());
00105         break;
00106 
00107     case 1:
00108         mw->lev2Field->setText(comp.l2());
00109         break;
00110 
00111     case 2:
00112         mw->lev3Field->setText(comp.l3());
00113         break;
00114     }
00115 
00116     mw->lev1Field->setEnabled(!comp.l1().isEmpty());
00117     mw->lev2Field->setEnabled(!comp.l2().isEmpty());
00118     mw->lev3Field->setEnabled(!comp.l3().isEmpty());
00119 
00120     resetAllFields();
00121 
00122     mw->lev1Field->setFocus();
00123 
00124     imageShowFromEntry( mw->imageGraphicsView, entry );
00125 }
00126 
00127 
00128 void AdjQueryDlg::showSolution()
00129 {
00130     resetAllFields();
00131     mw->lev1Field->setText(comp.l1());
00132     mw->lev2Field->setText(comp.l2());
00133     mw->lev3Field->setText(comp.l3());
00134 
00135 
00136 
00137     mw->dont_know->setDefault(true);
00138     setAnswerTainted();
00139 }
00140 
00141 
00142 void AdjQueryDlg::verifyClicked()
00143 {
00144     bool all_known = true;
00145 
00146     double result = verifyAnswer(mw->lev1Field->text(), comp.l1());
00147     if ( result == 1.0 ) {
00148         setWidgetStyle( mw->lev1Field, PositiveResult );
00149     } else {
00150         setWidgetStyle( mw->lev1Field, NegativeResult );
00151         all_known = false;
00152     }
00153 
00154     result = verifyAnswer(mw->lev2Field->text(), comp.l2());
00155     if ( result == 1.0 ) {
00156         setWidgetStyle( mw->lev2Field, PositiveResult );
00157     } else {
00158         setWidgetStyle( mw->lev2Field, NegativeResult );
00159         all_known = false;
00160     }
00161 
00162     result = verifyAnswer(mw->lev3Field->text(), comp.l3());
00163     if ( result == 1.0 ) {
00164         setWidgetStyle( mw->lev3Field, PositiveResult );
00165     } else {
00166         setWidgetStyle( mw->lev3Field, NegativeResult );
00167         all_known = false;
00168     }
00169 
00170     if (all_known) {
00171 //  know_it->setDefault(true);
00172         resultCorrect();
00173         emit showSolutionFinished();
00174     } else {
00175         mw->dont_know->setDefault(true);
00176         setAnswerTainted();
00177     }
00178 }
00179 
00180 
00181 void AdjQueryDlg::resetAllFields()
00182 {
00183     setWidgetStyle(mw->lev1Field, Default);
00184     setWidgetStyle(mw->lev2Field, Default);
00185     setWidgetStyle(mw->lev3Field, Default);
00186 }
00187 
00188 
00189 void AdjQueryDlg::lev1Changed(const QString&)
00190 {
00191     mw->verify->setDefault(true);
00192     setWidgetStyle(mw->lev1Field);
00193 }
00194 
00195 
00196 void AdjQueryDlg::lev2Changed(const QString&)
00197 {
00198     mw->verify->setDefault(true);
00199     setWidgetStyle(mw->lev2Field);
00200 }
00201 
00202 
00203 void AdjQueryDlg::lev3Changed(const QString&)
00204 {
00205     mw->verify->setDefault(true);
00206     setWidgetStyle(mw->lev3Field);
00207 }
00208 
00209 
00210 void AdjQueryDlg::setProgressCounter(int current, int total)
00211 {
00212     mw->countbar->setMaximum(total);
00213     mw->countbar->setValue(current);
00214 }
00215 
00216 #include "AdjQueryDlg.moc"
00217 
00218 

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
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  •   docs
  •   src
  • parley
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