summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp19
-rw-r--r--src/plugins/qmldesigner/components/texteditor/texteditorwidget.h3
2 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp
index 5e7407fdf7..49c9e2dba5 100644
--- a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp
+++ b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp
@@ -34,8 +34,12 @@
#include <utils/fileutils.h>
+#include <QEvent>
#include <QVBoxLayout>
+#include <vector>
+#include <algorithm>
+
namespace QmlDesigner {
TextEditorWidget::TextEditorWidget(TextEditorView *textEditorView) : QWidget()
@@ -64,6 +68,7 @@ void TextEditorWidget::setTextEditor(TextEditor::BaseTextEditor *textEditor) {
connect(textEditor->editorWidget(), &QPlainTextEdit::cursorPositionChanged,
&m_updateSelectionTimer, static_cast<void (QTimer::*)()>(&QTimer::start));
+ textEditor->editorWidget()->installEventFilter(this);
}
QString TextEditorWidget::contextHelpId() const
@@ -136,4 +141,18 @@ int TextEditorWidget::currentLine() const
return -1;
}
+bool TextEditorWidget::eventFilter( QObject *, QEvent *event)
+{
+ static std::vector<int> overrideKeys = { Qt::Key_Delete, Qt::Key_Backspace, Qt::Key_Left, Qt::Key_Right, Qt::Key_Up, Qt::Key_Down };
+ if (event->type() == QEvent::ShortcutOverride) {
+ QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
+ if (std::find(overrideKeys.begin(), overrideKeys.end(), keyEvent->key()) != overrideKeys.end()) {
+ keyEvent->accept();
+ return true;
+ }
+ }
+ return false;
+}
+
+
} // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.h b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.h
index 41da765aa0..46a65cdd24 100644
--- a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.h
+++ b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.h
@@ -58,6 +58,9 @@ public:
void clearStatusBar();
int currentLine() const;
+protected:
+ bool eventFilter(QObject *object, QEvent *event) override;
+
private:
void updateSelectionByCursorPosition();