diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index dc9f9282c1a..4dda8f7b952 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -79,6 +79,7 @@ #include #include #include +#include using namespace TextEditor; using namespace TextEditor::Internal; @@ -2430,6 +2431,11 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) } else { d->extraAreaToggleMarkBlockNumber = cursor.blockNumber(); } + } else if (e->button() == Qt::RightButton) { + QMenu * contextMenu = new QMenu(this); + emit lineContextMenuRequested(editableInterface(), cursor.blockNumber(), contextMenu); + if (!contextMenu->isEmpty()) + contextMenu->exec(e->globalPos()); } } else if (d->extraAreaSelectionAnchorBlockNumber >= 0) { QTextCursor selection = cursor; diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index 23b9951ccb0..a6cc14f36e4 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -432,6 +432,7 @@ protected slots: signals: void markRequested(TextEditor::ITextEditor *editor, int line); + void lineContextMenuRequested(TextEditor::ITextEditor *editor, int line, QMenu *menu); void requestBlockUpdate(const QTextBlock &); void requestAutoCompletion(ITextEditable *editor, bool forced);