#include "bands/lrdataband.h" #include "bands/lrgroupbands.h" #include "bands/lrpagefooter.h" #include "bands/lrpageheader.h" #include "bands/lrreportheader.h" #include "bands/lrreportfooter.h" #include "bands/lrsubdetailband.h" #include "bands/lrtearoffband.h" #include "items/lrtextitem.h" #ifdef HAVE_ZINT #include "items/lrbarcodeitem.h" #endif #include "items/lrhorizontallayout.h" #include "items/lrimageitem.h" #include "items/lrshapeitem.h" #include "items/lrchartitem.h" #include "lrdesignelementsfactory.h" #ifdef HAVE_SVG #include "items/lrsvgitem.h" #include "objectinspector/propertyItems/lrsvgpropitem.h" #endif #ifdef HAVE_REPORT_DESIGNER #include "objectinspector/lrobjectpropitem.h" #include "objectinspector/propertyItems/lrboolpropitem.h" #include "objectinspector/propertyItems/lrcolorpropitem.h" #include "objectinspector/propertyItems/lrcontentpropitem.h" #include "objectinspector/propertyItems/lrdatasourcepropitem.h" #include "objectinspector/propertyItems/lrenumpropitem.h" #include "objectinspector/propertyItems/lrflagspropitem.h" #include "objectinspector/propertyItems/lrfontpropitem.h" #include "objectinspector/propertyItems/lrgroupfieldpropitem.h" #include "objectinspector/propertyItems/lrimagepropitem.h" #include "objectinspector/propertyItems/lrintpropitem.h" #include "objectinspector/propertyItems/lrqrealpropitem.h" #include "objectinspector/propertyItems/lrrectproptem.h" #include "objectinspector/propertyItems/lrstringpropitem.h" #include "items/lralignpropitem.h" #include "items/lrsubitemparentpropitem.h" #endif #include "serializators/lrxmlbasetypesserializators.h" #include "serializators/lrxmlqrectserializator.h" #include "serializators/lrxmlserializatorsfactory.h" #include "lrexportersfactory.h" #include "lrexporterintf.h" #include "exporters/lrpdfexporter.h" #ifdef HAVE_QTXLSX #include "exporters/lrexcelexporter.h" #endif void initResources(){ Q_INIT_RESOURCE(report); #ifdef HAVE_REPORT_DESIGNER Q_INIT_RESOURCE(lobjectinspector); Q_INIT_RESOURCE(lrdatabrowser); Q_INIT_RESOURCE(items); Q_INIT_RESOURCE(lrscriptbrowser); Q_INIT_RESOURCE(translationeditor); Q_INIT_RESOURCE(dialogdesigner); #endif } namespace LimeReport{ BaseDesignIntf * createDataBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::DataBand(owner,parent); } BaseDesignIntf * createHeaderDataBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::DataHeaderBand(owner,parent); } BaseDesignIntf * createFooterDataBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::DataFooterBand(owner,parent); } BaseDesignIntf* createGroupHeaderBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::GroupBandHeader(owner,parent); } BaseDesignIntf * createGroupFooterBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::GroupBandFooter(owner,parent); } BaseDesignIntf * createPageHeaderBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::PageHeader(owner,parent); } BaseDesignIntf * createPageFooterBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::PageFooter(owner,parent); } BaseDesignIntf * createSubDetailBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::SubDetailBand(owner,parent); } BaseDesignIntf * createSubDetailHeaderBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::SubDetailHeaderBand(owner,parent); } BaseDesignIntf * createSubDetailFooterBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::SubDetailFooterBand(owner,parent); } BaseDesignIntf * createTearOffBand(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::TearOffBand(owner,parent); } BaseDesignIntf * createTextItem(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new LimeReport::TextItem(owner,parent); } #ifdef HAVE_ZINT BaseDesignIntf * createBarcodeItem(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new BarcodeItem(owner,parent); } #endif #ifdef HAVE_SVG BaseDesignIntf* createSVGItem(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new SVGItem(owner,parent); } #endif BaseDesignIntf* createHLayout(QObject *owner, LimeReport::BaseDesignIntf *parent) { return new HorizontalLayout(owner, parent); } BaseDesignIntf* createImageItem(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new ImageItem(owner,parent); } BaseDesignIntf* createShapeItem(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new ShapeItem(owner,parent); } BaseDesignIntf* createChartItem(QObject* owner, LimeReport::BaseDesignIntf* parent){ return new ChartItem(owner,parent); } void initReportItems(){ initResources(); DesignElementsFactory::instance().registerCreator( "TextItem", LimeReport::ItemAttribs(QObject::tr("Text Item"),"TextItem"), createTextItem ); #ifdef HAVE_ZINT DesignElementsFactory::instance().registerCreator( "BarcodeItem", LimeReport::ItemAttribs(QObject::tr("Barcode Item"),"Item"), createBarcodeItem ); #endif DesignElementsFactory::instance().registerCreator( "HLayout", LimeReport::ItemAttribs(QObject::tr("HLayout"), LimeReport::Const::bandTAG), createHLayout ); DesignElementsFactory::instance().registerCreator( "ImageItem", LimeReport::ItemAttribs(QObject::tr("Image Item"),"Item"), createImageItem ); #ifdef HAVE_SVG DesignElementsFactory::instance().registerCreator( "SVGItem", LimeReport::ItemAttribs(QObject::tr("SVG Item"),"Item"), createSVGItem ); #endif DesignElementsFactory::instance().registerCreator( "ShapeItem", LimeReport::ItemAttribs(QObject::tr("Shape Item"),"Item"), createShapeItem ); DesignElementsFactory::instance().registerCreator( "ChartItem", LimeReport::ItemAttribs(QObject::tr("Chart Item"),"Item"), createChartItem ); DesignElementsFactory::instance().registerCreator( "Data", LimeReport::ItemAttribs(QObject::tr("Data"),LimeReport::Const::bandTAG), createDataBand ); DesignElementsFactory::instance().registerCreator( "DataHeader", LimeReport::ItemAttribs(QObject::tr("DataHeader"),LimeReport::Const::bandTAG), createHeaderDataBand ); DesignElementsFactory::instance().registerCreator( "DataFooter", LimeReport::ItemAttribs(QObject::tr("DataFooter"),LimeReport::Const::bandTAG), createFooterDataBand ); DesignElementsFactory::instance().registerCreator( "GroupHeader", LimeReport::ItemAttribs(QObject::tr("GroupHeader"),LimeReport::Const::bandTAG), createGroupHeaderBand ); DesignElementsFactory::instance().registerCreator( "GroupFooter", LimeReport::ItemAttribs(QObject::tr("GroupFooter"),LimeReport::Const::bandTAG), createGroupFooterBand ); DesignElementsFactory::instance().registerCreator( "PageFooter", LimeReport::ItemAttribs(QObject::tr("Page Footer"),LimeReport::Const::bandTAG), createPageFooterBand ); DesignElementsFactory::instance().registerCreator( "PageHeader", LimeReport::ItemAttribs(QObject::tr("Page Header"),LimeReport::Const::bandTAG), createPageHeaderBand ); DesignElementsFactory::instance().registerCreator( "SubDetail", LimeReport::ItemAttribs(QObject::tr("SubDetail"),LimeReport::Const::bandTAG), createSubDetailBand ); DesignElementsFactory::instance().registerCreator( "SubDetailHeader", LimeReport::ItemAttribs(QObject::tr("SubDetailHeader"),LimeReport::Const::bandTAG), createSubDetailHeaderBand ); DesignElementsFactory::instance().registerCreator( "SubDetailFooter", LimeReport::ItemAttribs(QObject::tr("SubDetailFooter"),LimeReport::Const::bandTAG), createSubDetailFooterBand ); DesignElementsFactory::instance().registerCreator( "TearOffBand", LimeReport::ItemAttribs(QObject::tr("Tear-off Band"),LimeReport::Const::bandTAG), createTearOffBand ); } #ifdef HAVE_REPORT_DESIGNER ObjectPropItem * createBoolPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::BoolPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createColorPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new ColorPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createContentPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new ContentPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createDatasourcePropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::DatasourcePropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem* createFieldPropItem(QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly){ return new LimeReport::FieldPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createEnumPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::EnumPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createFlagsPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::FlagsPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createFontPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::FontPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem* createGroupFieldPropItem(QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly){ return new LimeReport::GroupFieldPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createImagePropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::ImagePropItem(object, objects, name, displayName, data, parent, readonly); } #ifdef HAVE_SVG ObjectPropItem * createSVGPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::SvgPropItem(object, objects, name, displayName, data, parent, readonly); } #endif ObjectPropItem * createIntPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::IntPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createQRealPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::QRealPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createReqtItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly ){ return new LimeReport::RectPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createReqtMMItem( QObject*object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly ){ return new LimeReport::RectUnitPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createStringPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::StringPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createAlignItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly ){ return new LimeReport::AlignmentPropItem(object, objects, name, displayName, data, parent, readonly); } ObjectPropItem * createLocationPropItem( QObject *object, LimeReport::ObjectPropItem::ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& data, LimeReport::ObjectPropItem* parent, bool readonly) { return new LimeReport::ItemLocationPropItem(object, objects, name, displayName, data, parent, readonly); } void initObjectInspectorProperties() { ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("bool",""),QObject::tr("bool"),createBoolPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("QColor",""),QObject::tr("QColor"),createColorPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("content","LimeReport::TextItem"),QObject::tr("content"),createContentPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("datasource","LimeReport::DataBandDesignIntf"),QObject::tr("datasource"),createDatasourcePropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("datasource","LimeReport::ImageItem"),QObject::tr("datasource"),createDatasourcePropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("field","LimeReport::ImageItem"),QObject::tr("field"),createFieldPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("datasource","LimeReport::SVGItem"),QObject::tr("datasource"),createDatasourcePropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("field","LimeReport::SVGItem"),QObject::tr("field"),createFieldPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("enum",""),QObject::tr("enum"),createEnumPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("flags",""),QObject::tr("flags"),createFlagsPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("QFont",""),QObject::tr("QFont"),createFontPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("groupFieldName","LimeReport::GroupBandHeader"),QObject::tr("field"),createGroupFieldPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("QImage",""),QObject::tr("QImage"),createImagePropItem ); #ifdef HAVE_SVG ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("image","LimeReport::SVGItem"),QObject::tr("image"),createSVGPropItem ); #endif ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("int",""),QObject::tr("int"),createIntPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("qreal",""),QObject::tr("qreal"),createQRealPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("double",""),QObject::tr("qreal"),createQRealPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("QRect",""),QObject::tr("QRect"),createReqtItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("QRectF",""),QObject::tr("QRectF"),createReqtItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("geometry","LimeReport::BaseDesignIntf"),QObject::tr("geometry"),createReqtMMItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("QString",""),QObject::tr("QString"),createStringPropItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("alignment","LimeReport::TextItem"),QObject::tr("alignment"),createAlignItem ); ObjectPropFactory::instance().registerCreator( LimeReport::APropIdent("itemLocation","LimeReport::ItemDesignIntf"),QObject::tr("itemLocation"),createLocationPropItem ); } #endif SerializatorIntf * createIntSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlIntSerializator(doc,node); } SerializatorIntf * createQRealSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlQRealSerializator(doc,node); } SerializatorIntf * createQStringSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlQStringSerializator(doc,node); } SerializatorIntf * createEnumAndFlagsSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlEnumAndFlagsSerializator(doc,node); } SerializatorIntf * createBoolSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlBoolSerializator(doc,node); } SerializatorIntf * createFontSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlFontSerializator(doc,node); } SerializatorIntf * createQSizeFSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlQSizeFSerializator(doc,node); } SerializatorIntf * createQImageSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlQImageSerializator(doc,node); } SerializatorIntf * createQColorSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlColorSerializator(doc,node); } SerializatorIntf* createQByteArraySerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlQByteArraySerializator(doc,node); } SerializatorIntf* createQVariantSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XmlQVariantSerializator(doc,node); } SerializatorIntf * createQRectSerializator(QDomDocument *doc, QDomElement *node){ return new LimeReport::XMLQRectSerializator(doc,node); } void initSerializators() { XMLAbstractSerializatorFactory::instance().registerCreator("QString", createQStringSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("int", createIntSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("enumAndFlags",createEnumAndFlagsSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("bool", createBoolSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("QFont", createFontSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("QSizeF", createQSizeFSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("QImage", createQImageSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("qreal", createQRealSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("double", createQRealSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("QColor", createQColorSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("QByteArray", createQByteArraySerializator); XMLAbstractSerializatorFactory::instance().registerCreator("QVariant", createQVariantSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("QRect", createQRectSerializator); XMLAbstractSerializatorFactory::instance().registerCreator("QRectF", createQRectSerializator); } LimeReport::ReportExporterInterface* createPDFExporter(ReportEnginePrivate* parent){ return new LimeReport::PDFExporter(parent); } #ifdef HAVE_QTXLSX LimeReport::ReportExporterInterface* createExcelExporter(ReportEnginePrivate* parent){ return new LimeReport::ExcelExporter(parent); } #endif void initExporters() { ExportersFactory::instance().registerCreator( "PDF", LimeReport::ExporterAttribs(QObject::tr("Export to PDF"), "PDFExporter"), createPDFExporter ); #ifdef HAVE_QTXLSX ExportersFactory::instance().registerCreator( "XLSX", LimeReport::ExporterAttribs(QObject::tr("Export to xlsx"),"ExcelExporter"), createExcelExporter ); #endif } } //namespace LimeReport