File indexing completed on 2024-06-16 05:25:06

0001 /*
0002     This file is part of the Okteta Kasten Framework, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef STRUCTUREMETADATA_HPP
0010 #define STRUCTUREMETADATA_HPP
0011 
0012 // Qt
0013 #include <QExplicitlySharedDataPointer>
0014 #include <QMetaType>
0015 
0016 class KAboutLicense;
0017 
0018 class QString;
0019 
0020 class StructureMetaDataPrivsate;
0021 
0022 class StructureMetaData
0023 {
0024 public:
0025     StructureMetaData();
0026     explicit StructureMetaData(const QString& filename);
0027     StructureMetaData(const StructureMetaData& rhs);
0028 
0029     ~StructureMetaData();
0030 
0031     StructureMetaData& operator=(const StructureMetaData& rhs);
0032 
0033 public:
0034     bool isValid() const;
0035 
0036     QString id() const;
0037     QString name() const;
0038     QString comment() const;
0039     QString categoryId() const;
0040     QString version() const;
0041     bool hasAuthorName() const;
0042     QString authorName() const;
0043     bool hasAuthorEmailAddress() const;
0044     QString authorEmailAddress() const;
0045     bool hasIconName() const;
0046     QString iconName() const;
0047     bool hasWebsite() const;
0048     QString website() const;
0049     QString entryPath() const;
0050 
0051     const KAboutLicense& license() const;
0052 
0053 private:
0054     QExplicitlySharedDataPointer<StructureMetaDataPrivsate> d;
0055 };
0056 
0057 Q_DECLARE_TYPEINFO(StructureMetaData, Q_MOVABLE_TYPE);
0058 Q_DECLARE_METATYPE(StructureMetaData)
0059 
0060 #endif