KReport

KReportSectionData.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  * Copyright (C) 2010-2018 JarosÅ‚aw Staniek <[email protected]>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 
21 #ifndef KREPORTSECTIONDATA_H
22 #define KREPORTSECTIONDATA_H
23 
24 #include "KReportUnit.h"
25 
26 #include <KPropertySet>
27 
28 #include <QColor>
29 
30 class KReportItemBase;
31 class KReportDocument;
32 class QDomElement;
33 
34 namespace Scripting
35 {
36 class Section;
37 }
38 
39 /**
40  * KReportSectionData is used to store the information about a specific report section
41  *
42  * A section has a name, type, unit and optionally extra data.
43  */
44 class KREPORT_EXPORT KReportSectionData : public QObject
45 {
46  Q_OBJECT
47 public:
48  enum class Type {
49  None,
50  PageHeaderFirst,
51  PageHeaderOdd,
52  PageHeaderEven,
53  PageHeaderLast,
54  PageHeaderAny,
55  ReportHeader,
56  ReportFooter,
57  PageFooterFirst,
58  PageFooterOdd,
59  PageFooterEven,
60  PageFooterLast,
61  PageFooterAny,
62  GroupHeader,
63  GroupFooter,
64  Detail
65  };
66 
67  explicit KReportSectionData(QObject* parent = nullptr);
68 
69  explicit KReportSectionData(const QDomElement &elemSource, QObject *parent = nullptr);
70 
71  ~KReportSectionData() override;
72 
73  KReportUnit unit() const;
74 
75  void setUnit(const KReportUnit &u);
76 
77  /**
78  * Returns property set for this section
79  *
80  * @since 3.1
81  */
82  KPropertySet* propertySet();
83 
84  /**
85  * @overload
86  */
87  const KPropertySet* propertySet() const;
88 
89  bool isValid() const;
90 
91  qreal height() const;
92 
93  void setHeight(qreal ptHeight);
94 
95  QList<KReportItemBase*> objects() const;
96 
97  QString name() const;
98 
99  QColor backgroundColor() const;
100 
101  Type type() const;
102 
103  static KReportSectionData::Type sectionTypeFromString(const QString& s);
104  static QString sectionTypeString(KReportSectionData::Type type);
105 
106 private:
107  void setBackgroundColor(const QColor &color);
108  void setHeight(qreal ptHeight, KProperty::ValueOptions options);
109  KReportItemBase* object(int index);
110 
112  class Private;
113  Private * const d;
114 
115  friend class Scripting::Section;
116  friend class KReportDesignerSection;
117 };
118 
119 #endif
Base class for items that are drawn syncronously.
This class is the base to all Report Section's visual representation.
Converts between different units.
Definition: KReportUnit.h:70
KReportSectionData is used to store the information about a specific report section.
Field item script interface.
Top level report document definition. A KReportDocment defines the design of a document,...
Q_DISABLE_COPY(Class)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Nov 28 2023 04:10:24 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.