debugger/basehoverhandler: introduce tooltipOverrideRequested and use it

Reviewed-by: con
Task-number: QTCREATOR-201
This commit is contained in:
hjk
2011-01-04 13:58:05 +01:00
parent b61845800a
commit d909d8ba64
4 changed files with 15 additions and 13 deletions

View File

@@ -983,7 +983,8 @@ public slots:
void editorAboutToClose(Core::IEditor *editor); void editorAboutToClose(Core::IEditor *editor);
void setBusyCursor(bool busy); void setBusyCursor(bool busy);
void requestMark(TextEditor::ITextEditor *editor, int lineNumber); 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, void requestContextMenu(TextEditor::ITextEditor *editor,
int lineNumber, QMenu *menu); int lineNumber, QMenu *menu);
@@ -1764,8 +1765,8 @@ void DebuggerPluginPrivate::editorOpened(Core::IEditor *editor)
SIGNAL(markRequested(TextEditor::ITextEditor*,int)), SIGNAL(markRequested(TextEditor::ITextEditor*,int)),
SLOT(requestMark(TextEditor::ITextEditor*,int))); SLOT(requestMark(TextEditor::ITextEditor*,int)));
connect(editor, connect(editor,
SIGNAL(tooltipRequested(TextEditor::ITextEditor*,QPoint,int)), SIGNAL(tooltipOverrideRequested(TextEditor::ITextEditor*,QPoint,int,bool*)),
SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int))); SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int,bool*)));
connect(textEditor, connect(textEditor,
SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)), SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
SLOT(requestContextMenu(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)), SIGNAL(markRequested(TextEditor::ITextEditor*,int)),
this, SLOT(requestMark(TextEditor::ITextEditor*,int))); this, SLOT(requestMark(TextEditor::ITextEditor*,int)));
disconnect(editor, disconnect(editor,
SIGNAL(tooltipRequested(TextEditor::ITextEditor*,QPoint,int)), SIGNAL(tooltipOverrideRequested(TextEditor::ITextEditor*,QPoint,int,bool*)),
this, SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int))); this, SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int,bool*)));
disconnect(textEditor, disconnect(textEditor,
SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)), SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
this, SLOT(requestContextMenu(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, void DebuggerPluginPrivate::showToolTip(ITextEditor *editor,
const QPoint &point, int pos) const QPoint &point, int pos, bool *handled)
{ {
if (!isDebuggable(editor)) if (!isDebuggable(editor))
return; return;
@@ -1951,6 +1952,8 @@ void DebuggerPluginPrivate::showToolTip(ITextEditor *editor,
return; return;
if (state() != InferiorStopOk) if (state() != InferiorStopOk)
return; return;
QTC_ASSERT(handled, return);
*handled = true;
currentEngine()->setToolTipExpression(point, editor, pos); currentEngine()->setToolTipExpression(point, editor, pos);
} }

View File

@@ -81,12 +81,6 @@ void BaseHoverHandler::showToolTip(TextEditor::ITextEditor *editor, const QPoint
editor->setContextHelpId(QString()); 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); process(editor, pos);
const QPoint &actualPoint = point - QPoint(0, const QPoint &actualPoint = point - QPoint(0,

View File

@@ -2533,7 +2533,11 @@ bool BaseTextEditor::viewportEvent(QEvent *event)
QPoint cursorPos = mapToGlobal(cursorRect(c).bottomRight() + QPoint(1,1)); QPoint cursorPos = mapToGlobal(cursorRect(c).bottomRight() + QPoint(1,1));
cursorPos.setX(cursorPos.x() + d->m_extraArea->width()); 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 true;
} }
return QPlainTextEdit::viewportEvent(event); return QPlainTextEdit::viewportEvent(event);

View File

@@ -136,6 +136,7 @@ signals:
void contentsChangedBecauseOfUndo(); void contentsChangedBecauseOfUndo();
void markRequested(TextEditor::ITextEditor *editor, int line); void markRequested(TextEditor::ITextEditor *editor, int line);
void markContextMenuRequested(TextEditor::ITextEditor *editor, int line, QMenu *menu); 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 tooltipRequested(TextEditor::ITextEditor *editor, const QPoint &globalPos, int position);
void contextHelpIdRequested(TextEditor::ITextEditor *editor, int position); void contextHelpIdRequested(TextEditor::ITextEditor *editor, int position);
}; };