00001 /*************************************************************************** 00002 kshowmail.h - description 00003 ------------------- 00004 begin : Sat May 6 12:13:57 MEST 2000 00005 copyright : (C) 2000-2001 by Eggert Ehmke 00006 email : eggert.ehmke@berlin.de 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef KSHOWMAIL_H 00019 #define KSHOWMAIL_H 00020 00021 00022 #ifdef HAVE_CONFIG_H 00023 #include <config.h> 00024 #endif 00025 00026 // include files for KDE 00027 #include <kapplication.h> 00028 #include <kmainwindow.h> 00029 #include <kuniqueapplication.h> 00030 #include <kaction.h> 00031 #include <kstdaction.h> 00032 #include <klocale.h> 00033 #include <kstatusbar.h> 00034 #include <krun.h> 00035 #include <kpassdlg.h> 00036 #include <kdebug.h> 00037 #include <kedittoolbar.h> 00038 #include <kcmultidialog.h> 00039 00040 00041 //include files for KShowMail 00042 #include "configlist.h" 00043 #include "alertdialog.h" 00044 #include "showrecord.h" 00045 #include "showlistviewitem.h" 00046 #include "kshowmaildock.h" 00047 #include "kfeedback.h" 00048 #include "types.h" 00049 #include "kshowmailview.h" 00050 #include "kshowmaildoc.h" 00051 #include "serverdialog.h" 00052 #include "filterdialog.h" 00053 00054 00055 // forward declaration of the Kshowmail classes 00056 class KshowmailDoc; 00057 class KshowmailView; 00058 00059 using namespace Types; 00060 00076 class KShowMailApp : public KMainWindow 00077 { 00078 Q_OBJECT 00079 00080 friend class KshowmailView; 00081 friend class KshowmailDock; 00082 friend class UniqueApp; 00083 00084 00085 private: 00086 00090 KshowmailDoc* m_pDoc; 00091 00095 KshowmailView *m_pView; 00096 00100 KCMultiDialog* SetupDialog; 00101 00105 KAction* m_actionSave; 00106 00110 KAction* m_actionRefresh; 00111 00116 ConfigList m_ConfigList; 00117 00121 AlertDialog* m_pAlertDialog; 00122 00126 KShowMailDock* m_pDockWindow; 00127 00131 QTimer* m_pTimer; 00132 00136 Types::State_Type m_state; 00137 00141 unsigned long m_nSecondsToGo; 00142 00143 00144 public: 00149 KShowMailApp(); 00150 00154 ~KShowMailApp(); 00155 00160 static KAboutData* m_pAbout; 00161 00165 void delayNextRefresh(); 00166 00167 00168 protected: 00172 void readOptions(); 00173 00177 void initStatusBar(); 00178 00182 void initActions(); 00183 00188 void initDocument(); 00189 00193 void initView(); 00194 00202 virtual bool queryClose(); 00203 00211 virtual bool queryExit(); 00212 00219 virtual void timerEvent( QTimerEvent * ); 00220 00225 virtual bool event(QEvent *e); 00226 00231 void initFirstRefresh(); 00232 00236 void stopRefreshTimer(); 00237 00241 void initNextRefresh(); 00242 00243 protected slots: 00244 00252 void slotStatusHelpMsg(const QString &text); 00253 00260 void slotStatusMsg(const QString &text); 00261 00266 void slotConfChanged(); 00267 00272 void slotDelete(); 00273 00281 void slotDeletionReady(); 00282 00287 void slotShowMessage(); 00288 00295 void slotShowMessageReady(); 00296 00303 void slotNormalCursor(); 00304 00311 void slotWaitingCursor(); 00312 00317 void slotRefresh(); 00318 00325 void slotRefreshReady(); 00326 00334 void slotAlertDestroyed(); 00335 00341 void slotAlertOk (); 00342 00346 void slotRefreshView (); 00347 00352 void slotStop (); 00353 00358 void slotShowHeader(); 00359 00364 void slotEditToolbars(); 00365 00369 void slotSaveOptions(); 00370 00376 void slotFileQuit(); 00377 00381 void slotSetupAccount(); 00382 00387 void slotSetup(); 00388 00394 void slotSetupFilters(); 00395 00396 00397 00398 void slotAccountActivated(QListViewItem*); 00399 void slotSendFeedbackMail(); 00400 void slotForceClose(); 00401 00402 00403 00404 00405 private: 00406 00407 bool m_bForceClose; 00408 00409 00410 protected: 00411 void addFeatureList(KFeedbackQuestion * question); 00412 bool askCloseConfirmation(); 00413 00414 }; 00415 00416 #endif // KSHOWMAIL_H