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.
113 lines
3.4 KiB
113 lines
3.4 KiB
#ifndef __KMHEADERS |
|
#define __KMHEADERS |
|
|
|
#include <qwidget.h> |
|
#include <qstrlist.h> |
|
#include <ktablistbox.h> |
|
#include "kmmessage.h" |
|
|
|
class KMFolder; |
|
class KMMessage; |
|
class KMMainWin; |
|
|
|
typedef QList<KMMessage> KMMessageList; |
|
|
|
#define KMHeadersInherited KTabListBox |
|
class KMHeaders : public KTabListBox |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
KMHeaders(KMMainWin *owner, QWidget *parent=0, const char *name=0); |
|
virtual ~KMHeaders(); |
|
|
|
virtual void setFolder(KMFolder *); |
|
KMFolder* folder(void) { return mFolder; } |
|
|
|
/** Change part of the contents of a line */ |
|
virtual void changeItemPart (char c, int itemIndex, int column); |
|
|
|
/** Set current message. If id<0 then the first message is shown, |
|
if id>count() the last message is shown. */ |
|
virtual void setCurrentMsg(int msgId); |
|
|
|
/** The following methods process the message in the folder with |
|
the given msgId, or if no msgId is given all selected |
|
messages are processed. */ |
|
virtual void setMsgStatus(KMMsgStatus status, int msgId=-1); |
|
virtual void setMsgRead(int msgId=-1); |
|
virtual void deleteMsg(int msgId=-1); |
|
virtual void forwardMsg(int msgId=-1); |
|
virtual void replyToMsg(int msgId=-1); |
|
virtual void replyAllToMsg(int msgId=-1); |
|
virtual void resendMsg(int msgId=-1); |
|
virtual void saveMsg(int msgId=-1); |
|
virtual void applyFiltersOnMsg(int msgId=-1); |
|
|
|
/** If destination==NULL the messages are deleted, otherwise |
|
they are moved to this folder. */ |
|
virtual void moveMsgToFolder(KMFolder* destination, int msgId=-1); |
|
|
|
/** Messages are duplicated and added to given folder. */ |
|
virtual void copyMsgToFolder(KMFolder* destination, int msgId=-1); |
|
|
|
/** Returns list of selected messages or a list with the message with |
|
the given Id if msgId >= 0. Do not delete the returned list. */ |
|
virtual KMMessageList* selectedMsgs(int msgId=-1); |
|
|
|
/** Returns message with given id or current message if no |
|
id is given. First call with msgId==-1 returns first |
|
selected message, subsequent calls with no argument |
|
return the following selected messages. */ |
|
KMMessage* getMsg (int msgId=-2); |
|
|
|
/** Returns index of message returned by last getMsg() call */ |
|
int indexOfGetMsg (void) const { return getMsgIndex; } |
|
|
|
/** Returns pointer to owning main window. */ |
|
KMMainWin* owner(void) const { return mOwner; } |
|
|
|
signals: |
|
virtual void selected(KMMessage *); |
|
virtual void activated(KMMessage *); |
|
|
|
|
|
public slots: |
|
void selectMessage(int msgId, int colId); |
|
void highlightMessage(int msgId, int colId); |
|
void msgHeaderChanged(int msgId); |
|
void msgChanged(); |
|
void msgAdded(int); |
|
void msgRemoved(int); |
|
void headerClicked(int); |
|
void nextMessage(); |
|
void prevMessage(); |
|
|
|
protected: |
|
virtual bool prepareForDrag (int col, int row, char** data, int* size, |
|
int* type); |
|
|
|
/** Returns message index of first selected message of the messages |
|
where the message with the given id is in. This for finding the correct |
|
message that shall be the current message after move/delete of multiple |
|
messages. */ |
|
virtual int firstSelectedMsg(int id) const; |
|
|
|
/** Read per-folder config options and apply them. */ |
|
virtual void readFolderConfig(void); |
|
|
|
/** Write per-folder config options. */ |
|
virtual void writeFolderConfig(void); |
|
|
|
private: |
|
virtual void updateMessageList(void); |
|
KMFolder* mFolder; |
|
KMMainWin* mOwner; |
|
int getMsgIndex; |
|
bool getMsgMulti; |
|
KMMessageList mSelMsgList; |
|
KMMsgList::SortField mSortField; |
|
}; |
|
|
|
#endif |
|
|
|
|