umbrello  2.39.2
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-2022 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 
67  virtual void saveToXMI(QXmlStreamWriter& writer) = 0;
68 
73  virtual void loadFromXMI(QDomElement & root) = 0;
74 
75  bool canDelete() const;
76 
77  virtual void setAttributesFromObject(TextBlock * obj);
78 
79  virtual QString getNewEditorLine(int amount = 0);
80 
81  virtual int firstEditableLine();
82  virtual int lastEditableLine();
83 
84  friend QDebug operator<<(QDebug os, const TextBlock& obj);
85 
86 protected:
87 
88  void setCanDelete(bool canDelete);
89 
90  virtual void release();
91 
92  virtual void setAttributesOnNode(QXmlStreamWriter& writer);
93  virtual void setAttributesFromNode(QDomElement & root);
94 
95 private:
96 
97  QString m_text; //< The actual text of this code block.
98  QString m_tag;
100  bool m_writeOutText; //< Flag to write the text of this TextBlock into a file.
103 
104 };
105 
106 #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:388
int getIndentationLevel() const
Definition: textblock.cpp:159
QString m_tag
Definition: textblock.h:98
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:400
void setWriteOutText(bool write)
Definition: textblock.cpp:127
virtual void saveToXMI(QXmlStreamWriter &writer)=0
bool m_canDelete
Definition: textblock.h:99
static QString getIndentation()
Definition: textblock.cpp:178
bool canDelete() const
Definition: textblock.cpp:57
virtual void setAttributesFromNode(QDomElement &root)
Definition: textblock.cpp:354
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: textblock.cpp:317
virtual QString getNewEditorLine(int amount=0)
Definition: textblock.cpp:236
CodeDocument * m_parentDocument
Definition: textblock.h:102
QString getText() const
Definition: textblock.cpp:95
virtual ~TextBlock()
Definition: textblock.cpp:38
QString getIndentationString(int level=0) const
Definition: textblock.cpp:189
QString getTag() const
Definition: textblock.cpp:106
virtual void loadFromXMI(QDomElement &root)=0
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:415
QString m_text
Definition: textblock.h:97
int m_indentationLevel
Definition: textblock.h:101
void setTag(const QString &value)
Definition: textblock.cpp:117
void setCanDelete(bool canDelete)
Definition: textblock.cpp:46
bool m_writeOutText
Definition: textblock.h:100
bool getWriteOutText() const
Definition: textblock.cpp:137
static QString encodeText(const QString &text, const QString &endLine)
Definition: textblock.cpp:374
virtual void setAttributesFromObject(TextBlock *obj)
Definition: textblock.cpp:340
virtual int lastEditableLine()
Definition: textblock.cpp:219