parley
parley.h
Go to the documentation of this file.00001 /*************************************************************************** 00002 00003 main part of Parley 00004 00005 ----------------------------------------------------------------------- 00006 00007 begin : Thu Mar 11 20:50:53 MET 1999 00008 00009 copyright : (C) 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de> 00010 (C) 2004-2007 Peter Hedlund <peter.hedlund@kdemail.net> 00011 (C) 2007-2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net> 00012 00013 ----------------------------------------------------------------------- 00014 00015 ***************************************************************************/ 00016 00017 /*************************************************************************** 00018 * * 00019 * This program is free software; you can redistribute it and/or modify * 00020 * it under the terms of the GNU General Public License as published by * 00021 * the Free Software Foundation; either version 2 of the License, or * 00022 * (at your option) any later version. * 00023 * * 00024 ***************************************************************************/ 00025 00026 #ifndef PARLEY_H 00027 #define PARLEY_H 00028 00029 #include "parleydocument.h" 00030 00031 // #include "scripts/scriptmanager.h" 00032 #include "scripts/scripting/parley.h" 00033 // #include "scripts/translator.h" 00034 00035 #include <KXmlGuiWindow> 00036 #include <KUrl> 00037 #include <QItemSelection> 00038 #include <QModelIndex> 00039 #include <QList> 00040 00041 #define IDS_DEFAULT I18N_NOOP("Ready.") 00042 00043 class EntryDlg; 00044 00045 class KLineEdit; 00046 class KRecentFilesAction; 00047 class KAction; 00048 class KActionMenu; 00049 class QLabel; 00050 class QDockWidget; 00051 class VocabularyView; 00052 class VocabularyModel; 00053 class VocabularyFilter; 00054 class LessonView; 00055 class WordTypeView; 00056 class LeitnerView; 00057 class LessonModel; 00058 class WordTypeModel; 00059 class LeitnerModel; 00060 class ConjugationWidget; 00061 class SummaryWordWidget; 00062 class ScriptManager; 00063 class Translator; 00064 00071 class ParleyApp : public KXmlGuiWindow 00072 { 00073 Q_OBJECT 00074 00075 public: 00077 explicit ParleyApp(const QString& appName, const KUrl &filename = KUrl()); 00078 00082 void initActions(); 00083 00085 void initStatusBar(); 00087 void initModel(); 00088 00090 void initView(); 00091 00093 void initWelcomeScreen(); 00094 00095 void initDockWidgets(); 00096 00098 void saveOptions(); 00099 00101 void updateTableFilter(); 00102 00106 void initScripts(); 00107 00112 ParleyDocument* parleyDocument(); 00113 00114 public slots: 00116 void slotUpdateWindowCaption(); 00117 00123 void slotLanguageProperties(); 00124 00126 bool queryClose(); 00128 bool queryExit(); 00130 void slotGeneralOptions(); 00131 void slotApplyPreferences(); 00132 00133 void slotCloseDocument(); 00134 00136 void slotDocumentProperties(); 00137 void slotShowStatistics(); 00138 00139 void startPractice(); 00140 void configurePractice(); 00141 00142 void slotConfigShowSearch(); 00143 00147 void slotShowScriptManager(); 00148 00152 void tipOfDay(); 00153 00157 void startupTipOfDay(); 00158 00162 void removeGrades(); 00163 00167 void setShowWelcomeScreen(bool show); 00168 void hideWelcomeScreen(); 00169 00170 private slots: 00171 void slotConfigOldPractice(bool old); 00172 00173 signals: 00174 void signalSetData( const QList<int>& entries, int currentTranslation); 00175 00176 protected: 00177 void closeEvent(QCloseEvent *event); 00178 00179 private: 00180 00184 void updateDocument(); 00185 00186 // KAction pointers to enable/disable actions 00187 KRecentFilesAction* m_recentFilesAction; 00188 KRecentFilesAction* m_downloadedFilesAction; 00189 KAction* m_deleteEntriesAction; 00190 KAction* m_vocabShowSearchBarAction; 00191 KActionMenu* m_vocabularyColumnsActionMenu; 00192 00193 QString lastPixName; 00194 00195 VocabularyModel *m_vocabularyModel; 00196 VocabularyView *m_vocabularyView; 00197 VocabularyFilter *m_vocabularyFilter; 00198 00199 QWidget *m_searchWidget; 00200 00202 ConjugationWidget *m_conjugationWidget; 00203 SummaryWordWidget *m_summaryWordWidget; 00204 00206 ParleyDocument *m_document; 00207 00209 LessonView *m_lessonView; 00210 LessonModel *m_lessonModel; 00211 00212 WordTypeView *m_wordTypeView; 00213 WordTypeModel *m_wordTypeModel; 00214 00215 LeitnerView *m_leitnerView; 00216 LeitnerModel *m_leitnerModel; 00217 00218 KLineEdit *m_searchLine; 00219 00220 EntryDlg *m_entryDlg; 00221 00222 QLabel *m_pronunciationStatusBarLabel; 00223 QLabel *m_remarkStatusBarLabel; 00224 QLabel *m_typeStatusBarLabel; 00225 00226 friend class ParleyDocument; 00227 friend class Scripting::Parley; 00228 friend class ScriptManager; 00229 friend class Translator; 00230 00232 QString m_appName; 00233 00234 //Script Manager 00235 ScriptManager* m_scriptManager; 00236 00238 Translator* m_translator; 00239 00240 QList<QDockWidget*> m_dockWidgets; 00241 QList<bool> m_dockWidgetVisibility; 00242 }; 00243 00244 #endif // PARLEY_H 00245
KDE 4.2 API Reference