Skip to content

Commit a714767

Browse files
committed
[Refactor] Emit status messages on mode changes in CodeEditor for improved user feedback
1 parent a6657d0 commit a714767

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

include/CodeEditor.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ class CodeEditor : public QPlainTextEdit
1919
void lineNumberAreaPaintEvent(QPaintEvent *event);
2020
int lineNumberAreaWidth();
2121

22+
signals:
23+
void statusMessageChanged(const QString &message);
24+
2225
protected:
2326
void keyPressEvent(QKeyEvent *event) override;
2427
void resizeEvent(QResizeEvent *event) override;

src/CodeEditor.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include <QPainter>
66
#include <QTextBlock>
7+
#include <QStatusBar>
78

89
CodeEditor::CodeEditor(QWidget *parent)
910
: QPlainTextEdit(parent),
@@ -33,6 +34,7 @@ void CodeEditor::keyPressEvent(QKeyEvent *event)
3334
{
3435
case Qt::Key_I:
3536
mode = INSERT;
37+
emit statusMessageChanged("Insert mode activated");
3638
break;
3739
case Qt::Key_A:
3840
moveCursor(QTextCursor::Left);
@@ -46,14 +48,22 @@ void CodeEditor::keyPressEvent(QKeyEvent *event)
4648
case Qt::Key_W:
4749
moveCursor(QTextCursor::Up);
4850
break;
49-
case Qt::Key_Escape:
50-
mode = NORMAL;
51+
default:
52+
emit statusMessageChanged("Insert mode is not active. Press 'i' to enter insert mode.");
5153
break;
5254
}
5355
}
54-
else
56+
else if (mode == INSERT)
5557
{
56-
QPlainTextEdit::keyPressEvent(event);
58+
if (event->key() == Qt::Key_Escape)
59+
{
60+
mode = NORMAL;
61+
emit statusMessageChanged("Normal mode activated. Press 'escape' to return to normal mode.");
62+
}
63+
else
64+
{
65+
QPlainTextEdit::keyPressEvent(event);
66+
}
5767
}
5868
}
5969

0 commit comments

Comments
 (0)