You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
249 lines
7.0 KiB
249 lines
7.0 KiB
/* kmail main window |
|
* Maintained by Stefan Taferner <taferner@kde.org> |
|
* This code is under the GPL |
|
*/ |
|
#ifndef __KMMAINWIN |
|
#define __KMMAINWIN |
|
|
|
#include "kmtopwidget.h" |
|
#include <qvaluelist.h> |
|
#include <qtextcodec.h> |
|
#include <qmap.h> |
|
#include <kurl.h> |
|
|
|
class ConfigureDialog; |
|
class KMFolder; |
|
class KMFolderDir; |
|
class KMFolderTree; |
|
class KMFolderTreeItem; |
|
class KMHeaders; |
|
class KMReaderWin; |
|
class QSplitter; |
|
class KMenuBar; |
|
class KToolBar; |
|
class KStatusBar; |
|
class KMMessage; |
|
class KMFolder; |
|
class KMAccount; |
|
class KMLittleProgressDlg; |
|
class KMFldSearch; |
|
class KToggleAction; |
|
class KActionMenu; |
|
class KSelectAction; |
|
|
|
#define KMMainWinInherited KMTopLevelWidget |
|
typedef QMap<int,KMFolder*> KMMenuToFolder; |
|
|
|
class KMMainWin : public KMTopLevelWidget |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
KMMainWin(QWidget *parent = 0, char *name = 0); |
|
virtual ~KMMainWin(); |
|
|
|
/** Read configuration options before widgets are created. */ |
|
virtual void readPreConfig(void); |
|
|
|
/** Read configuration for current folder. */ |
|
virtual void readFolderConfig(void); |
|
|
|
/** Write configuration for current folder. */ |
|
virtual void writeFolderConfig(void); |
|
|
|
/** Read configuration options after widgets are created. */ |
|
virtual void readConfig(void); |
|
|
|
/** Write configuration options. */ |
|
virtual void writeConfig(void); |
|
|
|
/** Easy access to main components of the window. */ |
|
KMReaderWin* messageView(void) const { return mMsgView; } |
|
KStatusBar* statusBar(void) const { return mStatusBar; } |
|
KMFolderTree* folderTree(void) const { return mFolderTree; } |
|
|
|
// Returns a popupmenu containing a hierarchy of folder names |
|
// starting at the given (aFolderDir) folder directory |
|
// Each item in the popupmenu is connected to a slot, if |
|
// move is TRUE this slot will cause all selected messages to |
|
// be moved into the given folder, otherwise messages will be |
|
// copied. |
|
// Am empty KMMenuToFolder must be passed in. |
|
virtual QPopupMenu* folderToPopupMenu(KMFolderTreeItem* fti, |
|
bool move, |
|
QObject *receiver, |
|
KMMenuToFolder *aMenuToFolder, |
|
QPopupMenu *menu); |
|
|
|
static void cleanup(); |
|
KAction *replyAction, *noQuoteReplyAction, *replyAllAction, *replyListAction, |
|
*forwardAction, *redirectAction, |
|
*deleteAction, *saveAsAction, *bounceAction, *editAction, |
|
*printAction, *sendAgainAction; |
|
KActionMenu *filterMenu, *statusMenu, *moveActionMenu, *copyActionMenu; |
|
|
|
void folderSelected(KMFolder*, bool jumpToUnread); |
|
|
|
public slots: |
|
virtual void show(); |
|
virtual void hide(); |
|
void slotCheckMail(); // sven moved here as public |
|
void slotAtmMsg(KMMessage *msg); //sven: called from reader |
|
|
|
/** Output given message in the statusbar message field. */ |
|
void statusMsg(const QString& text); |
|
void folderSelected(KMFolder*); |
|
void folderSelectedUnread( KMFolder* ); |
|
|
|
void slotMsgSelected(KMMessage*); |
|
|
|
/** Change the current folder, select a message in the current folder */ |
|
void slotSelectFolder(KMFolder*); |
|
void slotSelectMessage(KMMessage*); |
|
|
|
// Update the "Move to" and "Copy to" popoutmenus in the Messages menu. |
|
virtual void updateMessageMenu(); |
|
|
|
protected: |
|
void setupMenuBar(); |
|
void setupStatusBar(); |
|
void createWidgets(); |
|
void activatePanners(); void showMsg(KMReaderWin *win, KMMessage *msg); |
|
|
|
protected slots: |
|
void slotCheckOneAccount(int); |
|
void slotMailChecked(bool newMail); |
|
void getAccountMenu(); |
|
void slotClose(); |
|
void slotHelp(); |
|
void slotNewMailReader(); |
|
void slotSettings(); |
|
void slotFilter(); |
|
void slotAddrBook(); |
|
void slotUnimplemented(); |
|
void slotViewChange(); |
|
void slotAddFolder(); |
|
void slotCompose(); |
|
void slotModifyFolder(); |
|
void slotRemoveFolder(); |
|
void slotEmptyFolder(); |
|
void slotCompactFolder(); |
|
void slotCompactAll(); |
|
void slotOverrideHtml(); |
|
void slotOverrideThread(); |
|
void slotReplyToMsg(); |
|
void slotNoQuoteReplyToMsg(); |
|
void slotReplyAllToMsg(); |
|
void slotReplyListToMsg(); |
|
void slotForwardMsg(); |
|
void slotRedirectMsg(); |
|
void slotBounceMsg(); |
|
void slotMessageQueuedOrDrafted(); |
|
void slotEditMsg(); |
|
void slotDeleteMsg(); |
|
void slotUndo(); |
|
void slotReadOn(); |
|
void slotSaveMsg(); |
|
void slotPrintMsg(); |
|
void slotMoveMsg(); |
|
void slotMoveMsgToFolder( KMFolder *dest); |
|
void slotCopyMsgToFolder( KMFolder *dest); |
|
void slotCopyMsg(); |
|
void slotResendMsg(); |
|
void slotApplyFilters(); |
|
void slotSubjectFilter(); |
|
void slotMailingListFilter(); |
|
void slotFromFilter(); |
|
void slotToFilter(); |
|
void slotSetMsgStatusNew(); |
|
void slotSetMsgStatusUnread(); |
|
void slotSetMsgStatusRead(); |
|
void slotSetMsgStatusReplied(); |
|
void slotSetMsgStatusQueued(); |
|
void slotSetMsgStatusSent(); |
|
void slotSetMsgStatusFlag(); |
|
void slotShowMsgSrc(); |
|
void slotSetHeaderStyle(int); |
|
void slotSetEncoding(); |
|
void slotSendQueued(); |
|
void slotMsgPopup(const KURL &url, const QPoint&); |
|
void slotUrlClicked(const KURL &url, int button); |
|
void slotCopyText(); |
|
void slotMarkAll(); |
|
void slotSelectText(); |
|
void slotMemInfo(); |
|
void slotSearch(); |
|
void slotSearchClosed(); |
|
void slotFind(); |
|
void slotUpdateImapMessage(KMMessage *msg); |
|
|
|
/** etc. */ |
|
void slotMsgActivated(KMMessage*); |
|
void quit(); |
|
|
|
/** Operations on mailto: URLs. */ |
|
void slotMailtoCompose(); |
|
void slotMailtoReply(); |
|
void slotMailtoForward(); |
|
void slotMailtoAddAddrBook(); |
|
|
|
/** Open URL in mUrlCurrent using Kfm. */ |
|
void slotUrlOpen(); |
|
|
|
/** Copy URL in mUrlCurrent to clipboard. Removes "mailto:" at |
|
beginning of URL before copying. */ |
|
void slotUrlCopy(); |
|
|
|
// Move selected messages to folder with corresponding to given menuid |
|
virtual void moveSelectedToFolder( int menuId ); |
|
// Copy selected messages to folder with corresponding to given menuid |
|
virtual void copySelectedToFolder( int menuId ); |
|
// Update html and threaded messages preferences in Folder menu. |
|
virtual void updateFolderMenu(); |
|
|
|
// XML-GUI stuff |
|
void slotToggleToolBar(); |
|
void slotToggleStatusBar(); |
|
void slotEditToolbars(); |
|
void slotEditKeys(); |
|
|
|
protected: |
|
KStatusBar *mStatusBar; |
|
KMFolderTree *mFolderTree; |
|
KMReaderWin *mMsgView; |
|
QSplitter *mHorizPanner, *mVertPanner; |
|
KMHeaders *mHeaders; |
|
KMFolder *mFolder; |
|
QTextCodec *mCodec; |
|
QPopupMenu *mViewMenu, *mBodyPartsMenu; |
|
KSelectAction *mEncoding; |
|
KAction *mlistFilterAction; |
|
QString mEncodingStr; |
|
bool mIntegrated; |
|
bool mSendOnCheck; |
|
bool mBeepOnNew, mBoxOnNew, mExecOnNew; |
|
bool mConfirmEmpty; |
|
QString mNewMailCmd; |
|
int mMessageStatusId; |
|
QValueList<int> *mHorizPannerSep, *mVertPannerSep; |
|
KURL mUrlCurrent; |
|
QPopupMenu *actMenu; |
|
QPopupMenu *fileMenu; |
|
bool mLongFolderList; |
|
bool mStartupDone; |
|
KMMenuToFolder mMenuToFolder; |
|
int copyId, moveId, htmlId, threadId; |
|
bool mHtmlPref, mThreadPref, mFolderHtmlPref, mFolderThreadPref; |
|
QPopupMenu *messageMenu; |
|
KMLittleProgressDlg *littleProgress; |
|
KMFldSearch *searchWin; |
|
ConfigureDialog *mConfigureDialog; |
|
bool mbNewMBVisible; |
|
|
|
KAction *modifyFolderAction, *removeFolderAction; |
|
KToggleAction *preferHtmlAction, *threadMessagesAction; |
|
KToggleAction *toolbarAction, *statusbarAction; |
|
}; |
|
|
|
#endif |
|
|
|
|