00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MAILVIEWMODEL_H
00019 #define MAILVIEWMODEL_H
00020
00021 class AccountList;
00022
00023
00024 #include <QAbstractItemModel>
00025 #include <QItemSelectionModel>
00026
00027
00028 #include <KDE/KLocale>
00029 #include <KIcon>
00030 #include <KStandardDirs>
00031 #include <kdatetime.h>
00032
00033
00034 #include "accountlist.h"
00035 #include "mail.h"
00036 #include "account.h"
00037
00038
00039 #define NUMBER_MAILVIEW_COLUMNS 9
00040
00044 class MailViewModel : public QAbstractItemModel
00045 {
00046 Q_OBJECT
00047
00048 public:
00049
00055 MailViewModel( AccountList* accounts, QObject* parent );
00056
00060 virtual ~MailViewModel();
00061
00070 virtual QModelIndex index( int row, int column, const QModelIndex& parent = QModelIndex() ) const;
00071
00077 virtual QModelIndex parent( const QModelIndex& ) const;
00078
00085 virtual int rowCount ( const QModelIndex & parent = QModelIndex() ) const;
00086
00092 virtual int columnCount ( const QModelIndex& ) const;
00093
00100 QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const;
00101
00108 bool hasChildren ( const QModelIndex & parent = QModelIndex() ) const;
00109
00116 QVariant headerData( int section, Qt::Orientation orientation, int role ) const;
00117
00122 virtual Qt::ItemFlags flags ( const QModelIndex& ) const;
00123
00127 void refresh();
00128
00134 void sort( int column, Qt::SortOrder order = Qt::AscendingOrder );
00135
00139 void sort();
00140
00145 Mail getMail( const QModelIndex index ) const;
00146
00152 QStringList getSelectedSubjects( QItemSelectionModel* selectModel ) const;
00153
00159 QStringList getSelectedSenders( QItemSelectionModel* selectModel ) const;
00160
00166 QList<Mail> getSelectedMails( QItemSelectionModel* mailSelectModel ) const;
00167
00172 QModelIndexList getMarkedMails() const;
00173
00177 void saveSetup();
00178
00179
00180
00181 private:
00182
00186 AccountList* accounts;
00187
00191 QList<Mail> viewMailList;
00192
00196 KIcon picNewMail;
00197
00201 Qt::SortOrder lastSortOrder;
00202
00206 int lastSortColumn;
00207
00208
00209 };
00210
00211 #endif // MAILVIEWMODEL_H