diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 1e6a266e6da886b16eb0f7ec44c1fddd12c9cdcd..ea9da5cb6bd4b29b263148005e686a67493d111c 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -488,10 +488,6 @@ ITextEditable *BaseTextEditor::editableInterface() const d->m_editable, SIGNAL(contentsChanged())); connect(this, SIGNAL(changed()), d->m_editable, SIGNAL(changed())); - connect(this, - SIGNAL(markRequested(TextEditor::ITextEditor *, int)), - d->m_editable, - SIGNAL(markRequested(TextEditor::ITextEditor *, int))); } return d->m_editable; } @@ -2434,9 +2430,10 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) } } else if (e->button() == Qt::RightButton) { QMenu * contextMenu = new QMenu(this); - emit lineContextMenuRequested(editableInterface(), cursor.blockNumber(), contextMenu); + emit d->m_editable->markContextMenuRequested(editableInterface(), cursor.blockNumber(), contextMenu); if (!contextMenu->isEmpty()) contextMenu->exec(e->globalPos()); + delete contextMenu; } } else if (d->extraAreaSelectionAnchorBlockNumber >= 0) { QTextCursor selection = cursor; @@ -2471,7 +2468,7 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) d->extraAreaToggleMarkBlockNumber = -1; if (cursor.blockNumber() == n) { int line = n + 1; - emit markRequested(editableInterface(), line); + emit d->m_editable->markRequested(editableInterface(), line); } } } diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index a6cc14f36e40b0f79cd7aab7e9905a8f45214a29..714b1a507c8a2d6e632ead1e3f38045b1d03e108 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -431,8 +431,6 @@ 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); diff --git a/src/plugins/texteditor/itexteditor.h b/src/plugins/texteditor/itexteditor.h index 432c3c9c5850b34ea8a38b93498979c84f8151a4..514f311472a8a362b6ec08a09b397dab18a10857 100644 --- a/src/plugins/texteditor/itexteditor.h +++ b/src/plugins/texteditor/itexteditor.h @@ -44,6 +44,7 @@ #include <QtGui/QIcon> QT_BEGIN_NAMESPACE +class QMenu; class QTextBlock; QT_END_NAMESPACE @@ -124,6 +125,7 @@ public: signals: void contentsChanged(); void markRequested(TextEditor::ITextEditor *editor, int line); + void markContextMenuRequested(TextEditor::ITextEditor *editor, int line, QMenu *menu); void tooltipRequested(TextEditor::ITextEditor *editor, const QPoint &globalPos, int position); void contextHelpIdRequested(TextEditor::ITextEditor *editor, int position); };