diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 67b478b60654f3899b83e280e278e70f4ec034ca..56d900ed021b59dc8fabec30b414628634844a2a 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -114,9 +114,9 @@ static const char winPythonVersionC[] = "python2.5"; #define CB(callback) &GdbEngine::callback, STRINGIFY(callback) -QByteArray GdbEngine::tooltipIName() +QByteArray GdbEngine::tooltipIName(const QString &exp) { - return "tooltip.x"; + return "tooltip." + exp.toLatin1().toHex(); } static bool stateAcceptsGdbCommands(DebuggerState state) @@ -3222,7 +3222,7 @@ QPoint GdbEngine::m_toolTipPos; bool GdbEngine::showToolTip() { - QByteArray iname = tooltipIName(); + QByteArray iname = tooltipIName(m_toolTipExpression); if (!theDebuggerBoolSetting(UseToolTipsInMainEditor)) { watchHandler()->removeData(iname); @@ -3257,8 +3257,10 @@ void GdbEngine::setToolTipExpression(const QPoint &mousePos, m_toolTipPos = mousePos; int line, column; QString exp = cppExpressionAt(editor, cursorPos, &line, &column); - if (exp == m_toolTipExpression) + if (!exp.isEmpty() && exp == m_toolTipExpression) { + showToolTip(); return; + } m_toolTipExpression = exp; @@ -3326,7 +3328,7 @@ void GdbEngine::setToolTipExpression(const QPoint &mousePos, WatchData toolTip; toolTip.exp = exp.toLatin1(); toolTip.name = exp; - toolTip.iname = tooltipIName(); + toolTip.iname = tooltipIName(exp); watchHandler()->removeData(toolTip.iname); watchHandler()->insertData(toolTip); } diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index 9d22e979406e4a320a3065f80c78122692312170..2c899d85745bc9dce7289008d5b6674c160aa234 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -525,7 +525,7 @@ private: ////////// View & Data Stuff ////////// static QString m_toolTipExpression; static QPoint m_toolTipPos; - static QByteArray tooltipIName(); + static QByteArray tooltipIName(const QString &exp); // HACK: StackFrame m_targetFrame; diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp index b4bf14664e08e5a5c296808710f716340456fc96..8126c95ba572f14b641995512489107cfae89361 100644 --- a/src/plugins/debugger/gdb/pythongdbengine.cpp +++ b/src/plugins/debugger/gdb/pythongdbengine.cpp @@ -60,8 +60,11 @@ void GdbEngine::updateLocalsPython(const QByteArray &varList) expanded += "formats:" + handler->individualFormatRequests(); QByteArray watchers; - if (!m_toolTipExpression.isEmpty()) - watchers += m_toolTipExpression.toLatin1() + '#' + tooltipIName(); + if (!m_toolTipExpression.isEmpty()) { + watchers += m_toolTipExpression.toLatin1(); + watchers += '#'; + watchers += tooltipIName(m_toolTipExpression); + } QHash<QByteArray, int> watcherNames = handler->watcherNames(); QHashIterator<QByteArray, int> it(watcherNames);