File indexing completed on 2024-04-21 03:52:24

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2012 David Faure <faure+bluesystems@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #ifndef FRAMEWORKINTEGRATIONPLUGIN_H
0009 #define FRAMEWORKINTEGRATIONPLUGIN_H
0010 
0011 #include <KMessageBoxDontAskAgainInterface>
0012 #include <KMessageBoxNotifyInterface>
0013 #include <QObject>
0014 
0015 class KConfig;
0016 
0017 class KMessageBoxDontAskAgainConfigStorage : public KMessageBoxDontAskAgainInterface
0018 {
0019 public:
0020     KMessageBoxDontAskAgainConfigStorage()
0021         : KMessageBox_againConfig(nullptr)
0022     {
0023     }
0024     ~KMessageBoxDontAskAgainConfigStorage() override
0025     {
0026     }
0027 
0028     bool shouldBeShownTwoActions(const QString &dontShowAgainName, KMessageBox::ButtonCode &result) override;
0029     bool shouldBeShownContinue(const QString &dontShowAgainName) override;
0030     void saveDontShowAgainTwoActions(const QString &dontShowAgainName, KMessageBox::ButtonCode result) override;
0031     void saveDontShowAgainContinue(const QString &dontShowAgainName) override;
0032     void enableAllMessages() override;
0033     void enableMessage(const QString &dontShowAgainName) override;
0034     void setConfig(KConfig *cfg) override
0035     {
0036         KMessageBox_againConfig = cfg;
0037     }
0038 
0039 private:
0040     KConfig *KMessageBox_againConfig;
0041 };
0042 
0043 class KMessageBoxNotify : public KMessageBoxNotifyInterface
0044 {
0045 public:
0046     void sendNotification(QMessageBox::Icon notificationType, const QString &message, QWidget *parent) override;
0047 };
0048 
0049 class KFrameworkIntegrationPlugin : public QObject
0050 {
0051     Q_PLUGIN_METADATA(IID "org.kde.FrameworkIntegrationPlugin")
0052     Q_OBJECT
0053 public:
0054     KFrameworkIntegrationPlugin();
0055 
0056 public Q_SLOTS:
0057     void reparseConfiguration();
0058 
0059 private:
0060     KMessageBoxDontAskAgainConfigStorage m_dontAskAgainConfigStorage;
0061     KMessageBoxNotify m_notify;
0062 };
0063 
0064 #endif // FRAMEWORKINTEGRATIONPLUGIN_H