3939****************************************************************************/
4040
4141#include < QtWidgets>
42-
4342#include " codeeditor.h"
4443
45- // ![constructor]
46-
4744CodeEditor::CodeEditor (QWidget* parent)
4845 : QPlainTextEdit(parent)
4946{
@@ -57,10 +54,6 @@ CodeEditor::CodeEditor(QWidget* parent)
5754 highlightCurrentLine ();
5855}
5956
60- // ![constructor]
61-
62- // ![extraAreaWidth]
63-
6457int CodeEditor::lineNumberAreaWidth ()
6558{
6659 int digits = 1 ;
@@ -75,19 +68,11 @@ int CodeEditor::lineNumberAreaWidth()
7568 return space;
7669}
7770
78- // ![extraAreaWidth]
79-
80- // ![slotUpdateExtraAreaWidth]
81-
8271void CodeEditor::updateLineNumberAreaWidth (int /* newBlockCount */ )
8372{
8473 setViewportMargins (lineNumberAreaWidth (), 0 , 0 , 0 );
8574}
8675
87- // ![slotUpdateExtraAreaWidth]
88-
89- // ![slotUpdateRequest]
90-
9176void CodeEditor::updateLineNumberArea (const QRect& rect, int dy)
9277{
9378 if (dy)
@@ -99,10 +84,6 @@ void CodeEditor::updateLineNumberArea(const QRect& rect, int dy)
9984 updateLineNumberAreaWidth (0 );
10085}
10186
102- // ![slotUpdateRequest]
103-
104- // ![resizeEvent]
105-
10687void CodeEditor::resizeEvent (QResizeEvent* e)
10788{
10889 QPlainTextEdit::resizeEvent (e);
@@ -111,9 +92,20 @@ void CodeEditor::resizeEvent(QResizeEvent* e)
11192 lineNumberArea->setGeometry (QRect (cr.left (), cr.top (), lineNumberAreaWidth (), cr.height ()));
11293}
11394
114- // ![resizeEvent]
115-
116- // ![cursorPositionChanged]
95+ void CodeEditor::keyPressEvent (QKeyEvent* e)
96+ {
97+ switch (e->key ()) {
98+ case Qt::Key_Tab:
99+ QPlainTextEdit::insertPlainText (" " );
100+ break ;
101+ // TODO Indentation
102+ // case Qt::Key_Enter:
103+ // case Qt::Key_Return:
104+ // break;
105+ default :
106+ QPlainTextEdit::keyPressEvent (e);
107+ }
108+ }
117109
118110void CodeEditor::highlightCurrentLine ()
119111{
@@ -134,25 +126,16 @@ void CodeEditor::highlightCurrentLine()
134126 setExtraSelections (extraSelections);
135127}
136128
137- // ![cursorPositionChanged]
138-
139- // ![extraAreaPaintEvent_0]
140-
141129void CodeEditor::lineNumberAreaPaintEvent (QPaintEvent* event)
142130{
143131 QPainter painter (lineNumberArea);
144132 painter.fillRect (event->rect (), Qt::lightGray);
145133
146- // ![extraAreaPaintEvent_0]
147-
148- // ![extraAreaPaintEvent_1]
149134 QTextBlock block = firstVisibleBlock ();
150135 int blockNumber = block.blockNumber ();
151136 int top = (int )blockBoundingGeometry (block).translated (contentOffset ()).top ();
152137 int bottom = top + (int )blockBoundingRect (block).height ();
153- // ![extraAreaPaintEvent_1]
154138
155- // ![extraAreaPaintEvent_2]
156139 while (block.isValid () && top <= event->rect ().bottom ()) {
157140 if (block.isVisible () && bottom >= event->rect ().top ()) {
158141 QString number = QString::number (blockNumber + 1 );
@@ -167,4 +150,3 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent* event)
167150 ++blockNumber;
168151 }
169152}
170- // ![extraAreaPaintEvent_2]
0 commit comments