KReport

KReportDesignerItemBase.h
1 /* This file is part of the KDE project
2  * Copyright (C) 2001-2007 by OpenMFG, LLC ([email protected])
3  * Copyright (C) 2007-2008 by Adam Pigg ([email protected])
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 /*
20  * This file contains all the Report Entity classes. Each one is a
21  * derivative of ReportEntity, which in turn is derived from QCanvasItem.
22  */
23 
24 #ifndef KREPORTDESIGNERITEMBASE_H
25 #define KREPORTDESIGNERITEMBASE_H
26 
27 #include <QGraphicsItem>
28 
29 #include "KReportItemBase.h"
30 
31 class QDomDocument;
32 class QDomElement;
33 
34 class KReportDesigner;
35 
36 /*!
37  * @brief Base class for report items used within the designer GUI.
38 */
39 class KREPORT_EXPORT KReportDesignerItemBase
40 {
41 public:
42  virtual ~KReportDesignerItemBase();
43 
44  static void buildXML(QGraphicsItem * item, QDomDocument *doc, QDomElement *parent);
45  virtual void buildXML(QDomDocument *doc, QDomElement *parent) = 0;
46 
47  static void buildXMLRect(QDomDocument *doc, QDomElement *entity, KReportItemBase *i);
48  static void buildXMLTextStyle(QDomDocument *doc, QDomElement *entity, const KReportTextStyleData &ts);
49  static void buildXMLLineStyle(QDomDocument *doc, QDomElement *entity, const KReportLineStyle &ls);
50 
51  virtual KReportDesignerItemBase* clone() = 0;
52  virtual void move(const QPointF&) = 0;
53 
54  KReportDesigner* designer() const;
55  void setDesigner(KReportDesigner* rd);
56 
57  static void addPropertyAsAttribute(QDomElement* e, KProperty* p);
58 
59 protected:
61  QString dataSourceAndObjectTypeName(const QString &dataSource,
62  const QString &objectTypeName) const;
63 
64  /**
65  * @brief Updates the text that is shown for the item in the report designer
66  * If itemDataSource is set then it is preferred over itemStaticValue
67  * itemType is appended to the end of the text
68  *
69  * @param itemDataSource source field property
70  * @param itemStaticValue value property
71  * @param itemType type of item
72  * @return void
73  */
74  void updateRenderText(const QString &itemDataSource, const QString &itemStaticValue, const QString &itemType);
75  KReportItemBase *item() const;
76 
77  void setRenderText(const QString &text);
78  QString renderText() const;
79 
80 private:
81  Q_DISABLE_COPY(KReportDesignerItemBase)
82  class Private;
83  Private * const d;
84 };
85 
86 #endif
87 
Base class for items that are drawn syncronously.
The KReportLineStyle class represents line style.
The ReportDesigner is the main widget for designing a report.
Base class for report items used within the designer GUI.
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Fri Aug 12 2022 04:04:11 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.