Pimcommon

collectionaclpage.cpp
1/**
2 *
3 * SPDX-FileCopyrightText: 2004 David Faure <faure@kde.org>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#include "collectionaclpage.h"
9#include "aclmanager.h"
10#include "collectionaclwidget.h"
11#include "imapaclattribute.h"
12#include <Akonadi/Collection>
13#include <KLocalizedString>
14#include <QHBoxLayout>
15
16using namespace PimCommon;
17
18class PimCommon::CollectionAclPagePrivate
19{
20public:
21 CollectionAclPagePrivate() = default;
22
23 CollectionAclWidget *mCollectionAclWidget = nullptr;
24};
25
26CollectionAclPage::CollectionAclPage(QWidget *parent)
27 : CollectionPropertiesPage(parent)
28 , d(new PimCommon::CollectionAclPagePrivate)
29{
30 setObjectName(QLatin1StringView("PimCommon::CollectionAclPage"));
31
32 setPageTitle(i18n("Access Control"));
33 init();
34}
35
36CollectionAclPage::~CollectionAclPage() = default;
37
38void CollectionAclPage::init()
39{
40 auto layout = new QHBoxLayout(this);
42 d->mCollectionAclWidget = new CollectionAclWidget(this);
43 layout->addWidget(d->mCollectionAclWidget);
44}
45
46bool CollectionAclPage::canHandle(const Akonadi::Collection &collection) const
47{
48 return collection.hasAttribute<PimCommon::ImapAclAttribute>();
49}
50
51void CollectionAclPage::load(const Akonadi::Collection &collection)
52{
53 d->mCollectionAclWidget->aclManager()->setCollection(collection);
54}
55
56void CollectionAclPage::save(Akonadi::Collection &collection)
57{
58 d->mCollectionAclWidget->aclManager()->save(d->mCollectionAclWidget->recursive());
59
60 // The collection dialog expects the changed collection to run
61 // its own ItemModifyJob, so make him happy...
62 const auto origCol = d->mCollectionAclWidget->aclManager()->collection();
63 collection.addAttribute(origCol.attribute<PimCommon::ImapAclAttribute>()->clone());
64}
65
66#include "moc_collectionaclpage.cpp"
void addAttribute(Attribute *attribute)
bool hasAttribute() const
The ImapAclAttribute class.
QString i18n(const char *text, const TYPE &arg...)
folderdialogacltab.h
QCA_EXPORT void init()
void addWidget(QWidget *w)
void setContentsMargins(const QMargins &margins)
QLayout * layout() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:17:23 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.