forked from qt-creator/qt-creator
Revert "debugger: improve expansion behaviour of pinned tooltips."
This reverts commit 89cee4313c,
as part of the patch breaks QTCREATORBUG-7277.
The GDB case should not filter the Locals model, but the Tooltip model
to display tooltips. CDB has no choice, as the tooltips are expressions,
i.e. cannot be handled, so using the Locals as fall back there is ok.
Change-Id: I196bc683e06f68301bd86aa6fcce14ad2e8c5774
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
This commit is contained in:
@@ -38,7 +38,6 @@
|
||||
#include "watchutils.h"
|
||||
#include "stackhandler.h"
|
||||
#include "debuggercore.h"
|
||||
#include "debuggerinternalconstants.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/modemanager.h>
|
||||
@@ -579,7 +578,7 @@ QDebug operator<<(QDebug d, const DebuggerToolTipContext &c)
|
||||
It consists of a title toolbar and a vertical main layout.
|
||||
The widget has the ability to save/restore tree model contents to XML.
|
||||
With the engine acquired, it sets a filter model (by expression) on
|
||||
the engine's Locals model.
|
||||
one of the engine's models (debuggerModel).
|
||||
On release, it serializes and restores the data to a QStandardItemModel
|
||||
(defaultModel) and displays that.
|
||||
|
||||
@@ -618,6 +617,7 @@ DebuggerToolTipWidget::DebuggerToolTipWidget(QWidget *parent) :
|
||||
m_titleLabel(new DraggableLabel),
|
||||
m_engineAcquired(false),
|
||||
m_creationDate(QDate::currentDate()),
|
||||
m_debuggerModel(TooltipsWatch),
|
||||
m_treeView(new DebuggerToolTipTreeView),
|
||||
m_defaultModel(new QStandardItemModel(this))
|
||||
{
|
||||
@@ -651,8 +651,8 @@ DebuggerToolTipWidget::DebuggerToolTipWidget(QWidget *parent) :
|
||||
}
|
||||
|
||||
bool DebuggerToolTipWidget::matches(const QString &fileName,
|
||||
const QString &engineType,
|
||||
const QString &function) const
|
||||
const QString &engineType,
|
||||
const QString &function) const
|
||||
{
|
||||
if (fileName.isEmpty() || m_context.fileName != fileName)
|
||||
return false;
|
||||
@@ -994,7 +994,18 @@ void DebuggerToolTipTreeView::computeSize()
|
||||
void DebuggerToolTipWidget::doAcquireEngine(Debugger::DebuggerEngine *engine)
|
||||
{
|
||||
// Create a filter model on the debugger's model and switch to it.
|
||||
QAbstractItemModel *model = engine->localsModel();
|
||||
QAbstractItemModel *model = 0;
|
||||
switch (m_debuggerModel) {
|
||||
case LocalsWatch:
|
||||
model = engine->localsModel();
|
||||
break;
|
||||
case WatchersWatch:
|
||||
model = engine->watchersModel();
|
||||
break;
|
||||
case TooltipsWatch:
|
||||
model = engine->toolTipsModel();
|
||||
break;
|
||||
}
|
||||
QTC_ASSERT(model, return);
|
||||
DebuggerToolTipExpressionFilterModel *filterModel =
|
||||
new DebuggerToolTipExpressionFilterModel(model, m_expression);
|
||||
@@ -1006,7 +1017,7 @@ QAbstractItemModel *DebuggerToolTipWidget::swapModel(QAbstractItemModel *newMode
|
||||
QAbstractItemModel *oldModel = m_treeView->swapModel(newModel);
|
||||
// When looking at some 'this.m_foo.x', expand all items
|
||||
if (newModel) {
|
||||
if (const int level = m_expression.count(QLatin1Char('.')) + 1) {
|
||||
if (const int level = m_expression.count(QLatin1Char('.'))) {
|
||||
QModelIndex index = newModel->index(0, 0);
|
||||
for (int i = 0; i < level && index.isValid(); i++, index = index.child(0, 0))
|
||||
m_treeView->setExpanded(index, true);
|
||||
@@ -1068,6 +1079,7 @@ void DebuggerToolTipWidget::doSaveSessionData(QXmlStreamWriter &w) const
|
||||
{
|
||||
w.writeStartElement(QLatin1String(treeElementC));
|
||||
QXmlStreamAttributes attributes;
|
||||
attributes.append(QLatin1String(treeModelAttributeC), QString::number(m_debuggerModel));
|
||||
attributes.append(QLatin1String(treeExpressionAttributeC), m_expression);
|
||||
w.writeAttributes(attributes);
|
||||
if (QAbstractItemModel *model = m_treeView->model()) {
|
||||
@@ -1083,9 +1095,10 @@ void DebuggerToolTipWidget::doLoadSessionData(QXmlStreamReader &r)
|
||||
return;
|
||||
// Restore data to default model and show that.
|
||||
const QXmlStreamAttributes attributes = r.attributes();
|
||||
m_debuggerModel = attributes.value(QLatin1String(treeModelAttributeC)).toString().toInt();
|
||||
m_expression = attributes.value(QLatin1String(treeExpressionAttributeC)).toString();
|
||||
if (debugToolTips)
|
||||
qDebug() << "DebuggerTreeViewToolTipWidget::doLoadSessionData() " << m_expression;
|
||||
qDebug() << "DebuggerTreeViewToolTipWidget::doLoadSessionData() " << m_debuggerModel << m_expression;
|
||||
setObjectName(QLatin1String("DebuggerTreeViewToolTipWidget: ") + m_expression);
|
||||
restoreTreeModel(r, m_defaultModel);
|
||||
r.readNext(); // Skip </tree>
|
||||
|
||||
Reference in New Issue
Block a user