umbrello  2.32.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
textblock.h
Go to the documentation of this file.
1 /***************************************************************************
2  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2003 Brian Thomas <thomas@mail630.gsfc.nasa.gov> *
8  * copyright (C) 2004-2020 *
9  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
10  ***************************************************************************/
11 
12 #ifndef TEXTBLOCK_H
13 #define TEXTBLOCK_H
14 
15 #include <QDomDocument>
16 #include <QDomElement>
17 #include <QObject>
18 #include <QXmlStreamWriter>
19 
20 class CodeDocument;
21 class QXmlStreamWriter;
22 
26 class TextBlock
27 {
29  friend class ClassifierCodeDocument;
30 public:
31 
32  explicit TextBlock(CodeDocument * parent, const QString & text = QString());
33  virtual ~TextBlock();
34 
35  void setText(const QString & text);
36  QString getText() const;
37  void appendText(const QString & text);
38 
39  void setTag(const QString & value);
40  QString getTag() const;
41 
43 
44  void setWriteOutText(bool write);
45  bool getWriteOutText() const;
46 
47  void setIndentationLevel(int level);
48  int getIndentationLevel() const;
49 
50  QString getIndentationString(int level = 0) const;
51 
52  static QString getIndentation();
53 
54  static QString getNewLineEndingChars();
55 
56  static QString formatMultiLineText(const QString & work, const QString & linePrefix,
57  const QString & breakStr,
58  bool addBreak = true, bool lastLineHasBreak = true);
59 
60  virtual QString unformatText(const QString & text, const QString & indent = QString());
61 
62  virtual QString toString() const;
63 
64  static QString encodeText(const QString & text, const QString & endLine);
65  static QString decodeText(const QString & text, const QString & endLine);
66 
72  virtual void saveToXMI1(QXmlStreamWriter& writer) = 0;
73 
78  virtual void loadFromXMI1(QDomElement & root) = 0;
79 
80  bool canDelete() const;
81 
82  virtual void setAttributesFromObject(TextBlock * obj);
83 
84  virtual QString getNewEditorLine(int amount = 0);
85 
86  virtual int firstEditableLine();
87  virtual int lastEditableLine();
88 
89  friend QDebug operator<<(QDebug os, const TextBlock& obj);
90 
91 protected:
92 
93  void setCanDelete(bool canDelete);
94 
95  virtual void release();
96 
97  virtual void setAttributesOnNode(QXmlStreamWriter& writer);
98  virtual void setAttributesFromNode(QDomElement & root);
99 
100 private:
101 
102  QString m_text; //< The actual text of this code block.
103  QString m_tag;
105  bool m_writeOutText; //< Flag to write the text of this TextBlock into a file.
108 
109 };
110 
111 #endif // TEXTBLOCK_H
Definition: classifiercodedocument.h:33
Definition: codedocument.h:34
Definition: codegenobjectwithtextblocks.h:33
Definition: textblock.h:27
virtual QString unformatText(const QString &text, const QString &indent=QString())
Definition: textblock.cpp:253
static QString decodeText(const QString &text, const QString &endLine)
Definition: textblock.cpp:393
int getIndentationLevel() const
Definition: textblock.cpp:163
QString m_tag
Definition: textblock.h:103
virtual int firstEditableLine()
Definition: textblock.cpp:215
static QString getNewLineEndingChars()
Definition: textblock.cpp:172
virtual void release()
Definition: textblock.cpp:275
void setText(const QString &text)
Definition: textblock.cpp:80
void appendText(const QString &text)
Definition: textblock.cpp:89
static QString formatMultiLineText(const QString &work, const QString &linePrefix, const QString &breakStr, bool addBreak=true, bool lastLineHasBreak=true)
Definition: textblock.cpp:288
void setIndentationLevel(int level)
Definition: textblock.cpp:152
virtual QString toString() const
Definition: textblock.cpp:405
void setWriteOutText(bool write)
Definition: textblock.cpp:131
bool m_canDelete
Definition: textblock.h:104
static QString getIndentation()
Definition: textblock.cpp:182
bool canDelete() const
Definition: textblock.cpp:61
virtual void setAttributesFromNode(QDomElement &root)
Definition: textblock.cpp:359
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: textblock.cpp:322
virtual QString getNewEditorLine(int amount=0)
Definition: textblock.cpp:240
CodeDocument * m_parentDocument
Definition: textblock.h:107
QString getText() const
Definition: textblock.cpp:99
virtual ~TextBlock()
Definition: textblock.cpp:42
virtual void saveToXMI1(QXmlStreamWriter &writer)=0
QString getIndentationString(int level=0) const
Definition: textblock.cpp:193
QString getTag() const
Definition: textblock.cpp:110
CodeDocument * getParentDocument() const
Definition: textblock.cpp:70
TextBlock(CodeDocument *parent, const QString &text=QString())
Definition: textblock.cpp:28
friend QDebug operator<<(QDebug os, const TextBlock &obj)
Definition: textblock.cpp:420
QString m_text
Definition: textblock.h:102
virtual void loadFromXMI1(QDomElement &root)=0
int m_indentationLevel
Definition: textblock.h:106
void setTag(const QString &value)
Definition: textblock.cpp:121
void setCanDelete(bool canDelete)
Definition: textblock.cpp:50
bool m_writeOutText
Definition: textblock.h:105
bool getWriteOutText() const
Definition: textblock.cpp:141
static QString encodeText(const QString &text, const QString &endLine)
Definition: textblock.cpp:379
virtual void setAttributesFromObject(TextBlock *obj)
Definition: textblock.cpp:345
virtual int lastEditableLine()
Definition: textblock.cpp:223