Debugger: Replace empty tooltips by a "No valid expression" message

Task-number: QTCREATORBUG-13774
Change-Id: I2c14a50c1457ca4f24843df2691fda83a790931b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
hjk
2015-03-20 14:44:02 +01:00
parent 48ac7c186b
commit c1fd41c5b0

View File

@@ -831,8 +831,9 @@ void DebuggerToolTipHolder::setState(DebuggerTooltipState newState)
bool ok = (state == New && newState == PendingUnshown)
|| (state == PendingUnshown && newState == PendingShown)
|| (state == PendingShown && newState == Acquired)
|| (state == Acquired && (newState == Released))
|| (state == Released && (newState == Acquired));
|| (state == Acquired && newState == Released)
|| (state == Acquired && newState == Acquired)
|| (state == Released && newState == Acquired);
// FIXME: These happen when a tooltip is re-used in findOrCreate.
ok = ok
@@ -856,9 +857,22 @@ void DebuggerToolTipHolder::destroy()
void DebuggerToolTipHolder::releaseEngine()
{
DEBUG("RELEASE ENGINE: STATE " << state);
if (state == Released)
return;
DEBUG("RELEASE ENGINE: STATE " << state);
if (state == PendingShown) {
// This happens after hovering over something that looks roughly like
// a valid expression but can't be resolved by the debugger backend.
// (Out of scope items, keywords, ...)
ToolTip::show(context.mousePosition,
DebuggerToolTipManager::tr("No valid expression"),
Internal::mainWindow());
QTC_ASSERT(widget, return);
widget->deleteLater();
return;
}
setState(Released);
QTC_ASSERT(widget, return);