File indexing completed on 2024-05-05 05:28:25

0001 /*
0002 
0003     SPDX-FileCopyrightText: 2019 Nicolas Fella <nicolas.fella@gmx.de>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include <KQuickConfigModule>
0011 #include <QFileInfo>
0012 #include <QObject>
0013 
0014 class Module : public QObject
0015 {
0016     Q_OBJECT
0017     Q_PROPERTY(KQuickConfigModule *kcm READ kcm NOTIFY kcmChanged)
0018     Q_PROPERTY(QString path READ path WRITE setPath NOTIFY pathChanged)
0019     Q_PROPERTY(QString name READ name WRITE setPath NOTIFY nameChanged)
0020     Q_PROPERTY(bool valid READ valid NOTIFY validChanged)
0021 
0022 public:
0023     KQuickConfigModule *kcm() const;
0024     QString path() const;
0025     void setPath(const QString &name);
0026 
0027     QString name()
0028     {
0029         return QFileInfo(m_path).baseName();
0030     }
0031 
0032     bool valid();
0033 
0034 Q_SIGNALS:
0035     void kcmChanged();
0036     void pathChanged();
0037     void nameChanged();
0038     void validChanged();
0039 
0040 private:
0041     KQuickConfigModule *m_kcm = nullptr;
0042     QString m_path;
0043     bool m_valid = false;
0044 };