libkdepim
maillistdrag.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef KDEPIM_MAILLISTDRAG_H
00025 #define KDEPIM_MAILLISTDRAG_H
00026
00027 #include "kdepim_export.h"
00028
00029 #include <QList>
00030 #include <QMimeData>
00031 #include <QString>
00032
00033 #include <time.h>
00034
00035 class KUrl;
00036
00037 namespace KPIM {
00038
00059 class KDEPIM_EXPORT MailSummary
00060 {
00061 public:
00062 MailSummary( quint32 serialNumber, const QString &messageId, const QString &subject,
00063 const QString &from, const QString &to, time_t date );
00064 MailSummary() {}
00065 ~MailSummary() {}
00066
00068 void set( quint32, const QString&, const QString&, const QString&, const QString&, time_t );
00069
00071 quint32 serialNumber() const;
00072
00074 QString messageId() const;
00075
00077 QString subject() const;
00078
00080 QString from() const;
00081
00083 QString to() const;
00084
00086 time_t date() const;
00087
00089 #ifdef Q_CC_MSVC
00090 operator KUrl() const;
00091 #endif
00092
00093 KDE_DUMMY_COMPARISON_OPERATOR(MailSummary)
00094 private:
00095 quint32 mSerialNumber;
00096 QString mMessageId, mSubject, mFrom, mTo;
00097 time_t mDate;
00098 };
00099 #ifdef MAKE_KDEPIM_LIBS
00100 KDE_DUMMY_QHASH_FUNCTION(MailSummary)
00101 #endif
00102
00106 class KDEPIM_EXPORT MailTextSource {
00107 public:
00108 MailTextSource() {}
00109 virtual ~MailTextSource() {}
00110
00111 virtual QByteArray text(quint32 serialNumber) const = 0;
00112 };
00113
00117 class KDEPIM_EXPORT MailList : public QList<MailSummary>
00118 {
00119 public:
00120 static QString mimeDataType();
00121 static bool canDecode( const QMimeData*md );
00122 static MailList fromMimeData( const QMimeData*md );
00123 static QByteArray serialsFromMimeData( const QMimeData *md );
00124 static MailList decode( const QByteArray& payload );
00125 void populateMimeData( QMimeData*md );
00126 };
00127
00142 class KDEPIM_EXPORT MailListMimeData : public QMimeData
00143 {
00144 public:
00145
00152 MailListMimeData( MailTextSource *src = 0 );
00153
00154 ~MailListMimeData();
00155
00156 protected:
00157
00162 virtual QVariant retrieveData( const QString & mimeType,
00163 QVariant::Type type ) const;
00164
00165 virtual bool hasFormat ( const QString & mimeType ) const;
00166
00167 virtual QStringList formats () const;
00168
00169 private:
00170
00171 MailTextSource *mMailTextSource;
00172
00173
00174
00175 mutable QByteArray mMails;
00176 };
00177
00178 }
00179
00180 #endif