Diffstat (limited to 'noncore/unsupported/mail2/mailtable.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/unsupported/mail2/mailtable.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/noncore/unsupported/mail2/mailtable.h b/noncore/unsupported/mail2/mailtable.h new file mode 100644 index 0000000..6deb70a --- a/dev/null +++ b/noncore/unsupported/mail2/mailtable.h | |||
@@ -0,0 +1,121 @@ | |||
1 | #ifndef MAILTABLE_H | ||
2 | #define MAILTABLE_H | ||
3 | |||
4 | #include <qdatetime.h> | ||
5 | |||
6 | #include "listviewplus.h" | ||
7 | #include "imapresponse.h" | ||
8 | #include "folderwidget.h" | ||
9 | #include "imaphandler.h" | ||
10 | |||
11 | class MailPart | ||
12 | { | ||
13 | public: | ||
14 | void setMimeType(QString mimeType) { _mimeType = mimeType; } | ||
15 | void setFileName(QString fileName) { _fileName = fileName; } | ||
16 | void setDescription(QString description) { _description = description; } | ||
17 | void setData(QString data) { _data = data; } | ||
18 | |||
19 | QString mimeType() { return _mimeType; } | ||
20 | QString fileName() { return _fileName; } | ||
21 | QString description() { return _description; } | ||
22 | QString data() { return _data; } | ||
23 | |||
24 | private: | ||
25 | QString _mimeType, _fileName, _description, _data; | ||
26 | |||
27 | }; | ||
28 | |||
29 | class Mail | ||
30 | { | ||
31 | public: | ||
32 | enum ReadState { New, Unread, Old }; | ||
33 | |||
34 | void setFrom(QString from) { _from = from; } | ||
35 | void setTo(QString to) { _to = to; } | ||
36 | void setSubject(QString subject) { _subject = subject; } | ||
37 | void setDate(QDate date) { _date = date; } | ||
38 | void setBody(QString body) { _body = body; } | ||
39 | void setReadState(ReadState readState) { _readState = readState; } | ||
40 | void setMailParts(QValueList<MailPart> parts) { _parts = parts; } | ||
41 | void addMailParts(MailPart part) { _parts.append(part); } | ||
42 | |||
43 | QString from() { return _from; } | ||
44 | QString to() { return _to; } | ||
45 | QString subject() { return _subject; } | ||
46 | QDate date() { return _date; } | ||
47 | QString body() { return _body; } | ||
48 | ReadState readState() { return _readState; } | ||
49 | QValueList<MailPart> mailParts() { return _parts; } | ||
50 | |||
51 | private: | ||
52 | QString _from, _to, _subject, _body; | ||
53 | QDate _date; | ||
54 | QValueList<MailPart> _parts; | ||
55 | ReadState _readState; | ||
56 | |||
57 | }; | ||
58 | |||
59 | class MailTableItem : public QListViewItem | ||
60 | { | ||
61 | public: | ||
62 | MailTableItem(QListView *parent, IMAPResponseFETCH fetch); | ||
63 | |||
64 | IMAPResponseFETCH fetch() { return _fetch; } | ||
65 | |||
66 | protected: | ||
67 | void paintCell(QPainter *painter, const QColorGroup &cg, int col, int width, int align); | ||
68 | |||
69 | private: | ||
70 | IMAPResponseFETCH _fetch; | ||
71 | bool _draft, _new, _unseen; | ||
72 | |||
73 | }; | ||
74 | |||
75 | class MailTable : public ListViewPlus | ||
76 | { | ||
77 | Q_OBJECT | ||
78 | |||
79 | public: | ||
80 | MailTable(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); | ||
81 | |||
82 | void addMail(Mail &mail); | ||
83 | void setHeaders(QValueList<IMAPResponseFETCH> response); | ||
84 | |||
85 | public slots: | ||
86 | void stop() { _stopped = true; } | ||
87 | void setFolder(Folder folder); | ||
88 | |||
89 | signals: | ||
90 | void totalSteps(int steps); | ||
91 | void progress(int progress); | ||
92 | void resetProgress(); | ||
93 | void mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler); | ||
94 | void status(const QString &text); | ||
95 | void stopEnabled(bool stop); | ||
96 | |||
97 | protected: | ||
98 | static const int MENU_COPY = 0; | ||
99 | static const int MENU_MARK_READ = 0; | ||
100 | static const int MENU_MARK_UNREAD = 1; | ||
101 | static const int MENU_MARK_MARKED = 2; | ||
102 | static const int MENU_MARK_UNMARKED = 3; | ||
103 | static const int MENU_MARK = 1; | ||
104 | static const int MENU_DELETE = 2; | ||
105 | |||
106 | protected slots: | ||
107 | void itemClicked(QListViewItem *); | ||
108 | |||
109 | void slotIMAPSelect(IMAPResponse &response); | ||
110 | void slotIMAPFetch(IMAPResponse &response); | ||
111 | |||
112 | private: | ||
113 | QWidget *_parent; | ||
114 | IMAPHandler *_handler; | ||
115 | int _downloadSteps, _lastStep, _currentProgress; | ||
116 | bool _stopped; | ||
117 | |||
118 | }; | ||
119 | |||
120 | #endif | ||
121 | |||