File indexing completed on 2024-04-28 04:41:57

0001 /* This file is part of the KDE project
0002    Copyright (C) 2010 by Adam Pigg (adam@piggz.co.uk)
0003    Copyright (C) 2015 Jarosław Staniek <staniek@kde.org>
0004 
0005    This library is free software; you can redistribute it and/or
0006    modify it under the terms of the GNU Library General Public
0007    License as published by the Free Software Foundation; either
0008    version 2.1 of the License, or (at your option) any later version.
0009 
0010    This library is distributed in the hope that it will be useful,
0011    but WITHOUT ANY WARRANTY; without even the implied warranty of
0012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013    Library General Public License for more details.
0014 
0015    You should have received a copy of the GNU Library General Public License
0016    along with this library; see the file COPYING.LIB.  If not, write to
0017    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0018    Boston, MA 02110-1301, USA.
0019 */
0020 
0021 #ifndef KREPORTPLUGININFO_H
0022 #define KREPORTPLUGININFO_H
0023 
0024 #include <KPluginMetaData>
0025 
0026 #include "kreport_export.h"
0027 
0028 /*!
0029  * @brief Information about a KReport plugin.
0030  */
0031 class KREPORT_EXPORT KReportPluginMetaData : public KPluginMetaData
0032 {
0033 public:
0034     ~KReportPluginMetaData();
0035 
0036     //! @return internal name of the plugin, a shortcut of pluginId()
0037     QString id() const;
0038 
0039     //! @return priority of the plugin
0040     //! Useful for user interfaces such as tool boxes.
0041     int priority() const;
0042 
0043     //! @return true if this plugin is built-in, i.e. has been provided by the KReport
0044     //! framework itself, not by a plugin file.
0045     bool isBuiltIn() const;
0046 
0047     //! @return true if this plugin is static, i.e. is compiled-in.
0048     bool isStatic() const;
0049 
0050 protected:
0051     explicit KReportPluginMetaData(const QJsonObject &metaData);
0052     explicit KReportPluginMetaData(const QPluginLoader &loader);
0053 
0054     void setBuiltIn(bool set);
0055     void setStatic(bool set);
0056 
0057     friend class KReportPluginEntry;
0058 
0059 private:
0060     Q_DISABLE_COPY(KReportPluginMetaData)
0061     class Private;
0062     Private * const d;
0063 };
0064 
0065 #endif // KREPORTPLUGININFO_H