summaryrefslogtreecommitdiffstats
path: root/kiten/learn.h
diff options
context:
space:
mode:
Diffstat (limited to 'kiten/learn.h')
-rw-r--r--kiten/learn.h170
1 files changed, 170 insertions, 0 deletions
diff --git a/kiten/learn.h b/kiten/learn.h
new file mode 100644
index 00000000..bd7a103a
--- /dev/null
+++ b/kiten/learn.h
@@ -0,0 +1,170 @@
+/**
+ This file is part of Kiten, a KDE Japanese Reference Tool...
+ Copyright (C) 2001 Jason Katz-Brown <jason@katzbrown.com>
+ (C) 2005 Paul Temple <paul.temple@gmx.net>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ USA
+**/
+
+#ifndef LEARN_H
+#define LEARN_H
+
+#include <qlistview.h>
+
+#include <kurl.h>
+
+#include "widgets.h"
+
+class KAction;
+class KPushButton;
+class QButtonGroup;
+class QListViewItem;
+class QSplitter;
+class QTabWidget;
+
+// Item that sorts all columns numerically
+class LearnItem : public QListViewItem
+{
+public:
+ LearnItem(QListView *parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null);
+ int compare(QListViewItem *item, int col, bool ascending) const;
+};
+
+class Learn : public KMainWindow
+{
+ Q_OBJECT
+
+ public:
+ Learn(Dict::Index *, QWidget *parent = 0, const char *name = 0);
+ ~Learn();
+
+ bool closeWindow();
+
+ struct scoreCompare;
+
+ signals:
+ void destroyed(Learn *);
+ void linkClicked(const QString &);
+ void configureLearn();
+
+ public slots:
+ void showKanji(QListViewItem *);
+ void updateQuizConfiguration();
+
+ protected:
+ virtual bool queryClose();
+
+ private slots:
+ void read(const KURL &);
+ void write(const KURL &);
+ void saveScores();
+ void next();
+ void prev();
+ void update();
+ void updateGrade();
+ void random();
+ void add();
+ void addAll();
+ void add(Dict::Entry, bool noEmit = false);
+ void del();
+ void cheat();
+ void tabChanged(QWidget *);
+ void itemSelectionChanged();
+ void save();
+ void saveAs();
+
+ void setDirty();
+ void setClean();
+
+ void open();
+ void openNew();
+
+ void print();
+
+ void updateQuiz();
+ void answerClicked(int);
+ void qnew();
+ void qKanjiClicked();
+
+ void finishCtor();
+
+ private:
+ bool initialized;
+
+ KURL filename;
+ bool warnClose();
+
+ QTabWidget *Tabs;
+ QSplitter *listTop;
+ QWidget *quizTop;
+
+ ResultView *View;
+ QValueList<Dict::Entry> list;
+ QValueListIterator<Dict::Entry> current;
+
+ Dict::Index *index;
+
+ KListView *List;
+ KPushButton *Save;
+ KPushButton *Del;
+ KPushButton *qDel;
+
+ bool isMod;
+
+ // Quiz, an app to itself in a tabwidget :)
+
+ static const int numberOfAnswers;
+ QButtonGroup *answers;
+ QPushButton *qKanji;
+
+ QListViewItem *prevItem;
+ QListViewItem *curItem;
+ // if noEmit == true, don't emit dirty
+ void addItem(QListViewItem *, bool noEmit = false);
+
+ void qupdate();
+
+ int seikai;
+ bool nogood;
+ QString shortenString(const QString &);
+
+ // Creates a random meaning not on the lists and adds the meaning
+ // to the list.
+ QString randomMeaning(QStringList &oldMeanings);
+
+ KAction *forwardAct;
+ KAction *printAct;
+ KAction *backAct;
+ KAction *cheatAct;
+ KAction *saveAct;
+ KAction *openAct;
+ KAction *newAct;
+ KAction *saveAsAct;
+ KAction *addAct;
+ KAction *addAllAct;
+ KAction *removeAct;
+ KAction *randomAct;
+ KListAction *gradeAct;
+
+ int getCurrentGrade(void);
+ void setCurrentGrade(int grade);
+
+ int quizOn;
+ int guessOn;
+ inline void numChanged();
+};
+
+#endif