From d909d8ba644fe72064e170212e38c35c22de547c Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 4 Jan 2011 13:58:05 +0100 Subject: [PATCH] debugger/basehoverhandler: introduce tooltipOverrideRequested and use it Reviewed-by: con Task-number: QTCREATOR-201 --- src/plugins/debugger/debuggerplugin.cpp | 15 +++++++++------ src/plugins/texteditor/basehoverhandler.cpp | 6 ------ src/plugins/texteditor/basetexteditor.cpp | 6 +++++- src/plugins/texteditor/itexteditor.h | 1 + 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index bef427a79eb..a2a236ef3ef 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -983,7 +983,8 @@ public slots: void editorAboutToClose(Core::IEditor *editor); void setBusyCursor(bool busy); void requestMark(TextEditor::ITextEditor *editor, int lineNumber); - void showToolTip(TextEditor::ITextEditor *editor, const QPoint &pnt, int pos); + void showToolTip(TextEditor::ITextEditor *editor, + const QPoint &pnt, int pos, bool *handled); void requestContextMenu(TextEditor::ITextEditor *editor, int lineNumber, QMenu *menu); @@ -1764,8 +1765,8 @@ void DebuggerPluginPrivate::editorOpened(Core::IEditor *editor) SIGNAL(markRequested(TextEditor::ITextEditor*,int)), SLOT(requestMark(TextEditor::ITextEditor*,int))); connect(editor, - SIGNAL(tooltipRequested(TextEditor::ITextEditor*,QPoint,int)), - SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int))); + SIGNAL(tooltipOverrideRequested(TextEditor::ITextEditor*,QPoint,int,bool*)), + SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int,bool*))); connect(textEditor, SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)), SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*))); @@ -1782,8 +1783,8 @@ void DebuggerPluginPrivate::editorAboutToClose(Core::IEditor *editor) SIGNAL(markRequested(TextEditor::ITextEditor*,int)), this, SLOT(requestMark(TextEditor::ITextEditor*,int))); disconnect(editor, - SIGNAL(tooltipRequested(TextEditor::ITextEditor*,QPoint,int)), - this, SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int))); + SIGNAL(tooltipOverrideRequested(TextEditor::ITextEditor*,QPoint,int,bool*)), + this, SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int,bool*))); disconnect(textEditor, SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)), this, SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*))); @@ -1943,7 +1944,7 @@ void DebuggerPluginPrivate::requestMark(ITextEditor *editor, int lineNumber) } void DebuggerPluginPrivate::showToolTip(ITextEditor *editor, - const QPoint &point, int pos) + const QPoint &point, int pos, bool *handled) { if (!isDebuggable(editor)) return; @@ -1951,6 +1952,8 @@ void DebuggerPluginPrivate::showToolTip(ITextEditor *editor, return; if (state() != InferiorStopOk) return; + QTC_ASSERT(handled, return); + *handled = true; currentEngine()->setToolTipExpression(point, editor, pos); } diff --git a/src/plugins/texteditor/basehoverhandler.cpp b/src/plugins/texteditor/basehoverhandler.cpp index 33dfd63e93b..1ee5a14fb16 100644 --- a/src/plugins/texteditor/basehoverhandler.cpp +++ b/src/plugins/texteditor/basehoverhandler.cpp @@ -81,12 +81,6 @@ void BaseHoverHandler::showToolTip(TextEditor::ITextEditor *editor, const QPoint editor->setContextHelpId(QString()); - ICore *core = ICore::instance(); - const int dbgContext = - core->uniqueIDManager()->uniqueIdentifier(Debugger::Constants::C_DEBUGMODE); - if (core->hasContext(dbgContext)) - return; - process(editor, pos); const QPoint &actualPoint = point - QPoint(0, diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index e5ee614c07d..1b446ac38ee 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -2533,7 +2533,11 @@ bool BaseTextEditor::viewportEvent(QEvent *event) QPoint cursorPos = mapToGlobal(cursorRect(c).bottomRight() + QPoint(1,1)); cursorPos.setX(cursorPos.x() + d->m_extraArea->width()); - emit editableInterface()->tooltipRequested(editableInterface(), cursorPos, c.position()); + bool handled = false; + BaseTextEditorEditable *editable = editableInterface(); + emit editable->tooltipOverrideRequested(editable, cursorPos, c.position(), &handled); + if (!handled) + emit editable->tooltipRequested(editable, cursorPos, c.position()); return true; } return QPlainTextEdit::viewportEvent(event); diff --git a/src/plugins/texteditor/itexteditor.h b/src/plugins/texteditor/itexteditor.h index 1a0f4b3ed63..a29d2500480 100644 --- a/src/plugins/texteditor/itexteditor.h +++ b/src/plugins/texteditor/itexteditor.h @@ -136,6 +136,7 @@ signals: void contentsChangedBecauseOfUndo(); void markRequested(TextEditor::ITextEditor *editor, int line); void markContextMenuRequested(TextEditor::ITextEditor *editor, int line, QMenu *menu); + void tooltipOverrideRequested(TextEditor::ITextEditor *editor, const QPoint &globalPos, int position, bool *handled); void tooltipRequested(TextEditor::ITextEditor *editor, const QPoint &globalPos, int position); void contextHelpIdRequested(TextEditor::ITextEditor *editor, int position); };