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 }