File indexing completed on 2024-04-28 13:21:10

0001 /*
0002 SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org>
0003 SPDX-FileCopyrightText: 2017 David Edmundson <davidedmundson@kde.org>
0004 
0005 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0006 */
0007 #pragma once
0008 
0009 #include <KConfigPropertyMap>
0010 #include <KPackage/Package>
0011 #include <KSharedConfig>
0012 
0013 class KConfigLoader;
0014 
0015 namespace ScreenLocker
0016 {
0017 class LnFIntegration : public QObject
0018 {
0019     Q_OBJECT
0020 
0021     Q_PROPERTY(KConfigPropertyMap *configuration READ configuration NOTIFY configurationChanged)
0022 
0023 public:
0024     explicit LnFIntegration(QObject *parent);
0025     ~LnFIntegration() override;
0026 
0027     void init();
0028 
0029     void setConfig(const KSharedConfig::Ptr &config)
0030     {
0031         m_config = config;
0032     }
0033 
0034     void setPackage(const KPackage::Package &package)
0035     {
0036         m_package = package;
0037     }
0038 
0039     KPackage::Package package() const
0040     {
0041         return m_package;
0042     }
0043 
0044     KConfigPropertyMap *configuration() const
0045     {
0046         return m_configuration;
0047     }
0048 
0049     KConfigLoader *configScheme();
0050 
0051 Q_SIGNALS:
0052     void packageChanged();
0053     void configurationChanged();
0054 
0055 private:
0056     KPackage::Package m_package;
0057     KSharedConfig::Ptr m_config;
0058     KConfigLoader *m_configLoader = nullptr;
0059     KConfigPropertyMap *m_configuration = nullptr;
0060 };
0061 
0062 }