kmail Library API Documentation

kmmainwidget.h

00001 /* -*- mode: C++; c-file-style: "gnu" -*- 00002 * kmail main window 00003 * Copyright 2002 Don Sanders <sanders@kde.org> 00004 * Based on the work of Stefan Taferner <taferner@kde.org> 00005 * 00006 * License GPL 00007 */ 00008 #ifndef __KMMAINWIDGET 00009 #define __KMMAINWIDGET 00010 00011 #include <kurl.h> 00012 #include <qlistview.h> 00013 00014 #include "kmreaderwin.h" //for inline actions 00015 #include "kmkernel.h" // for access to config 00016 #include <kaction.h> 00017 00018 class QVBoxLayout; 00019 class QSplitter; 00020 class QTextCodec; 00021 00022 class KActionMenu; 00023 class KActionCollection; 00024 class KConfig; 00025 class KSelectAction; 00026 class KRadioAction; 00027 class KToggleAction; 00028 class KProgressDialog; 00029 class KMenuBar; 00030 00031 class KMFolder; 00032 class KMFolderDir; 00033 class KMFolderTree; 00034 class KMFolderTreeItem; 00035 class KMHeaders; 00036 class KMCommand; 00037 class KMMetaFilterActionCommand; 00038 class KMMessage; 00039 class KMFolder; 00040 class KMAccount; 00041 class KMFldSearch; 00042 class KMLittleProgressDlg; 00043 class KMSystemTray; 00044 00045 template <typename T> class QValueList; 00046 template <typename T, typename S> class QMap; 00047 template <typename T> class QGuardedPtr; 00048 00049 namespace KIO { 00050 class Job; 00051 } 00052 00053 namespace KMail { 00054 class Vacation; 00055 class AttachmentStrategy; 00056 class HeaderStrategy; 00057 class HeaderStyle; 00058 class FolderJob; 00059 } 00060 00061 typedef QMap<int,KMFolder*> KMMenuToFolder; 00062 00063 00064 class KMMainWidget : public QWidget 00065 { 00066 Q_OBJECT 00067 00068 public: 00069 KMMainWidget(QWidget *parent, const char *name, 00070 KActionCollection *actionCollection, 00071 KConfig*config = KMKernel::config() ); 00072 virtual ~KMMainWidget(); 00073 void destruct(); 00074 00076 virtual void readPreConfig(void); 00077 00079 virtual void readFolderConfig(void); 00080 00082 virtual void writeFolderConfig(void); 00083 00085 virtual void readConfig(void); 00086 00088 virtual void writeConfig(void); 00089 00091 KMReaderWin* messageView(void) const { return mMsgView; } 00092 KMFolderTree* folderTree(void) const { return mFolderTree; } 00093 00094 static void cleanup(); 00095 00096 KAction *action( const char *name ) { return mActionCollection->action( name ); } 00097 KAction *replyAction() { return mReplyAction; } 00098 KAction *replyAuthorAction() { return mReplyAuthorAction; } 00099 KAction *replyAllAction() { return mReplyAllAction; } 00100 KAction *replyListAction() { return mReplyListAction; } 00101 KActionMenu *forwardMenu() { return mForwardActionMenu; } 00102 KAction *forwardAction() { return mForwardAction; } 00103 KAction *forwardAttachedAction() { return mForwardAttachedAction; } 00104 KAction *redirectAction() { return mRedirectAction; } 00105 KAction *bounceAction() { return mBounceAction; } 00106 KAction *noQuoteReplyAction() { return mNoQuoteReplyAction; } 00107 KActionMenu *filterMenu() { return mFilterMenu; } 00108 KAction *printAction() { return mPrintAction; } 00109 KAction *trashAction() { return mTrashAction; } 00110 KAction *deleteAction() { return mDeleteAction; } 00111 KAction *saveAsAction() { return mSaveAsAction; } 00112 KAction *editAction() { return mEditAction; } 00113 KAction *sendAgainAction() { return mSendAgainAction; } 00114 KAction *applyFiltersAction() { return mSendAgainAction; } 00115 KAction *findInMessageAction() { return mFindInMessageAction; } 00116 KAction *saveAttachmentsAction() { return mSaveAttachmentsAction; } 00117 00118 KActionMenu *statusMenu() { return mStatusMenu; } 00119 KActionMenu *threadStatusMenu() { return mThreadStatusMenu; } 00120 KActionMenu *moveActionMenu() { return mMoveActionMenu; } 00121 KActionMenu *mopyActionMenu() { return mCopyActionMenu; } 00122 KActionMenu *applyFilterActionsMenu() { return mApplyFilterActionsMenu; } 00123 00124 KToggleAction *watchThreadAction() { return mWatchThreadAction; } 00125 KToggleAction *ignoreThreadAction() { return mIgnoreThreadAction; } 00126 00127 // Forwarded to the reader window. 00128 KToggleAction *toggleFixFontAction() { return mMsgView->toggleFixFontAction(); } 00129 KAction *viewSourceAction() { return mMsgView->viewSourceAction(); } 00130 00131 void folderSelected(KMFolder*, bool jumpToUnread); 00132 KMHeaders *headers() const { return mHeaders; } 00133 KMLittleProgressDlg* progressDialog() const; 00134 00135 void toggleSystray(bool enabled, int mode); 00136 00137 void updateListFilterAction(); 00138 00139 public slots: 00140 void slotMoveMsgToFolder( KMFolder *dest); 00141 void slotTrashMsg(); // move to trash 00142 00143 virtual void show(); 00144 virtual void hide(); 00146 void slotCheckMail(); 00147 00149 void folderSelected(KMFolder*); 00150 void folderSelectedUnread( KMFolder* ); 00151 00152 void slotMsgSelected(KMMessage*); 00153 void slotMsgChanged(); 00154 00156 void slotSelectFolder(KMFolder*); 00157 void slotSelectMessage(KMMessage*); 00158 00159 void slotReplaceMsgByUnencryptedVersion(); 00160 00162 void updateMessageMenu(); 00164 void startUpdateMessageActionsTimer(); 00166 void updateMessageActions(); 00167 void statusMsg(const QString&); 00168 00170 void slotSubscriptionDialog(); 00171 00173 void slotFolderTreeColumnsChanged(); 00174 00175 signals: 00176 void messagesTransfered(bool); 00177 void captionChangeRequest( const QString & caption ); 00178 00179 protected: 00180 void setupActions(); 00181 void setupStatusBar(); 00182 void createWidgets(); 00183 void activatePanners(); 00184 void showMsg(KMReaderWin *win, KMMessage *msg); 00185 00186 KActionCollection * actionCollection() { return mActionCollection; } 00187 00188 KRadioAction * actionForHeaderStyle( const KMail::HeaderStyle *, 00189 const KMail::HeaderStrategy * ); 00190 KRadioAction * actionForAttachmentStrategy( const KMail::AttachmentStrategy * ); 00191 00195 KConfig * config(); 00196 00197 protected slots: 00198 void slotCheckOneAccount(int); 00199 void slotMailChecked(bool newMail, bool sendOnCheck); 00200 void getAccountMenu(); 00201 void slotHelp(); 00202 void slotNewMailReader(); 00203 void slotFilter(); 00204 void slotPopFilter(); 00205 void slotAddrBook(); 00206 void slotImport(); 00207 void slotViewChange(); 00208 void slotAddFolder(); 00209 void slotCompose(); 00210 void slotPostToML(); 00211 void slotModifyFolder(); 00212 void slotExpireFolder(); 00213 void slotExpireAll(); 00214 void slotInvalidateIMAPFolders(); 00215 void slotMarkAllAsRead(); 00216 void slotRemoveFolder(); 00217 void slotEmptyFolder(); 00218 void slotCompactFolder(); 00219 void slotRefreshFolder(); 00220 void slotCompactAll(); 00221 void slotOverrideHtml(); 00222 void slotOverrideThread(); 00223 void slotToggleSubjectThreading(); 00224 void slotMessageQueuedOrDrafted(); 00225 void slotEditMsg(); 00226 //void slotTrashMsg(); // move to trash 00227 void slotDeleteMsg(); // completely delete message 00228 void slotUndo(); 00229 void slotReadOn(); 00230 void slotSaveMsg(); 00231 void slotSaveAttachments(); 00232 void slotMoveMsg(); 00233 //void slotMoveMsgToFolder( KMFolder *dest); 00234 void slotCopyMsgToFolder( KMFolder *dest); 00235 void slotCopyMsg(); 00236 void slotResendMsg(); 00237 void slotEditVacation(); 00238 void slotApplyFilters(); 00239 void slotExpandThread(); 00240 void slotExpandAllThreads(); 00241 void slotCollapseThread(); 00242 void slotCollapseAllThreads(); 00243 void slotSetMsgStatusNew(); 00244 void slotSetMsgStatusUnread(); 00245 void slotSetMsgStatusRead(); 00246 void slotSetMsgStatusReplied(); 00247 void slotSetMsgStatusForwarded(); 00248 void slotSetMsgStatusQueued(); 00249 void slotSetMsgStatusSent(); 00250 void slotSetMsgStatusFlag(); 00251 void slotSetMsgStatusSpam(); 00252 void slotSetMsgStatusHam(); 00253 void slotSetThreadStatusNew(); 00254 void slotSetThreadStatusUnread(); 00255 void slotSetThreadStatusRead(); 00256 void slotSetThreadStatusReplied(); 00257 void slotSetThreadStatusForwarded(); 00258 void slotSetThreadStatusQueued(); 00259 void slotSetThreadStatusSent(); 00260 void slotSetThreadStatusFlag(); 00261 void slotSetThreadStatusSpam(); 00262 void slotSetThreadStatusHam(); 00263 void slotSetThreadStatusWatched(); 00264 void slotSetThreadStatusIgnored(); 00265 void slotToggleUnread(); 00266 void slotToggleTotalColumn(); 00267 void slotBriefHeaders(); 00268 void slotFancyHeaders(); 00269 void slotStandardHeaders(); 00270 void slotLongHeaders(); 00271 void slotAllHeaders(); 00272 void slotIconicAttachments(); 00273 void slotSmartAttachments(); 00274 void slotInlineAttachments(); 00275 void slotHideAttachments(); 00276 void slotCycleHeaderStyles(); 00277 void slotCycleAttachmentStrategy(); 00278 void slotSetEncoding(); 00279 void slotSendQueued(); 00280 void slotMsgPopup(KMMessage &msg, const KURL &aUrl, const QPoint&); 00281 void slotMarkAll(); 00282 void slotMemInfo(); 00283 void slotSearch(); 00284 void slotSearchClosed(); 00285 void slotFind(); 00286 void slotUpdateImapMessage(KMMessage *msg); 00287 void slotIntro(); 00288 void slotShowStartupFolder(); 00290 void slotShowTipOnStart(); 00292 void slotShowTip(); 00293 00295 void slotNextMessage(); 00296 void slotNextUnreadMessage(); 00297 void slotNextImportantMessage(); 00298 void slotNextUnreadFolder(); 00299 void slotPrevMessage(); 00300 void slotPrevUnreadMessage(); 00301 void slotPrevImportantMessage(); 00302 void slotPrevUnreadFolder(); 00303 00305 void slotMsgActivated(KMMessage*); 00306 00308 void slotUpdateUndo(); 00309 00311 virtual void moveSelectedToFolder( int menuId ); 00313 virtual void copySelectedToFolder( int menuId ); 00315 virtual void updateFolderMenu(); 00318 void updateMarkAsReadAction(); 00319 00320 00322 void slotEditNotifications(); 00323 void slotEditKeys(); 00324 00326 void slotChangeCaption(QListViewItem*); 00327 void removeDuplicates(); 00329 void initializeFilterActions(); 00331 void plugFilterActions(QPopupMenu*); 00332 00334 void slotReplyToMsg(); 00335 void slotReplyAuthorToMsg(); 00336 void slotReplyListToMsg(); 00337 void slotReplyAllToMsg(); 00338 void slotForwardMsg(); 00339 void slotForwardAttachedMsg(); 00340 void slotRedirectMsg(); 00341 void slotBounceMsg(); 00342 void slotNoQuoteReplyToMsg(); 00343 void slotSubjectFilter(); 00344 void slotMailingListFilter(); 00345 void slotFromFilter(); 00346 void slotToFilter(); 00347 void slotPrintMsg(); 00348 00349 void slotConfigChanged(); 00350 00351 private: 00352 // Message actions 00353 KAction *mTrashAction, *mDeleteAction, *mSaveAsAction, *mEditAction, 00354 *mSendAgainAction, *mApplyFiltersAction, *mFindInMessageAction, 00355 *mSaveAttachmentsAction; 00356 // Composition actions 00357 KAction *mPrintAction, *mReplyAction, *mReplyAllAction, *mReplyAuthorAction, 00358 *mReplyListAction, 00359 *mForwardAction, *mForwardAttachedAction, *mRedirectAction, 00360 *mBounceAction, *mNoQuoteReplyAction; 00361 KActionMenu *mReplyActionMenu; 00362 KActionMenu *mForwardActionMenu; 00363 // Filter actions 00364 KActionMenu *mFilterMenu; 00365 KAction *mSubjectFilterAction, *mFromFilterAction, *mToFilterAction, 00366 *mListFilterAction; 00367 00368 KActionMenu *mStatusMenu, *mThreadStatusMenu, 00369 *mMoveActionMenu, *mCopyActionMenu, *mApplyFilterActionsMenu; 00370 KAction *mMarkThreadAsNewAction; 00371 KAction *mMarkThreadAsReadAction; 00372 KAction *mMarkThreadAsUnreadAction; 00373 KToggleAction *mToggleThreadRepliedAction; 00374 KToggleAction *mToggleThreadForwardedAction; 00375 KToggleAction *mToggleThreadQueuedAction; 00376 KToggleAction *mToggleThreadSentAction; 00377 KToggleAction *mToggleThreadFlagAction; 00378 KAction *mMarkThreadAsSpamAction; 00379 KAction *mMarkThreadAsHamAction; 00380 KToggleAction *mToggleRepliedAction; 00381 KToggleAction *mToggleForwardedAction; 00382 KToggleAction *mToggleQueuedAction; 00383 KToggleAction *mToggleSentAction; 00384 KToggleAction *mToggleFlagAction; 00385 KAction *mMarkAsSpamAction; 00386 KAction *mMarkAsHamAction; 00387 00388 KToggleAction *mWatchThreadAction, *mIgnoreThreadAction; 00389 00391 KRadioAction* mUnreadColumnToggle; 00392 KRadioAction* mUnreadTextToggle; 00393 KToggleAction* mTotalColumnToggle; 00394 00395 private: 00396 KMFolderTree *mFolderTree; 00397 KMReaderWin *mMsgView; 00398 QSplitter *mPanner1, *mPanner2; 00399 KMHeaders *mHeaders; 00400 KMFolder *mFolder; 00401 const QTextCodec *mCodec; 00402 QPopupMenu *mViewMenu, *mBodyPartsMenu; 00403 KSelectAction *mEncoding; 00404 KAction *mlistFilterAction; 00405 QCString mEncodingStr; 00406 bool mIntegrated; 00407 bool mSendOnCheck; 00408 bool mBeepOnNew, mSystemTrayOnNew; 00409 int mSystemTrayMode; 00410 bool mConfirmEmpty; 00411 QString mStartupFolder; 00412 int mMessageStatusId; 00413 QValueList<int> mPanner1Sep, mPanner2Sep; 00414 KMMessage *mMsgCurrent; 00415 KURL mUrlCurrent; 00416 QPopupMenu *mActMenu; 00417 QPopupMenu *mFileMenu; 00418 00419 bool mLongFolderList; 00420 00421 bool mStartupDone; 00422 KMMenuToFolder mMenuToFolder; 00423 int copyId, moveId, htmlId, threadId; 00424 bool mHtmlPref, mThreadPref, mFolderHtmlPref, mFolderThreadPref, 00425 mFolderThreadSubjPref, mReaderWindowActive, mReaderWindowBelow; 00426 00427 // QPopupMenu *mMessageMenu; 00428 KMFldSearch *mSearchWin; 00429 00430 KAction *mModifyFolderAction, *mRemoveFolderAction, *mExpireFolderAction, 00431 *mCompactFolderAction, *mRefreshFolderAction, *mEmptyFolderAction, 00432 *mMarkAllAsReadAction; 00433 KToggleAction *mPreferHtmlAction, *mThreadMessagesAction; 00434 KToggleAction *mThreadBySubjectAction; 00435 KToggleAction *mFolderAction, *mHeaderAction, *mMimeAction; 00436 00437 QTimer *menutimer; 00438 00439 // ProgressDialog for transferring messages 00440 KProgressDialog* mProgressDialog; 00441 int mCountJobs, mCountMsgs; 00442 00443 KMLittleProgressDlg *mLittleProgress; 00444 00445 QPtrList<KMMessage> mSelectedMsgs; 00446 QGuardedPtr<KMail::Vacation> mVacation; 00447 KActionCollection *mActionCollection; 00448 QVBoxLayout *mTopLayout; 00449 bool mDestructed; 00450 QPtrList<KAction> mFilterActions; 00451 QPtrList<KMMetaFilterActionCommand> mFilterCommands; 00452 QGuardedPtr <KMail::FolderJob> mJob; 00453 00454 KMSystemTray *mSystemTray; 00455 KConfig *mConfig; 00456 00457 }; 00458 00459 #endif 00460
KDE Logo
This file is part of the documentation for kmail Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Jul 28 23:58:03 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003