KIdentityManagement

identitytreemodel.h
1// SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org>
2// SPDX-FileCopyrightText: 2023 Claudio Cambra <claudio.cambra@kde.org>
3// SPDX-FileCopyrightText: 2024 Laurent Montel <montel@kde.org>
4// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5
6#pragma once
7
8#include "kidentitymanagementcore_export.h"
9
10#include <QAbstractListModel>
11
12#include "identitymanager.h"
13
14namespace KIdentityManagementCore
15{
16class IdentityManager;
17class KIDENTITYMANAGEMENTCORE_EXPORT IdentityTreeModel : public QAbstractListModel
18{
19 Q_OBJECT
20
21public:
22 enum IdentityRoles {
23 IdentityNameRole,
24 DisplayIdentityNameRole,
25 FullEmailRole,
26 EmailRole,
27 UoidRole,
28 DefaultRole,
29 ActivitiesRole,
30 LastColumn = ActivitiesRole,
31 };
32
33 explicit IdentityTreeModel(IdentityManager *manager, QObject *parent = nullptr);
34 ~IdentityTreeModel() override;
35
36 [[nodiscard]] QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
37 [[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
38 [[nodiscard]] int columnCount(const QModelIndex &parent) const override;
39 [[nodiscard]] QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
40
41 void setShowDefault(bool show);
42
43 [[nodiscard]] uint identityUoid(int index) const;
44 [[nodiscard]] int uoidIndex(int uoid) const;
45
46 [[nodiscard]] KIdentityManagementCore::IdentityManager *identityManager() const;
47
48 [[nodiscard]] Qt::ItemFlags flags(const QModelIndex &index) const override;
49 [[nodiscard]] bool setData(const QModelIndex &modelIndex, const QVariant &value, int role) override;
50
51private:
52 KIDENTITYMANAGEMENTCORE_NO_EXPORT void reloadUoidList();
53 KIDENTITYMANAGEMENTCORE_NO_EXPORT QString generateIdentityName(const KIdentityManagementCore::Identity &identity) const;
54 QList<int> mIdentitiesUoid;
55 bool mShowDefault = false;
56 KIdentityManagementCore::IdentityManager *const mIdentityManager;
57};
58}
Manages the list of identities.
User identity information.
Definition identity.h:73
DisplayRole
typedef ItemFlags
Orientation
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri May 17 2024 11:55:45 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.