1 /* 2 plugininfo.h 3 4 This file is part of GammaRay, the Qt application inspection and 5 manipulation tool. 6 7 Copyright (C) 2014-2021 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com 8 Author: Volker Krause <volker.krause@kdab.com> 9 10 Licensees holding valid commercial KDAB GammaRay licenses may use this file in 11 accordance with GammaRay Commercial License Agreement provided with the Software. 12 13 Contact info@kdab.com if any conditions of this licensing are not clear to you. 14 15 This program is free software; you can redistribute it and/or modify 16 it under the terms of the GNU General Public License as published by 17 the Free Software Foundation, either version 2 of the License, or 18 (at your option) any later version. 19 20 This program is distributed in the hope that it will be useful, 21 but WITHOUT ANY WARRANTY; without even the implied warranty of 22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 GNU General Public License for more details. 24 25 You should have received a copy of the GNU General Public License 26 along with this program. If not, see <http://www.gnu.org/licenses/>. 27 */ 28 29 #ifndef GAMMARAY_PLUGININFO_H 30 #define GAMMARAY_PLUGININFO_H 31 32 #include <QString> 33 #include <QStringList> 34 #include <QVector> 35 #include <qplugin.h> 36 37 QT_BEGIN_NAMESPACE 38 class QJsonObject; 39 QT_END_NAMESPACE 40 41 namespace GammaRay { 42 /** Meta-data about a specific plugin. 43 * This abstracts Qt5-style embedded JSON data and Qt4-style desktop files. 44 */ 45 class PluginInfo 46 { 47 public: 48 PluginInfo(); 49 explicit PluginInfo(const QString &path); 50 explicit PluginInfo(const QStaticPlugin &staticPlugin); 51 52 QString path() const; 53 QString id() const; 54 QString interfaceId() const; 55 QStringList supportedTypes() const; 56 QString name() const; 57 bool remoteSupport() const; 58 bool isHidden() const; 59 QVector<QByteArray> selectableTypes() const; 60 61 bool isValid() const; 62 bool isStatic() const; 63 64 QObject* staticInstance() const; 65 66 private: 67 void init(); 68 void initFromJSON(const QString &path); 69 void initFromJSON(const QJsonObject& metaData); 70 71 QString m_path; 72 QStaticPlugin m_staticPlugin; 73 QString m_id; 74 QString m_interface; 75 QStringList m_supportedTypes; 76 QString m_name; 77 QVector<QByteArray> m_selectableTypes; 78 bool m_remoteSupport; 79 bool m_hidden; 80 }; 81 } 82 83 #endif // GAMMARAY_PLUGININFO_H 84