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