File indexing completed on 2024-05-19 04:44:32

0001 /* This file is part of the KDE project
0002    Copyright (C) 2010 by Adam Pigg (adam@piggz.co.uk)
0003 
0004    This library is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU Library General Public
0006    License as published by the Free Software Foundation; either
0007    version 2.1 of the License, or (at your option) any later version.
0008 
0009    This library is distributed in the hope that it will be useful,
0010    but WITHOUT ANY WARRANTY; without even the implied warranty of
0011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012    Library General Public License for more details.
0013 
0014    You should have received a copy of the GNU Library General Public License
0015    along with this library; see the file COPYING.LIB.  If not, write to
0016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017    Boston, MA 02110-1301, USA.
0018 */
0019 
0020 #include "KReportFieldPlugin.h"
0021 #include "KReportItemField.h"
0022 #include "KReportDesignerItemField.h"
0023 #include "KReportPluginMetaData.h"
0024 #ifdef KREPORT_SCRIPTING
0025 #include "KReportScriptField.h"
0026 #endif
0027 
0028 K_PLUGIN_CLASS_WITH_JSON(KReportFieldPlugin, "field.json")
0029 
0030 KReportFieldPlugin::KReportFieldPlugin(QObject *parent, const QVariantList &args)
0031     : KReportPluginInterface(parent, args)
0032 {
0033 }
0034 
0035 KReportFieldPlugin::~KReportFieldPlugin()
0036 {
0037 
0038 }
0039 
0040 QObject* KReportFieldPlugin::createRendererInstance(const QDomNode& element)
0041 {
0042     return new KReportItemField(element);
0043 }
0044 
0045 QObject* KReportFieldPlugin::createDesignerInstance(const QDomNode& element, KReportDesigner* designer, QGraphicsScene* scene)
0046 {
0047     return new KReportDesignerItemField(element, designer, scene);
0048 }
0049 
0050 QObject* KReportFieldPlugin::createDesignerInstance(KReportDesigner* designer, QGraphicsScene* scene, const QPointF& pos)
0051 {
0052     return new KReportDesignerItemField(designer, scene, pos);
0053 }
0054 
0055 #ifdef KREPORT_SCRIPTING
0056 QObject* KReportFieldPlugin::createScriptInstance(KReportItemBase* item)
0057 {
0058     KReportItemField *field = dynamic_cast<KReportItemField*>(item);
0059     if (field) {
0060         return new Scripting::Field(field);
0061     }
0062     return nullptr;
0063 }
0064 #endif
0065 
0066 #include "KReportFieldPlugin.moc"