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 }