MailTransport

transportmodel.h
1/*
2 SPDX-FileCopyrightText: 2024 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#pragma once
8
9#include "mailtransport_export.h"
10#include <QAbstractListModel>
11namespace MailTransport
12{
13class TransportManager;
14class Transport;
15class MAILTRANSPORT_EXPORT TransportModel : public QAbstractListModel
16{
17 Q_OBJECT
18public:
19 enum TransportRoles {
20 NameRole,
21 TransportNameRole,
22 TransportIdentifierRole,
23 DefaultRole,
24 ActivitiesRole,
25 LastColumn = ActivitiesRole,
26 };
27
28 explicit TransportModel(QObject *parent = nullptr);
29 ~TransportModel() override;
30
31 [[nodiscard]] QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
32 [[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
33 [[nodiscard]] int columnCount(const QModelIndex &parent) const override;
34 [[nodiscard]] QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
35
36 [[nodiscard]] int transportId(int index) const;
37 [[nodiscard]] int indexOf(int transportId) const;
38
39 [[nodiscard]] Qt::ItemFlags flags(const QModelIndex &index) const override;
40
41 [[nodiscard]] bool setData(const QModelIndex &index, const QVariant &value, int role) override;
42
43 void setShowDefault(bool show);
44
45private:
46 MAILTRANSPORT_NO_EXPORT void updateComboboxList();
47 [[nodiscard]] MAILTRANSPORT_NO_EXPORT QString generateTransportName(Transport *t) const;
48 QList<int> mTransportIds;
49 TransportManager *const mTransportManager;
50 bool mShowDefault = false;
51};
52}
DisplayRole
typedef ItemFlags
Orientation
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Aug 30 2024 11:51:06 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.