File indexing completed on 2024-05-12 05:36:16

0001 // SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003 
0004 #pragma once
0005 
0006 #include <QObject>
0007 #include <QQmlEngine>
0008 #include <QQuickItem>
0009 
0010 #include <KPackage/PackageLoader>
0011 #include <KPluginMetaData>
0012 
0013 class Wizard : public QObject
0014 {
0015     Q_OBJECT
0016     Q_PROPERTY(QList<QQuickItem *> steps READ steps CONSTANT)
0017     Q_PROPERTY(bool testingMode READ testingMode NOTIFY testingModeChanged)
0018 
0019 public:
0020     Wizard(QObject *parent = nullptr, QQmlEngine *engine = nullptr);
0021 
0022     void load();
0023 
0024     void setTestingMode(bool testingMode);
0025     bool testingMode();
0026 
0027     QList<QQuickItem *> steps();
0028 
0029 public Q_SLOTS:
0030     void wizardFinished();
0031 
0032 Q_SIGNALS:
0033     void testingModeChanged();
0034 
0035 private:
0036     QList<std::pair<KPluginMetaData *, KPackage::Package>> m_modulePackages;
0037     QList<QQuickItem *> m_moduleItems;
0038 
0039     bool m_testingMode;
0040     QQmlEngine *m_engine;
0041 };