MyBooks
cutereport_types.h
Go to the documentation of this file.
1 /***************************************************************************
2  * This file is part of the CuteReport project *
3  * Copyright (C) 2012-2017 by Alexander Mikhalov *
4  * alexander.mikhalov@gmail.com *
5  * *
6  ** GNU General Public License Usage **
7  * *
8  * This library is free software: you can redistribute it and/or modify *
9  * it under the terms of the GNU General Public License as published by *
10  * the Free Software Foundation, either version 3 of the License, or *
11  * (at your option) any later version. *
12  * You should have received a copy of the GNU General Public License *
13  * along with this program. If not, see <http://www.gnu.org/licenses/>. *
14  * *
15  ** GNU Lesser General Public License **
16  * *
17  * This library is free software: you can redistribute it and/or modify *
18  * it under the terms of the GNU Lesser General Public License as *
19  * published by the Free Software Foundation, either version 3 of the *
20  * License, or (at your option) any later version. *
21  * You should have received a copy of the GNU Lesser General Public *
22  * License along with this library. *
23  * If not, see <http://www.gnu.org/licenses/>. *
24  * *
25  * This library is distributed in the hope that it will be useful, *
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
28  * GNU General Public License for more details. *
29  ****************************************************************************/
30 #ifndef TYPES_H
31 #define TYPES_H
32 
33 #include <QtCore>
34 #include <QUrl>
35 
36 #include "cutereport_globals.h"
37 
38 namespace CuteReport{
39 
40 class BaseItemInterface;
41 class BandInterface;
42 
43 
46 class CUTEREPORT_EXPORTS Margins
47 {
48 public:
49  explicit Margins();
50  explicit Margins(qreal left, qreal top, qreal right, qreal bottom);
51  ~Margins();
52  qreal left() const;
53  qreal top() const;
54  qreal right() const;
55  qreal bottom() const;
56  void setLeft(qreal value);
57  void setTop(qreal value);
58  void setRight(qreal value);
59  void setBottom(qreal value);
60  void setCoords(qreal x1, qreal y1, qreal x2, qreal y2);
61 
62  bool operator ==(const Margins & margins);
63 
64 private:
65  qreal m_left;
66  qreal m_top;
67  qreal m_right;
68  qreal m_bottom;
69 };
70 
71 QDataStream &operator<<(QDataStream &s, const Margins &p);
72 QDataStream &operator>>(QDataStream &s, Margins &p);
73 
74 class CUTEREPORT_EXPORTS Units
75 {
76 public:
77  explicit Units();
78  explicit Units(qreal mm, qreal inch, int pixel);
79  ~Units();
80  void setMM(qreal value);
81  void setInch(qreal value);
82  void setPixel(int value);
83  qreal mm() const;
84  qreal inch() const;
85  int pixel() const;
86 
87 private:
88  qreal m_mm;
89  qreal m_inch;
90  int m_pixel;
91 };
92 
93 
95 enum Unit {
96  Millimeter = 0,
97  Point = 1,
98  Inch = 2,
99 // Pica = 3,
100 // Didot = 4,
101 // Cicero = 5,
102  Pixel = 6,
103  UnitNotDefined = 7,
104  UNIT_MAX = 8
105 };
106 
107 enum Frame {
108  DrawLeft = 1,
109  DrawRight = 2,
110  DrawTop = 4,
111  DrawBottom = 8
112 };
113 
114 
115 //struct ItemFrame
116 //{
117 // FrameBorderSide borderSides;
118 // QPen pen;
119 // QBrush brush;
120 //};
121 
122 
125 enum Orientation { Portrait = 0, Landscape = 1 };
126 
129  ItemModule,
130  PageModule,
135  FormModule,
136  ImportModule,
137  ExportModule,
140  InterimModule, // has no abstract API and top module should know how to use interim module
142 };
143 
144 static const int ItemViewItemPointer = 0;
145 
146 enum LogLevel {
147  LogUndefined = 0,
148  LogDebug = 1,
149  LogInfo = 2,
150  LogError = 3,
151  LogWarning = 4,
152  LogCritical = 5,
153  LogMetric = 6,
154  LOGLEVELMAXVALUE = 7
155 };
156 
157 
159  MessageUndefined = 0,
160  MessageNormal = 1,
161  MessageWarning = 2,
162  MessageError = 4
163 };
164 
165 
167  MetricGeometry = 1,
168  MetricPosition = 2,
169  MetricClick = 4,
170  MetricPress = 8,
171  MetricRelease = 16,
172  MetricDrag = 32,
173  MetricDrop = 64
174 };
175 
176 
178  RenderingTemplate = 0,
179  RenderingReport = 1,
180  RenderingReportBefore = 2, // state when pointer is switched but public API is still template kind
181 };
182 
184  RenderingNewPage = 1,
185  RenderingNormal = 2
186 };
187 
189  ResultOk = 0,
190  ResultNotDefined = 1,
191  ResultWarnings = 2,
192  ResultError = 3
193 };
194 
195 typedef QList<CuteReport::BaseItemInterface*> BaseItemsList;
196 typedef BaseItemsList* BaseItemsListPointer;
197 typedef QList<CuteReport::BandInterface*> BandsList;
198 typedef BandsList* BandsListPointer;
199 
201 
202 struct StorageObjectInfo {
203  explicit StorageObjectInfo(): size(0), type(FileUnknown){}
204  QString name;
205  QString url;
206  qint64 size;
207  StorageFileType type;
208 };
209 
210 
211 struct StorageListResult {
212  qint32 requestId;
213  QList<StorageObjectInfo> objects;
214  QString error;
215 };
216 
217 struct StorageProgress {
218  qint32 requestId;
219  int max;
220  int current;
221  QString message;
222 };
223 
224 
226  SyntaxRole = Qt::UserRole + 1,
227  ExampleRole = Qt::UserRole + 3,
228  TemplateRole = Qt::UserRole + 4,
229  DescriptionRole = Qt::UserRole + 5,
230  ReturnValueCountRole = Qt::UserRole + 6,
231  ReturnValue1Role = Qt::UserRole + 7,
232  ReturnValue2Role = Qt::UserRole + 8,
233  ReturnValue3Role = Qt::UserRole + 9,
234  ReturnValue4Role = Qt::UserRole + 10,
235  ReturnValue5Role = Qt::UserRole + 11,
236  ConstructorCountRole = Qt::UserRole + 20,
237  Constructor1Role = Qt::UserRole + 21,
238  Constructor2Role = Qt::UserRole + 22,
239  Constructor3Role = Qt::UserRole + 23,
240  Constructor4Role = Qt::UserRole + 24,
241  ParameterCountRole = Qt::UserRole + 30,
242  Parameter1Role = Qt::UserRole + 40,
243  Parameter2Role = Qt::UserRole + 41,
244  Parameter3Role = Qt::UserRole + 42,
245  Parameter4Role = Qt::UserRole + 43,
246  Parameter5Role = Qt::UserRole + 44,
247  RoleUnknown = Qt::UserRole + 100,
248 };
249 
250 
251 enum Events {
252  PageMouseBlock = QEvent::User + 100,
253  PageMouseUnblock = QEvent::User + 101,
254 };
255 
256 
257 enum StdEditor {
259 };
260 
261 typedef QPair<StdEditor, QString> StdEditorProperty;
262 typedef QList<StdEditorProperty> StdEditorPropertyList;
263 
266 
269 
270 enum InitFlag {InitData = 1, InitScript = 2 };
272 
273 class ReportInterface;
274 
275 
276 
277 struct FileDialogData {
278  QString title;
279  QString dirPath;
280  QStringList filters;
281  QString filterSelected;
282  QString fileNameSelected;
283 };
284 
286 
287 struct InternalStringData {
288 
290  : id(-1), isHTML(false), expressionType(StringHasNoExpression) {}
291 
292  explicit InternalStringData(int _id, const QString & _str, bool _isHtml)
293  : id(_id), isHTML(_isHtml), expressionType(StringHasNoExpression), str(_str) {}
294 
295  explicit InternalStringData(int _id, const QString & _str, bool _isHtml, const QString expDelimiter)
296  : id(_id), isHTML(_isHtml), expressionType(StringHasExpression),
297  expDelimiter(expDelimiter), str(_str) {}
298 
299  explicit InternalStringData(int _id, const QString & _str, bool _isHtml, StringExpressionType _expType)
300  : id(_id), isHTML(_isHtml), expressionType(_expType), str(_str) {}
301 
302  int id;
303  bool isHTML;
304  StringExpressionType expressionType;
305  QString expDelimiter;
306  QString str;
307 };
308 
309 
310 struct ScriptString {
311 
312  explicit ScriptString(ReportInterface * rpt, QObject * obj, const QString & string, bool isTextHtml = false):
313  report(rpt), object(obj), origStr(string), resultStr(string), result(true), isHtml(isTextHtml),
314  id(-1), expressionType(StringHasExpression) {}
315 
316  explicit ScriptString(ReportInterface * rpt, QObject * obj,const QString &string, const QString & expressionDelimiter, bool isTextHtml):
317  report(rpt), object(obj), origStr(string), resultStr(string), expDelimiter(expressionDelimiter),
318  result(true), isHtml(isTextHtml), id(-1), expressionType(StringHasExpression) {}
319 
320  explicit ScriptString(ReportInterface * rpt, QObject * obj,const InternalStringData &strData):
321  report(rpt), object(obj), origStr(strData.str), resultStr(strData.str), expDelimiter(strData.expDelimiter),
322  result(true), isHtml(strData.isHTML), id(strData.id), expressionType(strData.expressionType) {}
323 
325  QObject * object;
326  QString origStr;
327  QString resultStr;
328  QString expDelimiter;
329  QString format;
330  QString error;
331  bool result;
332  bool isHtml;
333  int id;
334  StringExpressionType expressionType;
335 };
336 
337 //class UserModel {
338 //public:
339 // UserModel();
340 // UserModel(QAbstractTableModel *);
341 // QAbstractTableModel * model();
342 //private:
343 // QAbstractTableModel * m_model;
344 //};
345 
346 Q_DECLARE_FLAGS(InitFlags, CuteReport::InitFlag)
347 Q_DECLARE_OPERATORS_FOR_FLAGS(CuteReport::InitFlags)
348 
349 } //namespace
350 
351 Q_DECLARE_METATYPE(CuteReport::Unit)
352 Q_DECLARE_METATYPE(CuteReport::Units)
353 Q_DECLARE_METATYPE(CuteReport::Margins)
354 Q_DECLARE_METATYPE(CuteReport::LogLevel)
355 Q_DECLARE_METATYPE(CuteReport::MessageLevel)
356 Q_DECLARE_METATYPE(CuteReport::MetricType)
357 Q_DECLARE_METATYPE(CuteReport::RenderingType)
358 Q_DECLARE_METATYPE(CuteReport::ResultValue)
359 Q_DECLARE_METATYPE(CuteReport::StorageFileType)
360 Q_DECLARE_METATYPE(CuteReport::StorageObjectInfo)
361 Q_DECLARE_METATYPE(CuteReport::StorageListResult)
362 Q_DECLARE_METATYPE(CuteReport::StorageProgress)
363 Q_DECLARE_METATYPE(CuteReport::StdEditor)
364 Q_DECLARE_METATYPE(CuteReport::StdEditorProperty)
365 Q_DECLARE_METATYPE(CuteReport::StdEditorPropertyList)
366 //Q_DECLARE_METATYPE(CuteReport::UserModel)
367 
368 
369 
370 // undeclared Qt types
371 Q_DECLARE_METATYPE(QMargins)
372 
373 #endif // TYPES_H
Definition: cutereport_types.h:271
Definition: cutereport_types.h:265
QDataStream & operator>>(QDataStream &s, Margins &p)
Definition: cutereport_types.h:200
Definition: cutereport_types.h:227
Definition: cutereport_types.h:134
Definition: cutereport_types.h:132
Definition: cutereport_types.h:268
Definition: cutereport_types.h:253
Definition: abstractpainterdelegate.h:42
Definition: cutereport_types.h:232
ItemDataRole
Definition: cutereport_types.h:225
ScriptString(ReportInterface *rpt, QObject *obj, const QString &string, const QString &expressionDelimiter, bool isTextHtml)
Definition: cutereport_types.h:316
InternalStringData(int _id, const QString &_str, bool _isHtml)
Definition: cutereport_types.h:292
InternalStringData()
Definition: cutereport_types.h:289
Definition: cutereport_types.h:217
QList< CuteReport::BaseItemInterface * > BaseItemsList
Definition: cutereport_types.h:195
Definition: cutereport_types.h:153
Definition: cutereport_types.h:192
QList< StdEditorProperty > StdEditorPropertyList
Definition: cutereport_types.h:262
Definition: cutereport_types.h:238
ScriptString(ReportInterface *rpt, QObject *obj, const QString &string, bool isTextHtml=false)
Definition: cutereport_types.h:312
Definition: cutereport_types.h:139
Definition: cutereport_types.h:111
Definition: cutereport_types.h:258
Definition: cutereport_types.h:109
BaseItemsList * BaseItemsListPointer
Definition: cutereport_types.h:196
Definition: cutereport_types.h:271
RenderingType
Definition: cutereport_types.h:177
Definition: cutereport_types.h:178
ScriptString(ReportInterface *rpt, QObject *obj, const InternalStringData &strData)
Definition: cutereport_types.h:320
Definition: cutereport_types.h:270
TODO v2: rename to ReportObject.
Definition: reportinterface.h:71
Frame
Definition: cutereport_types.h:107
ResultValue
Definition: cutereport_types.h:188
Definition: cutereport_types.h:154
Definition: cutereport_types.h:285
Definition: cutereport_types.h:185
Definition: cutereport_types.h:202
Definition: cutereport_types.h:235
Definition: cutereport_types.h:258
Definition: cutereport_types.h:245
Definition: cutereport_types.h:138
TemplateItemDetailLevel
for Designer
Definition: cutereport_types.h:268
Definition: cutereport_types.h:258
Definition: cutereport_types.h:200
Definition: cutereport_types.h:229
Definition: cutereport_types.h:150
Definition: cutereport_types.h:124
Definition: cutereport_types.h:130
Definition: cutereport_types.h:159
Definition: cutereport_types.h:140
StorageSyncStatus
Definition: cutereport_types.h:124
Definition: cutereport_types.h:162
Definition: cutereport_types.h:123
Definition: cutereport_types.h:147
Definition: cutereport_types.h:172
QDataStream & operator<<(QDataStream &s, const Margins &p)
Definition: cutereport_types.h:103
Definition: cutereport_types.h:252
Definition: cutereport_types.h:228
Definition: cutereport_types.h:168
Definition: cutereport_types.h:133
Definition: cutereport_types.h:74
Definition: cutereport_types.h:151
Definition: cutereport_types.h:241
Definition: cutereport_types.h:287
QPair< StdEditor, QString > StdEditorProperty
Definition: cutereport_types.h:261
Definition: cutereport_types.h:97
Definition: cutereport_types.h:230
ItemState
Definition: cutereport_types.h:271
Definition: cutereport_types.h:268
InternalStringData(int _id, const QString &_str, bool _isHtml, const QString expDelimiter)
Definition: cutereport_types.h:295
ModuleType
Definition: cutereport_types.h:127
Events
Definition: cutereport_types.h:251
Definition: cutereport_types.h:310
Definition: cutereport_types.h:110
Definition: cutereport_types.h:104
StdEditor
Definition: cutereport_types.h:257
Definition: cutereport_types.h:231
Definition: cutereport_types.h:148
Definition: cutereport_types.h:123
Definition: cutereport_types.h:285
Definition: cutereport_types.h:247
QList< CuteReport::BandInterface * > BandsList
Definition: cutereport_types.h:197
Definition: cutereport_types.h:226
Definition: cutereport_types.h:96
Definition: cutereport_types.h:270
Definition: cutereport_types.h:123
Definition: cutereport_types.h:167
LogLevel
Definition: cutereport_types.h:146
Definition: cutereport_types.h:124
Definition: cutereport_types.h:131
Definition: cutereport_types.h:149
Definition: cutereport_types.h:258
InternalStringData(int _id, const QString &_str, bool _isHtml, StringExpressionType _expType)
Definition: cutereport_types.h:299
Definition: cutereport_types.h:242
Definition: cutereport_types.h:268
Definition: cutereport_types.h:200
Definition: cutereport_types.h:135
Definition: cutereport_types.h:233
Definition: cutereport_types.h:161
Definition: cutereport_types.h:239
StorageObjectInfo()
Definition: cutereport_types.h:203
static const int ItemViewItemPointer
Definition: cutereport_types.h:144
Definition: cutereport_types.h:244
Definition: cutereport_types.h:240
Definition: cutereport_types.h:129
Definition: cutereport_types.h:200
Definition: cutereport_types.h:169
Definition: cutereport_types.h:170
Definition: cutereport_types.h:160
Orientation
Definition: cutereport_types.h:125
Definition: cutereport_types.h:46
Definition: cutereport_types.h:268
Definition: cutereport_types.h:265
ModuleLookupMethod
for ReportCore
Definition: cutereport_types.h:265
Definition: cutereport_types.h:200
Definition: cutereport_types.h:102
Definition: cutereport_types.h:152
MessageLevel
Definition: cutereport_types.h:158
StorageFileType
Definition: cutereport_types.h:200
ItemType
Definition: cutereport_types.h:123
Definition: cutereport_types.h:271
Definition: cutereport_types.h:136
Definition: cutereport_types.h:265
#define CUTEREPORT_EXPORTS
Definition: cutereport_globals.h:47
Definition: cutereport_types.h:141
Definition: cutereport_types.h:124
Definition: cutereport_types.h:128
Definition: cutereport_types.h:137
Definition: cutereport_types.h:234
Definition: cutereport_types.h:173
Definition: cutereport_types.h:271
Definition: cutereport_types.h:125
InitFlag
Definition: cutereport_types.h:270
Definition: cutereport_types.h:180
Unit
Definition: cutereport_types.h:95
StringExpressionType
Definition: cutereport_types.h:285
Definition: cutereport_types.h:246
Definition: cutereport_types.h:108
Definition: cutereport_types.h:236
MetricType
Definition: cutereport_types.h:166
Definition: cutereport_types.h:243
Definition: cutereport_types.h:200
Definition: cutereport_types.h:189
Definition: cutereport_types.h:184
Definition: cutereport_types.h:98
RenderingStage
Definition: cutereport_types.h:183
Definition: cutereport_types.h:237
Definition: cutereport_types.h:285
Definition: cutereport_types.h:179
Definition: cutereport_types.h:190
Definition: cutereport_types.h:277
Definition: cutereport_types.h:125
Definition: cutereport_types.h:211
BandsList * BandsListPointer
Definition: cutereport_types.h:198
Definition: cutereport_types.h:171
Definition: cutereport_types.h:191
Definition: cutereport_types.h:258
Definition: cutereport_types.h:271