File indexing completed on 2024-05-05 04:43:23

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 "KReportRendererBase.h"
0021 #include "KReportScreenRenderer_p.h"
0022 #include "KReportPrintRenderer_p.h"
0023 #include "KReportKSpreadRenderer.h"
0024 #include "KReportHTMLTableRenderer_p.h"
0025 #include "KReportHTMLCSSRenderer_p.h"
0026 //! @todo port #include "KReportODTRenderer.h"
0027 //! @todo port #include "KOdtFrameReportRenderer.h"
0028 
0029 class Q_DECL_HIDDEN KReportRendererContext::Private 
0030 {
0031 public:
0032     Private();
0033     ~Private();
0034     QUrl destinationUrl;
0035     QPainter *painter = nullptr;
0036     QPrinter *printer = nullptr;    
0037 };
0038 
0039 KReportRendererContext::Private::Private()
0040 {
0041 }
0042 
0043 KReportRendererContext::Private::~Private()
0044 {
0045 }
0046 
0047 
0048 KReportRendererContext::KReportRendererContext()
0049  : d(new Private())
0050 {
0051 }
0052 
0053 KReportRendererContext::~KReportRendererContext()
0054 {
0055     delete d;
0056 }
0057 
0058 QPainter * KReportRendererContext::painter() const
0059 {
0060     return d->painter;
0061 }
0062 
0063 QPrinter * KReportRendererContext::printer() const
0064 {
0065     return d->printer;
0066 }
0067 
0068 
0069 QPainter * KReportRendererContext::painter()
0070 {
0071     return d->painter;
0072 }
0073 
0074 QPrinter * KReportRendererContext::printer()
0075 {
0076     return d->printer;
0077 }
0078 
0079 void KReportRendererContext::setUrl(const QUrl& url)
0080 {
0081     d->destinationUrl = url;
0082 }
0083 
0084 void KReportRendererContext::setPainter(QPainter* painter)
0085 {
0086     d->painter = painter;
0087 }
0088 
0089 void KReportRendererContext::setPrinter(QPrinter* printer)
0090 {
0091     d->printer = printer;
0092 }
0093 
0094 QUrl KReportRendererContext::url() const
0095 {
0096     return d->destinationUrl;
0097 }
0098 
0099 
0100 KReportRendererBase::KReportRendererBase()
0101 {
0102 }
0103 
0104 KReportRendererBase::~KReportRendererBase()
0105 {
0106 }
0107 
0108 class KReportRendererFactory::Private 
0109 {
0110 public:
0111     bool dummy = true;
0112 };
0113 
0114 KReportRendererFactory::KReportRendererFactory() : d(new Private())
0115 {
0116 }
0117 
0118 KReportRendererFactory::~KReportRendererFactory()
0119 {
0120     delete d;
0121 }
0122 
0123 KReportRendererBase* KReportRendererFactory::createInstance(const QString& key)
0124 {
0125     const QString lowerKey = key.toLower();
0126     if (lowerKey == QLatin1String("screen")) {
0127         return new KReportPrivate::ScreenRenderer();
0128     }
0129     if (lowerKey == QLatin1String("print")) {
0130         return new KReportPrivate::PrintRenderer();
0131     }
0132 //! @todo port
0133 #if 0
0134     if (lowerKey == QLatin1String("ods")) {
0135         return new KReportKSpreadRenderer();
0136     }
0137 #endif
0138     if (lowerKey == QLatin1String("htmltable")) {
0139         return new KReportPrivate::HTMLTableRenderer();
0140     }
0141     if (lowerKey == QLatin1String("htmlcss")) {
0142         return new KReportPrivate::HTMLCSSRenderer();
0143     }
0144 //! @todo port
0145 #if 0
0146     if (lowerKey == QLatin1String("odttable") || lowerKey == QLatin1String("odt")) {
0147         return new KReportODTRenderer();
0148     }
0149     if (lowerKey == QLatin1String("odtframes")) {
0150         return new KReportOdtFrameReportRenderer();
0151     }
0152 #endif
0153     return nullptr;
0154 }