File indexing completed on 2024-04-21 14:53:51

0001 /*
0002     SPDX-FileCopyrightText: 2014 Marco Martin <mart@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-only
0005 */
0006 
0007 #ifndef KCMODULEQML_H
0008 #define KCMODULEQML_H
0009 
0010 #include <kconfigwidgets_export.h>
0011 
0012 #include <KCModule>
0013 
0014 #include <memory>
0015 
0016 class QQuickItem;
0017 class KCModuleQmlPrivate;
0018 
0019 namespace KQuickAddons
0020 {
0021 class ConfigModule;
0022 }
0023 
0024 class KCModuleQml : public KCModule
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     KCModuleQml(std::unique_ptr<KQuickAddons::ConfigModule> configModule, QWidget *parent, const QVariantList &args);
0030     ~KCModuleQml() override;
0031 
0032     QString quickHelp() const override;
0033 #if KCONFIGWIDGETS_BUILD_DEPRECATED_SINCE(5, 90)
0034     const KAboutData *aboutData() const override;
0035 #endif
0036 
0037 public Q_SLOTS:
0038     void load() override;
0039     void save() override;
0040     void defaults() override;
0041 
0042 protected:
0043     void focusInEvent(QFocusEvent *event) override;
0044     QSize sizeHint() const override;
0045     bool eventFilter(QObject *watched, QEvent *event) override;
0046 
0047 private:
0048     KCModuleQmlPrivate *const d;
0049 
0050     Q_PRIVATE_SLOT(d, void syncCurrentIndex())
0051 };
0052 
0053 #endif