1 /*
2 SPDX-FileCopyrightText: 2013-2021 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 #include "kcmknotessummary.h"
7
8 #include <Akonadi/Notes/NoteUtils>
9
10 #include <PimCommonAkonadi/CheckedCollectionWidget>
11
12 #include <Akonadi/ETMViewStateSaver>
13
14 #include "knotes_kontact_plugin_debug.h"
15 #include <KAboutData>
16 #include <KAcceleratorManager>
17 #include <KCheckableProxyModel>
18 #include <KLocalizedString>
19 #include <KPluginFactory>
20 #include <KSharedConfig>
21
22 #include <QCheckBox>
23 #include <QTreeView>
24 #include <QVBoxLayout>
25
26 K_PLUGIN_CLASS_WITH_JSON(KCMKNotesSummary, "kcmknotessummary.json")
27
KCMKNotesSummary(QWidget * parent,const QVariantList & args)28 KCMKNotesSummary::KCMKNotesSummary(QWidget *parent, const QVariantList &args)
29 : KCModule(parent, args)
30 {
31 initGUI();
32
33 connect(mCheckedCollectionWidget->folderTreeView(), &QAbstractItemView::clicked, this, &KCMKNotesSummary::modified);
34
35 KAcceleratorManager::manage(this);
36
37 load();
38
39 auto about = new KAboutData(QStringLiteral("kcmknotessummary"),
40 i18n("kcmknotessummary"),
41 QString(),
42 i18n("Notes Summary Configuration Dialog"),
43 KAboutLicense::GPL,
44 i18n("Copyright © 2013-2021 Laurent Montel <montel@kde.org>"));
45 about->addAuthor(ki18n("Laurent Montel").toString(), QString(), QStringLiteral("montel@kde.org"));
46 setAboutData(about);
47 }
48
modified()49 void KCMKNotesSummary::modified()
50 {
51 Q_EMIT changed(true);
52 }
53
initGUI()54 void KCMKNotesSummary::initGUI()
55 {
56 auto layout = new QVBoxLayout(this);
57 layout->setContentsMargins(0, 0, 0, 0);
58
59 mCheckedCollectionWidget = new PimCommon::CheckedCollectionWidget(Akonadi::NoteUtils::noteMimeType());
60 layout->addWidget(mCheckedCollectionWidget);
61 }
62
initFolders()63 void KCMKNotesSummary::initFolders()
64 {
65 KSharedConfigPtr _config = KSharedConfig::openConfig(QStringLiteral("kcmknotessummaryrc"));
66
67 mModelState = new KViewStateMaintainer<Akonadi::ETMViewStateSaver>(_config->group("CheckState"), this);
68 mModelState->setSelectionModel(mCheckedCollectionWidget->selectionModel());
69 }
70
loadFolders()71 void KCMKNotesSummary::loadFolders()
72 {
73 mModelState->restoreState();
74 }
75
storeFolders()76 void KCMKNotesSummary::storeFolders()
77 {
78 KConfig config(QStringLiteral("kcmknotessummaryrc"));
79 mModelState->saveState();
80 config.sync();
81 }
82
load()83 void KCMKNotesSummary::load()
84 {
85 initFolders();
86 loadFolders();
87
88 Q_EMIT changed(false);
89 }
90
save()91 void KCMKNotesSummary::save()
92 {
93 storeFolders();
94
95 Q_EMIT changed(false);
96 }
97
defaults()98 void KCMKNotesSummary::defaults()
99 {
100 Q_EMIT changed(true);
101 }
102
103 #include "kcmknotessummary.moc"
104