From 7cc2a5ec9cebb75b61bced8d0cf803f5115575a6 Mon Sep 17 00:00:00 2001 From: Ryan Bottriell Date: Fri, 27 Sep 2024 09:48:22 -0700 Subject: [PATCH] Replace the tab key with 4 spaces in olstoy editor Signed-off-by: Ryan Bottriell --- src/osltoy/codeeditor.cpp | 19 +++++++++++++++++++ src/osltoy/codeeditor.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/osltoy/codeeditor.cpp b/src/osltoy/codeeditor.cpp index d70ccc810..e17038331 100644 --- a/src/osltoy/codeeditor.cpp +++ b/src/osltoy/codeeditor.cpp @@ -68,6 +68,25 @@ CodeEditor::CodeEditor(QWidget* parent, const std::string& filename) +void +CodeEditor::keyPressEvent(QKeyEvent* event) +{ + if (event->key() == Qt::Key_Tab) { + // replace the tab key with 4 spaces + // TODO: make this a configurable preference? + auto replacement + = QKeyEvent(QEvent::KeyPress, Qt::Key_Space, + Qt::KeyboardModifiers(event->nativeModifiers()), + " "); + QPlainTextEdit::keyPressEvent(&replacement); + return; + } + + QPlainTextEdit::keyPressEvent(event); +} + + + QFont CodeEditor::fixedFont() { diff --git a/src/osltoy/codeeditor.h b/src/osltoy/codeeditor.h index 46688938c..4db1dbb4f 100644 --- a/src/osltoy/codeeditor.h +++ b/src/osltoy/codeeditor.h @@ -75,6 +75,7 @@ class CodeEditor final : public QPlainTextEdit { static QFont fixedFont(); protected: + void keyPressEvent(QKeyEvent* event) override; void resizeEvent(QResizeEvent* event) override; private slots: