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.
101 lines
3.2 KiB
101 lines
3.2 KiB
// |
|
|
|
#ifndef KMReaderMainWin_h |
|
#define KMReaderMainWin_h |
|
|
|
#include "secondarywindow.h" |
|
|
|
#include <QUrl> |
|
#include <KMime/Message> |
|
|
|
#include <boost/scoped_ptr.hpp> |
|
#include <AkonadiCore/item.h> |
|
#include <AkonadiCore/collection.h> |
|
#include <QModelIndex> |
|
#include <messageviewer/viewer/viewer.h> |
|
class KMReaderWin; |
|
class QAction; |
|
class KFontAction; |
|
class KFontSizeAction; |
|
class KJob; |
|
|
|
namespace KMail |
|
{ |
|
class MessageActions; |
|
} |
|
|
|
namespace KMime |
|
{ |
|
class Message; |
|
class Content; |
|
} |
|
Q_DECLARE_METATYPE(QModelIndex) |
|
|
|
class KMReaderMainWin : public KMail::SecondaryWindow |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
KMReaderMainWin(MessageViewer::Viewer::DisplayFormatMessage format, bool htmlLoadExtOverride, char *name = Q_NULLPTR); |
|
explicit KMReaderMainWin(char *name = Q_NULLPTR); |
|
KMReaderMainWin(KMime::Content *aMsgPart, MessageViewer::Viewer::DisplayFormatMessage format, const QString &encoding, char *name = Q_NULLPTR); |
|
virtual ~KMReaderMainWin(); |
|
|
|
void setUseFixedFont(bool useFixedFont); |
|
|
|
/** |
|
* take ownership of and show @param msg |
|
* |
|
* The last two parameters, serNumOfOriginalMessage and nodeIdOffset, are needed when @p msg |
|
* is derived from another message, e.g. the user views an encapsulated message in this window. |
|
* Then, the reader needs to know about that original message, so those to parameters are passed |
|
* onto setOriginalMsg() of KMReaderWin. |
|
*/ |
|
void showMessage(const QString &encoding, const Akonadi::Item &msg, const Akonadi::Collection &parentCollection = Akonadi::Collection()); |
|
|
|
void showMessage(const QString &encoding, KMime::Message::Ptr message); |
|
void showMessagePopup(const Akonadi::Item &msg , const QUrl &aUrl, const QUrl &imageUrl, const QPoint &aPoint, bool contactAlreadyExists, bool uniqueContactFound); |
|
|
|
private Q_SLOTS: |
|
void slotMessagePopup(const Akonadi::Item &, const QUrl &, const QUrl &imageUrl, const QPoint &); |
|
void slotContactSearchJobForMessagePopupDone(KJob *); |
|
void slotTrashMsg(); |
|
void slotForwardInlineMsg(); |
|
void slotForwardAttachedMsg(); |
|
void slotRedirectMsg(); |
|
void slotFontAction(const QString &); |
|
void slotSizeAction(int); |
|
void slotCustomReplyToMsg(const QString &tmpl); |
|
void slotCustomReplyAllToMsg(const QString &tmpl); |
|
void slotCustomForwardMsg(const QString &tmpl); |
|
|
|
void slotEditToolbars(); |
|
void slotConfigChanged(); |
|
void slotUpdateToolbars(); |
|
|
|
/// This closes the window if the setting to close the window after replying or |
|
/// forwarding is set. |
|
void slotReplyOrForwardFinished(); |
|
void slotCopyItem(QAction *); |
|
void slotCopyMoveResult(KJob *job); |
|
void slotMoveItem(QAction *action); |
|
|
|
private: |
|
void copyOrMoveItem(const Akonadi::Collection &collection, bool move); |
|
Akonadi::Collection parentCollection() const; |
|
void initKMReaderMainWin(); |
|
void setupAccel(); |
|
QAction *copyActionMenu(QMenu *menu); |
|
QAction *moveActionMenu(QMenu *menu); |
|
|
|
KMReaderWin *mReaderWin; |
|
Akonadi::Item mMsg; |
|
// a few actions duplicated from kmmainwidget |
|
QAction *mTrashAction, *mSaveAtmAction; |
|
KFontAction *mFontAction; |
|
KFontSizeAction *mFontSizeAction; |
|
KMail::MessageActions *mMsgActions; |
|
Akonadi::Collection mParentCollection; |
|
}; |
|
|
|
#endif /*KMReaderMainWin_h*/
|
|
|