Kirigami-addons

messagedialoghelper.cpp
1// SPDX-FileCopyrightText: 2024 Carl Schwan <carl@carlschwan.eu>
2// SPDX-License-Identifier: LGPL-2.1-or-later
3
4#include "messagedialoghelper.h"
5#include <KConfigGroup>
6#include <KSharedConfig>
7
8using namespace Qt::StringLiterals;
9
10MessageDialogHelper::MessageDialogHelper(QObject *parent)
11 : QObject(parent)
12{
13}
14
15QVariantHash MessageDialogHelper::shouldBeShownTwoActions(const QString &dontShowAgainName)
16{
17 KConfigGroup cg(m_config ? m_config : KSharedConfig::openConfig().data(), QStringLiteral("Notification Messages"));
18 const QString dontAsk = cg.readEntry(dontShowAgainName, QString()).toLower();
19 if (dontAsk == QLatin1String("yes") || dontAsk == QLatin1String("true")) {
20 return QVariantHash{
21 { "result"_L1, true },
22 { "show"_L1, false },
23 };
24 }
25 if (dontAsk == QLatin1String("no") || dontAsk == QLatin1String("false")) {
26 return QVariantHash{
27 { "result"_L1, false },
28 { "show"_L1, false },
29 };
30 }
31
32 return QVariantHash{
33 { "show"_L1, true },
34 };
35}
36
37bool MessageDialogHelper::shouldBeShownContinue(const QString &dontShowAgainName)
38{
39 KConfigGroup cg(m_config ? m_config : KSharedConfig::openConfig().data(), QStringLiteral("Notification Messages"));
40 return cg.readEntry(dontShowAgainName, true);
41}
42
43void MessageDialogHelper::saveDontShowAgainTwoActions(const QString &dontShowAgainName, bool result)
44{
46 if (dontShowAgainName[0] == QLatin1Char(':')) {
47 flags |= KConfigGroup::Global;
48 }
49 KConfigGroup cg(m_config ? m_config : KSharedConfig::openConfig().data(), QStringLiteral("Notification Messages"));
50 cg.writeEntry(dontShowAgainName, result, flags);
51 cg.sync();
52}
53
54void MessageDialogHelper::saveDontShowAgainContinue(const QString &dontShowAgainName)
55{
57 if (dontShowAgainName[0] == QLatin1Char(':')) {
58 flags |= KConfigGroup::Global;
59 }
60 KConfigGroup cg(m_config ? m_config : KSharedConfig::openConfig().data(), QStringLiteral("Notification Messages"));
61 cg.writeEntry(dontShowAgainName, false, flags);
62 cg.sync();
63}
64
65KConfig *MessageDialogHelper::config() const
66{
67 return m_config;
68}
69
70void MessageDialogHelper::setConfig(KConfig *config)
71{
72 if (m_config == config) {
73 return;
74 }
75 m_config = config;
76 Q_EMIT configChanged();
77}
void writeEntry(const char *key, const char *value, WriteConfigFlags pFlags=Normal)
QString readEntry(const char *key, const char *aDefault=nullptr) const
bool sync() override
Q_EMITQ_EMIT
QString toLower() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri May 10 2024 11:50:14 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.