KIdentityManagement

identitytreeview.cpp
1// SPDX-FileCopyrightText: 2024 Laurent Montel <montel@kde.org>
2// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
3
4#include "identitytreeview.h"
5#include "identitytreedelegate.h"
6#include "identitytreemodel.h"
7#include "identitytreesortproxymodel.h"
8
9#include <QHeaderView>
10
11using namespace KIdentityManagementWidgets;
12IdentityTreeView::IdentityTreeView(QWidget *parent)
13 : QTreeView(parent)
14 , mIdentityProxyModel(new KIdentityManagementCore::IdentityTreeSortProxyModel(this))
15{
16 setAlternatingRowColors(true);
17 setSelectionMode(SingleSelection);
18 setContextMenuPolicy(Qt::CustomContextMenu);
19 setSelectionBehavior(QAbstractItemView::SelectRows);
20 setRootIsDecorated(false);
21 setSortingEnabled(true);
22 setAllColumnsShowFocus(true);
23 header()->setSectionsMovable(false);
24 header()->setSectionResizeMode(QHeaderView::ResizeToContents);
25
26 auto model = new KIdentityManagementCore::IdentityTreeModel(KIdentityManagementCore::IdentityManager::self(), this);
27 model->setShowDefault(true);
28
29 mIdentityProxyModel->setSourceModel(model);
30 setModel(mIdentityProxyModel);
31
32 setColumnHidden(KIdentityManagementCore::IdentityTreeModel::DefaultRole, true);
33 setColumnHidden(KIdentityManagementCore::IdentityTreeModel::UoidRole, true);
34 setColumnHidden(KIdentityManagementCore::IdentityTreeModel::EmailRole, true);
35 setColumnHidden(KIdentityManagementCore::IdentityTreeModel::IdentityNameRole, true);
36 setColumnHidden(KIdentityManagementCore::IdentityTreeModel::ActivitiesRole, true);
37 setItemDelegateForColumn(KIdentityManagementCore::IdentityTreeModel::DisplayIdentityNameRole, new IdentityTreeDelegate(this));
38}
39
40IdentityTreeView::~IdentityTreeView() = default;
41
42KIdentityManagementCore::IdentityActivitiesAbstract *IdentityTreeView::identityActivitiesAbstract() const
43{
44 return mIdentityProxyModel->identityActivitiesAbstract();
45}
46
47void IdentityTreeView::setIdentityActivitiesAbstract(KIdentityManagementCore::IdentityActivitiesAbstract *newIdentityActivitiesAbstract)
48{
49 mIdentityProxyModel->setIdentityActivitiesAbstract(newIdentityActivitiesAbstract);
50}
51
52#include "moc_identitytreeview.cpp"
static IdentityManager * self()
Creates or reuses the identity manager instance for this process.
CustomContextMenu
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.