File indexing completed on 2024-05-12 05:11:11
0001 /* 0002 SPDX-FileCopyrightText: 2006 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "akonadi-mime_export.h" 0010 0011 #include <Akonadi/EntityTreeModel> 0012 0013 namespace Akonadi 0014 { 0015 /** 0016 * A flat self-updating message model. 0017 */ 0018 class AKONADI_MIME_EXPORT MessageModel : public Akonadi::EntityTreeModel 0019 { 0020 Q_OBJECT 0021 0022 public: 0023 /** 0024 Column types. 0025 */ 0026 enum Column { 0027 Subject, /**< Subject column. */ 0028 Sender, /**< Sender column. */ 0029 Receiver, /**< Receiver column. */ 0030 Date, /**< Date column. */ 0031 Size /**< Size column. */ 0032 }; 0033 0034 /** 0035 Creates a new message model. 0036 0037 @param parent The parent object. 0038 */ 0039 explicit MessageModel(Monitor *monitor, QObject *parent = nullptr); 0040 0041 /** 0042 Deletes the message model. 0043 */ 0044 ~MessageModel() override = default; 0045 0046 protected: 0047 [[nodiscard]] int entityColumnCount(HeaderGroup headerGroup) const override; 0048 [[nodiscard]] QVariant entityHeaderData(int section, Qt::Orientation orientation, int role, HeaderGroup headerGroup) const override; 0049 [[nodiscard]] QVariant entityData(const Item &item, int column, int role = Qt::DisplayRole) const override; 0050 }; 0051 }