umbrello  2.32.0
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  SPDX-License-Identifier: GPL-2.0-or-later
3 
4  SPDX-FileCopyrightText: 2003 Brian Thomas <thomas@mail630.gsfc.nasa.gov>
5  SPDX-FileCopyrightText: 2004-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
6 */
7 
8 #ifndef TEXTBLOCK_H
9 #define TEXTBLOCK_H
10 
11 #include <QDomDocument>
12 #include <QDomElement>
13 #include <QObject>
14 #include <QXmlStreamWriter>
15 
16 class CodeDocument;
17 class QXmlStreamWriter;
18 
22 class TextBlock
23 {
25  friend class ClassifierCodeDocument;
26 public:
27 
28  explicit TextBlock(CodeDocument * parent, const QString & text = QString());
29  virtual ~TextBlock();
30 
31  void setText(const QString & text);
32  QString getText() const;
33  void appendText(const QString & text);
34 
35  void setTag(const QString & value);
36  QString getTag() const;
37 
39 
40  void setWriteOutText(bool write);
41  bool getWriteOutText() const;
42 
43  void setIndentationLevel(int level);
44  int getIndentationLevel() const;
45 
46  QString getIndentationString(int level = 0) const;
47 
48  static QString getIndentation();
49 
50  static QString getNewLineEndingChars();
51 
52  static QString formatMultiLineText(const QString & work, const QString & linePrefix,
53  const QString & breakStr,
54  bool addBreak = true, bool lastLineHasBreak = true);
55 
56  virtual QString unformatText(const QString & text, const QString & indent = QString());
57 
58  virtual QString toString() const;
59 
60  static QString encodeText(const QString & text, const QString & endLine);
61  static QString decodeText(const QString & text, const QString & endLine);
62 
68  virtual void saveToXMI1(QXmlStreamWriter& writer) = 0;
69 
74  virtual void loadFromXMI1(QDomElement & root) = 0;
75 
76  bool canDelete() const;
77 
78  virtual void setAttributesFromObject(TextBlock * obj);
79 
80  virtual QString getNewEditorLine(int amount = 0);
81 
82  virtual int firstEditableLine();
83  virtual int lastEditableLine();
84 
85  friend QDebug operator<<(QDebug os, const TextBlock& obj);
86 
87 protected:
88 
89  void setCanDelete(bool canDelete);
90 
91  virtual void release();
92 
93  virtual void setAttributesOnNode(QXmlStreamWriter& writer);
94  virtual void setAttributesFromNode(QDomElement & root);
95 
96 private:
97 
98  QString m_text; //< The actual text of this code block.
99  QString m_tag;
101  bool m_writeOutText; //< Flag to write the text of this TextBlock into a file.
104 
105 };
106 
107 #endif // TEXTBLOCK_H
Definition: classifiercodedocument.h:29
Definition: codedocument.h:30
Definition: codegenobjectwithtextblocks.h:29
Definition: textblock.h:23
virtual QString unformatText(const QString &text, const QString &indent=QString())
Definition: textblock.cpp:249
static QString decodeText(const QString &text, const QString &endLine)
Definition: textblock.cpp:389
int getIndentationLevel() const
Definition: textblock.cpp:159
QString m_tag
Definition: textblock.h:99
virtual int firstEditableLine()
Definition: textblock.cpp:211
static QString getNewLineEndingChars()
Definition: textblock.cpp:168
virtual void release()
Definition: textblock.cpp:271
void setText(const QString &text)
Definition: textblock.cpp:76
void appendText(const QString &text)
Definition: textblock.cpp:85
static QString formatMultiLineText(const QString &work, const QString &linePrefix, const QString &breakStr, bool addBreak=true, bool lastLineHasBreak=true)
Definition: textblock.cpp:284
void setIndentationLevel(int level)
Definition: textblock.cpp:148
virtual QString toString() const
Definition: textblock.cpp:401
void setWriteOutText(bool write)
Definition: textblock.cpp:127
bool m_canDelete
Definition: textblock.h:100
static QString getIndentation()
Definition: textblock.cpp:178
bool canDelete() const
Definition: textblock.cpp:57
virtual void setAttributesFromNode(QDomElement &root)
Definition: textblock.cpp:355
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: textblock.cpp:318
virtual QString getNewEditorLine(int amount=0)
Definition: textblock.cpp:236
CodeDocument * m_parentDocument
Definition: textblock.h:103
QString getText() const
Definition: textblock.cpp:95
virtual ~TextBlock()
Definition: textblock.cpp:38
virtual void saveToXMI1(QXmlStreamWriter &writer)=0
QString getIndentationString(int level=0) const
Definition: textblock.cpp:189
QString getTag() const
Definition: textblock.cpp:106
CodeDocument * getParentDocument() const
Definition: textblock.cpp:66
TextBlock(CodeDocument *parent, const QString &text=QString())
Definition: textblock.cpp:24
friend QDebug operator<<(QDebug os, const TextBlock &obj)
Definition: textblock.cpp:416
QString m_text
Definition: textblock.h:98
virtual void loadFromXMI1(QDomElement &root)=0
int m_indentationLevel
Definition: textblock.h:102
void setTag(const QString &value)
Definition: textblock.cpp:117
void setCanDelete(bool canDelete)
Definition: textblock.cpp:46
bool m_writeOutText
Definition: textblock.h:101
bool getWriteOutText() const
Definition: textblock.cpp:137
static QString encodeText(const QString &text, const QString &endLine)
Definition: textblock.cpp:375
virtual void setAttributesFromObject(TextBlock *obj)
Definition: textblock.cpp:341
virtual int lastEditableLine()
Definition: textblock.cpp:219