umbrello 2.38.4
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
codeeditor.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 <brian.thomas@gsfc.nasa.gov>
5 SPDX-FileCopyrightText: 2004-2022 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
6*/
7
8#ifndef CODEEDITOR_H
9#define CODEEDITOR_H
10
11#include "codeviewerstate.h"
12#include "textblocklist.h"
13
14#include <ktextedit.h>
15
16#include <QList>
17#include <QString>
18
20class CodeComment;
21class CodeDocument;
23class CodeMethodBlock;
26class QMenu;
27class QLabel;
28class TextBlock;
29class UMLObject;
30
32{
33public:
34 int start; // this is a relative offset from the beginning of the tblock
35 int size;
36 int end;
37 QColor fgcolor;
38 QColor bgcolor;
40
42 : start(0),
43 size(0),
44 end(0),
45 isEditable(false) { }
46};
47
48
50{
51public:
52 QList<ParaInfo*> m_paraList;
57
59 void setParent(UMLObject *p = 0) { m_parent = p; }
60 UMLObject * parent() { return m_parent; }
61 void setDisplayName(const QString& name) { m_displayName = name; }
62 QString displayName() const { return m_displayName; }
63};
64
65
66class CodeEditor : public KTextEdit
67{
68 Q_OBJECT
69public:
70 explicit CodeEditor(const QString & text, CodeViewerDialog * parent = 0, CodeDocument * doc = 0);
71 explicit CodeEditor(CodeViewerDialog * parent = 0, CodeDocument * doc = 0);
73
75
76protected:
77 bool close ();
78
79 void appendText(TextBlock * tblock);
80 void appendText(HierarchicalCodeBlock * hblock);
82 void appendText(TextBlockList * items);
83 void appendText(CodeMethodBlock * mb);
84 void appendText(CodeComment * comment, TextBlock * parent, UMLObject * umlObj = 0, const QString & compName = QString());
86
87 void rebuildView(int startCursorPos);
88
89 void contextMenuEvent(QContextMenuEvent * event);
90 void contentsMouseMoveEvent(QMouseEvent * e);
91 void keyPressEvent(QKeyEvent * e);
92 void mouseDoubleClickEvent(QMouseEvent * e);
93
94 void loadFromDocument();
95
96 QMenu * createPopup();
97
98private:
102
105
110
114
115 QMap<TextBlock*, TextBlockInfo*> m_tbInfoMap;
117
118 void insertText(const QString & text, TextBlock * parent, bool isEditable = false,
119 const QColor & fgcolor = QColor("black"), const QColor & bgcolor = QColor("white"),
120 UMLObject * umlobj = 0, const QString & displayName = QString(), int startLine = -1);
121
122 void editTextBlock(TextBlock * tBlock, int para);
123 void clearText();
124 QLabel * componentLabel();
125 bool paraIsNotSingleLine(int para);
126 void expandSelectedParagraph(int where);
127 void contractSelectedParagraph(int where);
129
131 void init(CodeViewerDialog * parentDialog, CodeDocument * parentDoc);
132
133 void changeTextBlockHighlighting(TextBlock * tb, bool selected);
134 void setParagraphBackgroundColor(int position, const QColor& color);
135 bool isParaEditable(int para);
137
138 TextBlock* findTextBlockAt(int characterPos);
139
140 void clicked(int para, int pos);
141
142 static bool isNonBlank(const QString &str);
143
144public slots:
145 void insertParagraph(const QString & text, int para);
146 void removeParagraph(int para);
147 void changeHighlighting(int signal);
148 void changeShowHidden(int signal);
149 void slotRedrawText();
150
151protected slots:
153 void slotCopyTextBlock();
154 void slotCutTextBlock();
155 void slotPasteTextBlock();
160
161signals:
162 // void sigNewLinePressed();
163 // void sigBackspacePressed();
164
165};
166
167#endif // CODEEDITOR_H
Definition codeblockwithcomments.h:20
Definition codeclassfielddeclarationblock.h:26
Definition codecomment.h:20
Definition codedocument.h:30
Definition codeeditor.h:67
void updateTextBlockFromText(TextBlock *block)
Definition codeeditor.cpp:951
void editTextBlock(TextBlock *tBlock, int para)
Definition codeeditor.cpp:154
void expandSelectedParagraph(int where)
Definition codeeditor.cpp:1375
bool isParaEditable(int para)
Definition codeeditor.cpp:1200
void slotCutTextBlock()
Definition codeeditor.cpp:853
void insertText(const QString &text, TextBlock *parent, bool isEditable=false, const QColor &fgcolor=QColor("black"), const QColor &bgcolor=QColor("white"), UMLObject *umlobj=0, const QString &displayName=QString(), int startLine=-1)
Definition codeeditor.cpp:248
void slotInsertCodeBlockBeforeSelected()
Definition codeeditor.cpp:685
bool close()
Definition codeeditor.cpp:140
void clearText()
Definition codeeditor.cpp:80
void loadFromDocument()
Definition codeeditor.cpp:210
static bool isNonBlank(const QString &str)
Definition codeeditor.cpp:180
bool m_newLinePressed
Definition codeeditor.h:106
int m_lastPara
Definition codeeditor.h:103
~CodeEditor()
Definition codeeditor.cpp:73
void changeShowHidden(int signal)
Definition codeeditor.cpp:1301
void removeParagraph(int para)
Definition codeeditor.cpp:627
void rebuildView(int startCursorPos)
Definition codeeditor.cpp:1474
bool paraIsNotSingleLine(int para)
Definition codeeditor.cpp:1152
QMap< TextBlock *, TextBlockInfo * > m_tbInfoMap
Definition codeeditor.h:115
void slotCopyTextBlock()
Definition codeeditor.cpp:831
void contextMenuEvent(QContextMenuEvent *event)
Definition codeeditor.cpp:729
QLabel * componentLabel()
Definition codeeditor.cpp:107
void changeHighlighting(int signal)
Definition codeeditor.cpp:1314
void mouseDoubleClickEvent(QMouseEvent *e)
Definition codeeditor.cpp:1404
bool m_isHighlighted
Definition codeeditor.h:108
bool textBlockIsClickable(UMLObject *obj)
Definition codeeditor.cpp:638
TextBlock * m_selectedTextBlock
Definition codeeditor.h:112
void contentsMouseMoveEvent(QMouseEvent *e)
Definition codeeditor.cpp:1429
CodeDocument * m_parentDoc
Definition codeeditor.h:100
void contractSelectedParagraph(int where)
Definition codeeditor.cpp:1343
QMenu * createPopup()
Definition codeeditor.cpp:740
Settings::CodeViewerState state()
Definition codeeditor.cpp:98
bool m_backspacePressed
Definition codeeditor.h:107
void appendText(TextBlock *tblock)
Definition codeeditor.cpp:549
void slotRedrawText()
Definition codeeditor.cpp:890
void slotChangeSelectedBlockView()
Definition codeeditor.cpp:656
void keyPressEvent(QKeyEvent *e)
Definition codeeditor.cpp:192
bool m_showHiddenBlocks
Definition codeeditor.h:109
void clicked(int para, int pos)
Definition codeeditor.cpp:117
void init(CodeViewerDialog *parentDialog, CodeDocument *parentDoc)
Definition codeeditor.cpp:900
int m_lastPos
Definition codeeditor.h:104
TextBlock * m_textBlockToPaste
Definition codeeditor.h:111
TextBlock * findTextBlockAt(int characterPos)
Definition codeeditor.cpp:1173
void slotInsertCodeBlockAfterSelected()
Definition codeeditor.cpp:705
QString m_parentDocName
Definition codeeditor.h:99
TextBlockList m_textBlockList
Definition codeeditor.h:116
void slotPasteTextBlock()
Definition codeeditor.cpp:878
void slotChangeSelectedBlockCommentView()
Definition codeeditor.cpp:669
void initText(CodeDocument *doc)
void changeTextBlockHighlighting(TextBlock *tb, bool selected)
Definition codeeditor.cpp:1254
TextBlock * m_lastTextBlockToBeEdited
Definition codeeditor.h:113
CodeViewerDialog * m_parentDialog
Definition codeeditor.h:101
void insertParagraph(const QString &text, int para)
Definition codeeditor.cpp:617
void slotCursorPositionChanged()
Definition codeeditor.cpp:1011
void setParagraphBackgroundColor(int position, const QColor &color)
Definition codeeditor.cpp:1290
Definition codemethodblock.h:26
Definition codeviewerdialog.h:23
Definition hierarchicalcodeblock.h:21
Definition codeeditor.h:32
QColor bgcolor
Definition codeeditor.h:38
ParaInfo()
Definition codeeditor.h:41
int size
number of characters
Definition codeeditor.h:35
int end
end line number
Definition codeeditor.h:36
bool isEditable
Definition codeeditor.h:39
QColor fgcolor
Definition codeeditor.h:37
int start
Definition codeeditor.h:34
configurable params for the code viewer tool
Definition codeviewerstate.h:15
Definition textblock.h:23
Definition codeeditor.h:50
QString m_displayName
Definition codeeditor.h:54
UMLObject * parent()
Definition codeeditor.h:60
TextBlockInfo()
Definition codeeditor.h:58
bool isClickable
Definition codeeditor.h:55
QString displayName() const
Definition codeeditor.h:62
bool isCodeAccessorMethod
Definition codeeditor.h:56
QList< ParaInfo * > m_paraList
Definition codeeditor.h:52
void setParent(UMLObject *p=0)
Definition codeeditor.h:59
void setDisplayName(const QString &name)
Definition codeeditor.h:61
UMLObject * m_parent
Definition codeeditor.h:53
The base class for UML objects.
Definition umlobject.h:70
QList< TextBlock * > TextBlockList
Definition textblocklist.h:14