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 "filterlog.h" 00053 #include "filterlogview.h" 00054 00055 00056 // forward declaration of the Kshowmail classes 00057 class KshowmailDoc; 00058 class KshowmailView; 00059 00060 using namespace Types; 00061 00077 class KShowMailApp : public KMainWindow 00078 { 00079 Q_OBJECT 00080 00081 friend class KshowmailView; 00082 friend class KshowmailDock; 00083 friend class UniqueApp; 00084 00085 00086 private: 00087 00091 KshowmailDoc* m_pDoc; 00092 00096 KshowmailView *m_pView; 00097 00101 KCMultiDialog* SetupDialog; 00102 00106 KAction* m_actionRefresh; 00107 00112 ConfigList m_ConfigList; 00113 00117 AlertDialog* m_pAlertDialog; 00118 00122 KShowMailDock* m_pDockWindow; 00123 00127 QTimer* m_pTimer; 00128 00132 Types::State_Type m_state; 00133 00137 unsigned long m_nSecondsToGo; 00138 00142 FilterLog fLog; 00143 00144 00145 public: 00150 KShowMailApp(); 00151 00155 ~KShowMailApp(); 00156 00161 static KAboutData* m_pAbout; 00162 00166 void delayNextRefresh(); 00167 00168 00169 protected: 00170 00174 void initStatusBar(); 00175 00179 void initActions(); 00180 00185 void initDocument(); 00186 00190 void initView(); 00191 00199 virtual bool queryClose(); 00200 00208 virtual bool queryExit(); 00209 00216 virtual void timerEvent( QTimerEvent * ); 00217 00222 virtual bool event(QEvent *e); 00223 00228 void initFirstRefresh(); 00229 00233 void stopRefreshTimer(); 00234 00238 void initNextRefresh(); 00239 00240 protected slots: 00241 00249 void slotStatusHelpMsg(const QString &text); 00250 00257 void slotStatusMsg(const QString &text); 00258 00263 void slotConfChanged(); 00264 00269 void slotDelete(); 00270 00278 void slotDeletionReady(); 00279 00284 void slotShowMessage(); 00285 00292 void slotShowMessageReady(); 00293 00300 void slotNormalCursor(); 00301 00308 void slotWaitingCursor(); 00309 00314 void slotRefresh(); 00315 00322 void slotRefreshReady(); 00323 00331 void slotAlertDestroyed(); 00332 00338 void slotAlertOk (); 00339 00343 void slotRefreshView (); 00344 00349 void slotStop (); 00350 00355 void slotShowHeader(); 00356 00361 void slotEditToolbars(); 00362 00366 void slotSaveOptions(); 00367 00373 void slotFileQuit(); 00374 00378 void slotSetupAccount(); 00379 00384 void slotSetup(); 00385 00389 void slotShowFilterLog(); 00390 00391 void slotAccountActivated(QListViewItem*); 00392 void slotSendFeedbackMail(); 00393 void slotForceClose(); 00394 00395 00396 00397 00398 private: 00399 00400 bool m_bForceClose; 00401 00402 00403 protected: 00404 void addFeatureList(KFeedbackQuestion * question); 00405 bool askCloseConfirmation(); 00406 00407 }; 00408 00409 #endif // KSHOWMAIL_H