DtkDeclarative
DTK Declarative module
载入中...
搜索中...
未找到
dlicenseinfoprovider_p.h
1// SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#pragma once
6
7#include <dtkcore_global.h>
8#include <dtkdeclarative_global.h>
9
10#include <QQmlParserStatus>
11#include <QtQml/qqml.h>
12
13#include <DLicenseInfo>
14
15DQUICK_BEGIN_NAMESPACE
16DCORE_USE_NAMESPACE
17
18class DLicenseInfoProvider : public QObject, public QQmlParserStatus
19{
20 Q_OBJECT
21 Q_INTERFACES(QQmlParserStatus)
22#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
23 QML_NAMED_ELEMENT(LicenseInfoProvider)
24#endif
25
26 Q_PROPERTY(QVariantList licenseList READ licenseList NOTIFY licenseListChanged)
27 Q_PROPERTY(QString path READ path WRITE setPath NOTIFY pathChanged)
28 Q_PROPERTY(bool valid READ isValid NOTIFY validChanged)
29
30public:
31 explicit DLicenseInfoProvider(QObject *parent = nullptr);
32 ~DLicenseInfoProvider() override;
33
34 QVariantList licenseList() const;
35
36 // path to a custom license JSON file
37 QString path() const;
38 void setPath(const QString &path);
39
40 bool isValid() const;
41 void setValid(bool valid);
42
43 Q_INVOKABLE QString licenseContent(const QString &licenseName);
44
45Q_SIGNALS:
46 void pathChanged();
47 void validChanged();
48 void licenseListChanged();
49
50private:
51 void classBegin() override {};
52 void componentComplete() override;
53
54private:
55 DLicenseInfo m_licenseInfo;
56 QVariantList m_componentInfoList;
57 QString m_path;
58 bool m_valid = false;
59};
60
61DQUICK_END_NAMESPACE