Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

mailtable.h

Go to the documentation of this file.
00001 #ifndef MAILTABLE_H
00002 #define MAILTABLE_H
00003 
00004 #include <qdatetime.h>
00005 
00006 #include "listviewplus.h"
00007 #include "imapresponse.h"
00008 #include "folderwidget.h"
00009 #include "imaphandler.h"
00010 
00011 class MailPart
00012 {
00013 public:
00014         void setMimeType(QString mimeType) { _mimeType = mimeType; }
00015         void setFileName(QString fileName) { _fileName = fileName; }
00016         void setDescription(QString description) { _description = description; }
00017         void setData(QString data) { _data = data; }
00018 
00019         QString mimeType() { return _mimeType; }
00020         QString fileName() { return _fileName; }
00021         QString description() { return _description; }
00022         QString data() { return _data; }
00023 
00024 private:
00025         QString _mimeType, _fileName, _description, _data;
00026 
00027 };
00028 
00029 class Mail
00030 {
00031 public:
00032         enum ReadState { New, Unread, Old };
00033 
00034         void setFrom(QString from) { _from = from; }
00035         void setTo(QString to) { _to = to; }
00036         void setSubject(QString subject) { _subject = subject; }
00037         void setDate(QDate date) { _date = date; }
00038         void setBody(QString body) { _body = body; }
00039         void setReadState(ReadState readState) { _readState = readState; }
00040         void setMailParts(QValueList<MailPart> parts) { _parts = parts; }
00041         void addMailParts(MailPart part) { _parts.append(part); }
00042 
00043         QString from() { return _from; }
00044         QString to() { return _to; }
00045         QString subject() { return _subject; }
00046         QDate date() { return _date; }
00047         QString body() { return _body; }
00048         ReadState readState() { return _readState; }
00049         QValueList<MailPart> mailParts() { return _parts; }
00050 
00051 private:
00052         QString _from, _to, _subject, _body;
00053         QDate _date;
00054         QValueList<MailPart> _parts;
00055         ReadState _readState;    
00056 
00057 };
00058 
00059 class MailTableItem : public QListViewItem
00060 {
00061 public:
00062         MailTableItem(QListView *parent, IMAPResponseFETCH fetch);
00063 
00064         IMAPResponseFETCH fetch() { return _fetch; }
00065 
00066 protected:
00067         void paintCell(QPainter *painter, const QColorGroup &cg, int col, int width, int align);
00068 
00069 private:
00070         IMAPResponseFETCH _fetch;
00071         bool _draft, _new, _unseen;
00072 
00073 };
00074 
00075 class MailTable : public ListViewPlus
00076 {
00077         Q_OBJECT
00078 
00079 public:
00080         MailTable(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
00081 
00082         void addMail(Mail &mail);
00083         void setHeaders(QValueList<IMAPResponseFETCH> response);
00084 
00085 public slots:
00086         void stop() { _stopped = true; }
00087         void setFolder(Folder folder);
00088 
00089 signals:
00090         void totalSteps(int steps);
00091         void progress(int progress);
00092         void resetProgress();
00093         void mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler);
00094         void status(const QString &text);
00095         void stopEnabled(bool stop);
00096 
00097 protected:
00098         static const int MENU_COPY = 0;
00099         static const int MENU_MARK_READ = 0;
00100         static const int MENU_MARK_UNREAD = 1;
00101         static const int MENU_MARK_MARKED = 2;
00102         static const int MENU_MARK_UNMARKED = 3;
00103         static const int MENU_MARK = 1;
00104         static const int MENU_DELETE = 2;
00105 
00106 protected slots:
00107         void itemClicked(QListViewItem *);
00108 
00109         void slotIMAPSelect(IMAPResponse &response);
00110         void slotIMAPFetch(IMAPResponse &response);
00111 
00112 private:
00113         QWidget *_parent;
00114         IMAPHandler *_handler;
00115         int _downloadSteps, _lastStep, _currentProgress;
00116         bool _stopped;
00117 
00118 };
00119 
00120 #endif
00121 

Generated on Sat Nov 5 16:18:08 2005 for OPIE by  doxygen 1.4.2