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 #include <qvbox.h> 00014 00015 #include "kmreaderwin.h" //for inline actions 00016 #include "kmkernel.h" // for access to config 00017 #include <kaction.h> 00018 00019 class QVBoxLayout; 00020 class QSplitter; 00021 class QTextCodec; 00022 00023 class KActionMenu; 00024 class KActionCollection; 00025 class KConfig; 00026 class KSelectAction; 00027 class KRadioAction; 00028 class KToggleAction; 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 KMSystemTray; 00043 00044 template <typename T> class QValueList; 00045 template <typename T, typename S> class QMap; 00046 template <typename T> class QGuardedPtr; 00047 00048 namespace KIO { 00049 class Job; 00050 } 00051 00052 namespace KMail { 00053 class Vacation; 00054 class AttachmentStrategy; 00055 class HeaderStrategy; 00056 class HeaderStyle; 00057 class FolderJob; 00058 class HeaderListQuickSearch; 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() const { return mReplyAction; } 00098 KAction *replyAuthorAction() const { return mReplyAuthorAction; } 00099 KAction *replyAllAction() const { return mReplyAllAction; } 00100 KAction *replyListAction() const { return mReplyListAction; } 00101 KActionMenu * replyMenu() const { return mReplyActionMenu; } 00102 KActionMenu *forwardMenu() const { return mForwardActionMenu; } 00103 KAction *forwardAction() const { return mForwardAction; } 00104 KAction *forwardAttachedAction() const { return mForwardAttachedAction; } 00105 KAction *redirectAction() const { return mRedirectAction; } 00106 KAction *bounceAction() const { return mBounceAction; } 00107 KAction *noQuoteReplyAction() const { return mNoQuoteReplyAction; } 00108 KActionMenu *filterMenu() const { return mFilterMenu; } 00109 KAction *printAction() const { return mPrintAction; } 00110 KAction *trashAction() const { return mTrashAction; } 00111 KAction *deleteAction() const { return mDeleteAction; } 00112 KAction *saveAsAction() const { return mSaveAsAction; } 00113 KAction *editAction() const { return mEditAction; } 00114 KAction *sendAgainAction() const { return mSendAgainAction; } 00115 KAction *applyFiltersAction() const { return mSendAgainAction; } 00116 KAction *findInMessageAction() const { return mFindInMessageAction; } 00117 KAction *saveAttachmentsAction() const { return mSaveAttachmentsAction; } 00118 KAction *openAction() const { return mOpenAction; } 00119 00120 KActionMenu *statusMenu() const{ return mStatusMenu; } 00121 KActionMenu *threadStatusMenu() const { return mThreadStatusMenu; } 00122 KActionMenu *moveActionMenu() const{ return mMoveActionMenu; } 00123 KActionMenu *mopyActionMenu() const { return mCopyActionMenu; } 00124 KActionMenu *applyFilterActionsMenu() const { return mApplyFilterActionsMenu; } 00125 00126 KToggleAction *watchThreadAction() const { return mWatchThreadAction; } 00127 KToggleAction *ignoreThreadAction() const { return mIgnoreThreadAction; } 00128 00129 // Forwarded to the reader window. 00130 KToggleAction *toggleFixFontAction() { return mMsgView->toggleFixFontAction(); } 00131 KAction *viewSourceAction() { return mMsgView->viewSourceAction(); } 00132 00133 KMHeaders *headers() const { return mHeaders; } 00134 void toggleSystemTray(); 00135 00136 void updateListFilterAction(); 00137 00139 static QPtrList<KMMainWidget>* mainWidgetList() { return s_mainWidgetList; } 00140 00141 KMSystemTray *systray() const; 00142 00143 public slots: 00144 void slotMoveMsgToFolder( KMFolder *dest); 00145 void slotTrashMsg(); // move to trash 00146 00147 virtual void show(); 00148 virtual void hide(); 00150 void slotCheckMail(); 00151 00156 void folderSelected( KMFolder*, bool forceJumpToUnread = false ); 00157 00159 void folderSelected(); 00160 00162 void folderSelectedUnread( KMFolder* ); 00163 00164 void slotMsgSelected(KMMessage*); 00165 void slotMsgChanged(); 00166 00168 void slotSelectFolder(KMFolder*); 00169 void slotSelectMessage(KMMessage*); 00170 00171 void slotReplaceMsgByUnencryptedVersion(); 00172 00174 void updateMessageMenu(); 00176 void startUpdateMessageActionsTimer(); 00178 void updateMessageActions(); 00179 00181 void slotSubscriptionDialog(); 00182 00184 void slotFolderTreeColumnsChanged(); 00185 00186 signals: 00187 void messagesTransfered( bool ); 00188 void captionChangeRequest( const QString & caption ); 00189 void modifiedToolBarConfig( void ); 00190 00191 protected: 00192 void setupActions(); 00193 void createWidgets(); 00194 void activatePanners(); 00195 void showMsg(KMReaderWin *win, KMMessage *msg); 00196 void updateFileMenu(); 00197 void updateViewMenu(); 00198 00199 KActionCollection * actionCollection() { return mActionCollection; } 00200 00201 KRadioAction * actionForHeaderStyle( const KMail::HeaderStyle *, 00202 const KMail::HeaderStrategy * ); 00203 KRadioAction * actionForAttachmentStrategy( const KMail::AttachmentStrategy * ); 00204 00208 KConfig * config(); 00209 00210 protected slots: 00211 void slotCheckOneAccount(int); 00212 void slotMailChecked( bool newMail, bool sendOnCheck, 00213 const QMap<QString, int> & newInFolder ); 00214 void getAccountMenu(); 00215 void slotHelp(); 00216 void slotNewMailReader(); 00217 void slotFilter(); 00218 void slotPopFilter(); 00219 void slotAddrBook(); 00220 void slotImport(); 00221 void slotViewChange(); 00222 void slotAddFolder(); 00223 void slotCompose(); 00224 void slotPostToML(); 00225 void slotModifyFolder(); 00226 void slotExpireFolder(); 00227 void slotExpireAll(); 00228 void slotInvalidateIMAPFolders(); 00229 void slotMarkAllAsRead(); 00230 void slotRemoveFolder(); 00231 void slotEmptyFolder(); 00232 void slotCompactFolder(); 00233 void slotRefreshFolder(); 00234 void slotCompactAll(); 00235 void slotOverrideHtml(); 00236 void slotOverrideThread(); 00237 void slotToggleSubjectThreading(); 00238 void slotMessageQueuedOrDrafted(); 00239 void slotEditMsg(); 00240 //void slotTrashMsg(); // move to trash 00241 void slotDeleteMsg( bool confirmDelete = true ); // completely delete message 00242 void slotUndo(); 00243 void slotReadOn(); 00244 void slotSaveMsg(); 00245 void slotOpenMsg(); 00246 void slotSaveAttachments(); 00247 void slotMoveMsg(); 00248 //void slotMoveMsgToFolder( KMFolder *dest); 00249 void slotCopyMsgToFolder( KMFolder *dest); 00250 void slotCopyMsg(); 00251 void slotResendMsg(); 00252 void slotEditVacation(); 00253 void slotStartCertManager(); 00254 void slotStartWatchGnuPG(); 00255 void slotApplyFilters(); 00256 void slotExpandThread(); 00257 void slotExpandAllThreads(); 00258 void slotCollapseThread(); 00259 void slotCollapseAllThreads(); 00260 void slotSetMsgStatusNew(); 00261 void slotSetMsgStatusUnread(); 00262 void slotSetMsgStatusRead(); 00263 void slotSetMsgStatusReplied(); 00264 void slotSetMsgStatusForwarded(); 00265 void slotSetMsgStatusQueued(); 00266 void slotSetMsgStatusSent(); 00267 void slotSetMsgStatusFlag(); 00268 void slotSetMsgStatusSpam(); 00269 void slotSetMsgStatusHam(); 00270 void slotSetThreadStatusNew(); 00271 void slotSetThreadStatusUnread(); 00272 void slotSetThreadStatusRead(); 00273 void slotSetThreadStatusReplied(); 00274 void slotSetThreadStatusForwarded(); 00275 void slotSetThreadStatusQueued(); 00276 void slotSetThreadStatusSent(); 00277 void slotSetThreadStatusFlag(); 00278 void slotSetThreadStatusSpam(); 00279 void slotSetThreadStatusHam(); 00280 void slotSetThreadStatusWatched(); 00281 void slotSetThreadStatusIgnored(); 00282 void slotToggleUnread(); 00283 void slotToggleTotalColumn(); 00284 void slotBriefHeaders(); 00285 void slotFancyHeaders(); 00286 void slotStandardHeaders(); 00287 void slotLongHeaders(); 00288 void slotAllHeaders(); 00289 void slotIconicAttachments(); 00290 void slotSmartAttachments(); 00291 void slotInlineAttachments(); 00292 void slotHideAttachments(); 00293 void slotCycleHeaderStyles(); 00294 void slotCycleAttachmentStrategy(); 00295 void slotSetEncoding(); 00296 void slotSendQueued(); 00297 void slotMsgPopup(KMMessage &msg, const KURL &aUrl, const QPoint&); 00298 void slotMarkAll(); 00299 void slotMemInfo(); 00300 void slotSearch(); 00301 void slotSearchClosed(); 00302 void slotFind(); 00303 void slotIntro(); 00304 void slotShowStartupFolder(); 00306 void slotShowTipOnStart(); 00308 void slotShowTip(); 00309 void slotAntiSpamWizard(); 00310 void slotAntiVirusWizard(); 00311 void slotFilterLogViewer(); 00312 00314 void slotNextMessage(); 00315 void slotNextUnreadMessage(); 00316 void slotNextImportantMessage(); 00317 void slotNextUnreadFolder(); 00318 void slotPrevMessage(); 00319 void slotPrevUnreadMessage(); 00320 void slotPrevImportantMessage(); 00321 void slotPrevUnreadFolder(); 00322 00324 void slotMsgActivated(KMMessage*); 00325 00327 void slotUpdateUndo(); 00328 00330 virtual void moveSelectedToFolder( int menuId ); 00332 virtual void copySelectedToFolder( int menuId ); 00334 virtual void updateFolderMenu(); 00337 void updateMarkAsReadAction(); 00338 00340 void slotToggleShowQuickSearch(); 00341 00343 void slotEditNotifications(); 00344 void slotEditKeys(); 00345 00347 void slotChangeCaption(QListViewItem*); 00348 void removeDuplicates(); 00350 void initializeFilterActions(); 00352 void plugFilterActions(QPopupMenu*); 00353 00355 void slotReplyToMsg(); 00356 void slotReplyAuthorToMsg(); 00357 void slotReplyListToMsg(); 00358 void slotReplyAllToMsg(); 00359 void slotForwardMsg(); 00360 void slotForwardAttachedMsg(); 00361 void slotRedirectMsg(); 00362 void slotBounceMsg(); 00363 void slotNoQuoteReplyToMsg(); 00364 void slotSubjectFilter(); 00365 void slotMailingListFilter(); 00366 void slotFromFilter(); 00367 void slotToFilter(); 00368 void slotPrintMsg(); 00369 00370 void slotConfigChanged(); 00371 00372 private: 00373 // Message actions 00374 KAction *mTrashAction, *mDeleteAction, *mSaveAsAction, *mEditAction, 00375 *mSendAgainAction, *mApplyFiltersAction, *mFindInMessageAction, 00376 *mSaveAttachmentsAction, *mOpenAction; 00377 // Composition actions 00378 KAction *mPrintAction, *mReplyAction, *mReplyAllAction, *mReplyAuthorAction, 00379 *mReplyListAction, 00380 *mForwardAction, *mForwardAttachedAction, *mRedirectAction, 00381 *mBounceAction, *mNoQuoteReplyAction; 00382 KActionMenu *mReplyActionMenu; 00383 KActionMenu *mForwardActionMenu; 00384 // Filter actions 00385 KActionMenu *mFilterMenu; 00386 KAction *mSubjectFilterAction, *mFromFilterAction, *mToFilterAction, 00387 *mListFilterAction; 00388 00389 KActionMenu *mStatusMenu, *mThreadStatusMenu, 00390 *mMoveActionMenu, *mCopyActionMenu, *mApplyFilterActionsMenu; 00391 KAction *mMarkThreadAsNewAction; 00392 KAction *mMarkThreadAsReadAction; 00393 KAction *mMarkThreadAsUnreadAction; 00394 KToggleAction *mToggleThreadRepliedAction; 00395 KToggleAction *mToggleThreadForwardedAction; 00396 KToggleAction *mToggleThreadQueuedAction; 00397 KToggleAction *mToggleThreadSentAction; 00398 KToggleAction *mToggleThreadFlagAction; 00399 KAction *mMarkThreadAsSpamAction; 00400 KAction *mMarkThreadAsHamAction; 00401 KToggleAction *mToggleRepliedAction; 00402 KToggleAction *mToggleForwardedAction; 00403 KToggleAction *mToggleQueuedAction; 00404 KToggleAction *mToggleSentAction; 00405 KToggleAction *mToggleFlagAction; 00406 KAction *mMarkAsSpamAction; 00407 KAction *mMarkAsHamAction; 00408 00409 KToggleAction *mWatchThreadAction, *mIgnoreThreadAction; 00410 00412 KRadioAction* mUnreadColumnToggle; 00413 KRadioAction* mUnreadTextToggle; 00414 KToggleAction* mTotalColumnToggle; 00415 00416 KToggleAction *mToggleShowQuickSearchAction; 00417 private: 00418 KMFolderTree *mFolderTree; 00419 KMReaderWin *mMsgView; 00420 QSplitter *mPanner1, *mPanner2; 00421 KMHeaders *mHeaders; 00422 QVBox *mSearchAndHeaders; 00423 KToolBar *mSearchToolBar; 00424 KMail::HeaderListQuickSearch *mQuickSearchLine; 00425 KMFolder *mFolder; 00426 const QTextCodec *mCodec; 00427 QPopupMenu *mViewMenu, *mBodyPartsMenu; 00428 KSelectAction *mEncoding; 00429 KAction *mlistFilterAction; 00430 QCString mEncodingStr; 00431 bool mIntegrated; 00432 bool mBeepOnNew; 00433 bool mConfirmEmpty; 00434 QString mStartupFolder; 00435 int mMessageStatusId; 00436 QValueList<int> mPanner1Sep, mPanner2Sep; 00437 KURL mUrlCurrent; 00438 QPopupMenu *mActMenu; 00439 QPopupMenu *mFileMenu; 00440 00441 bool mLongFolderList; 00442 00443 bool mStartupDone; 00444 KMMenuToFolder mMenuToFolder; 00445 int copyId, moveId, htmlId, threadId; 00446 bool mHtmlPref, mThreadPref, mFolderHtmlPref, mFolderThreadPref, 00447 mFolderThreadSubjPref, mReaderWindowActive, mReaderWindowBelow; 00448 00449 // QPopupMenu *mMessageMenu; 00450 KMFldSearch *mSearchWin; 00451 00452 KAction *mModifyFolderAction, *mRemoveFolderAction, *mExpireFolderAction, 00453 *mCompactFolderAction, *mRefreshFolderAction, *mEmptyFolderAction, 00454 *mMarkAllAsReadAction; 00455 KToggleAction *mPreferHtmlAction, *mThreadMessagesAction; 00456 KToggleAction *mThreadBySubjectAction; 00457 KToggleAction *mFolderAction, *mHeaderAction, *mMimeAction; 00458 00459 QTimer *menutimer; 00460 00461 QGuardedPtr<KMail::Vacation> mVacation; 00462 KActionCollection *mActionCollection; 00463 QVBoxLayout *mTopLayout; 00464 bool mDestructed, mForceJumpToUnread; 00465 QPtrList<KAction> mFilterActions; 00466 QPtrList<KMMetaFilterActionCommand> mFilterCommands; 00467 QGuardedPtr <KMail::FolderJob> mJob; 00468 00469 KMSystemTray *mSystemTray; 00470 KConfig *mConfig; 00471 00472 static QPtrList<KMMainWidget>* s_mainWidgetList; 00473 }; 00474 00475 #endif 00476
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:52:45 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003