From a59f45c5769d82e0bcd9de2bae39b180da494fd4 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Wed, 7 Jul 2010 16:30:42 +0200 Subject: [PATCH] debugger: try to improve tooltip handling Still far from usable. --- src/plugins/debugger/gdb/gdbengine.cpp | 12 +++++++----- src/plugins/debugger/gdb/gdbengine.h | 2 +- src/plugins/debugger/gdb/pythongdbengine.cpp | 7 +++++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 67b478b6065..56d900ed021 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 9d22e979406..2c899d85745 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 b4bf14664e0..8126c95ba57 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); -- GitLab