forked from qt-creator/qt-creator
debugger: immediate refresh after toggling sort order of struct members
Change-Id: Iac7de58ca8681a60a4b6c9d0e717eb57753898b5 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -220,12 +220,6 @@ GdbEngine::GdbEngine(const DebuggerStartParameters &startParameters,
|
|||||||
|
|
||||||
connect(debuggerCore()->action(AutoDerefPointers), SIGNAL(valueChanged(QVariant)),
|
connect(debuggerCore()->action(AutoDerefPointers), SIGNAL(valueChanged(QVariant)),
|
||||||
SLOT(reloadLocals()));
|
SLOT(reloadLocals()));
|
||||||
connect(debuggerCore()->action(SortStructMembers), SIGNAL(valueChanged(QVariant)),
|
|
||||||
SLOT(reloadLocals()));
|
|
||||||
connect(debuggerCore()->action(ShowStdNamespace), SIGNAL(valueChanged(QVariant)),
|
|
||||||
SLOT(reloadLocals()));
|
|
||||||
connect(debuggerCore()->action(ShowQtNamespace), SIGNAL(valueChanged(QVariant)),
|
|
||||||
SLOT(reloadLocals()));
|
|
||||||
connect(debuggerCore()->action(CreateFullBacktrace), SIGNAL(triggered()),
|
connect(debuggerCore()->action(CreateFullBacktrace), SIGNAL(triggered()),
|
||||||
SLOT(createFullBacktrace()));
|
SLOT(createFullBacktrace()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -256,6 +256,25 @@ void WatchModel::destroyItem(WatchItem *item)
|
|||||||
delete item;
|
delete item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WatchModel::reinsertAllData()
|
||||||
|
{
|
||||||
|
QList<WatchData> list;
|
||||||
|
reinsertAllDataHelper(m_root, &list);
|
||||||
|
reinitialize();
|
||||||
|
foreach (WatchItem data, list) {
|
||||||
|
data.setAllUnneeded();
|
||||||
|
insertData(data);
|
||||||
|
}
|
||||||
|
layoutChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void WatchModel::reinsertAllDataHelper(WatchItem *item, QList<WatchData> *data)
|
||||||
|
{
|
||||||
|
data->append(*item);
|
||||||
|
foreach (WatchItem *child, item->children)
|
||||||
|
reinsertAllDataHelper(child, data);
|
||||||
|
}
|
||||||
|
|
||||||
static QByteArray parentName(const QByteArray &iname)
|
static QByteArray parentName(const QByteArray &iname)
|
||||||
{
|
{
|
||||||
int pos = iname.lastIndexOf('.');
|
int pos = iname.lastIndexOf('.');
|
||||||
@@ -1204,12 +1223,12 @@ WatchHandler::WatchHandler(DebuggerEngine *engine)
|
|||||||
m_watchers = new WatchModel(this, WatchersWatch);
|
m_watchers = new WatchModel(this, WatchersWatch);
|
||||||
m_tooltips = new WatchModel(this, TooltipsWatch);
|
m_tooltips = new WatchModel(this, TooltipsWatch);
|
||||||
|
|
||||||
connect(debuggerCore()->action(ShowStdNamespace),
|
connect(debuggerCore()->action(SortStructMembers), SIGNAL(valueChanged(QVariant)),
|
||||||
SIGNAL(triggered()), SLOT(emitAllChanged()));
|
SLOT(reinsertAllData()));
|
||||||
connect(debuggerCore()->action(ShowQtNamespace),
|
connect(debuggerCore()->action(ShowStdNamespace), SIGNAL(valueChanged(QVariant)),
|
||||||
SIGNAL(triggered()), SLOT(emitAllChanged()));
|
SLOT(reinsertAllData()));
|
||||||
connect(debuggerCore()->action(SortStructMembers),
|
connect(debuggerCore()->action(ShowQtNamespace), SIGNAL(valueChanged(QVariant)),
|
||||||
SIGNAL(triggered()), SLOT(emitAllChanged()));
|
SLOT(reinsertAllData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void WatchHandler::beginCycle(bool fullCycle)
|
void WatchHandler::beginCycle(bool fullCycle)
|
||||||
@@ -1295,6 +1314,14 @@ void WatchHandler::insertData(const WatchData &data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WatchHandler::reinsertAllData()
|
||||||
|
{
|
||||||
|
m_locals->reinsertAllData();
|
||||||
|
m_watchers->reinsertAllData();
|
||||||
|
m_tooltips->reinsertAllData();
|
||||||
|
m_return->reinsertAllData();
|
||||||
|
}
|
||||||
|
|
||||||
// Bulk-insertion
|
// Bulk-insertion
|
||||||
void WatchHandler::insertBulkData(const QList<WatchData> &list)
|
void WatchHandler::insertBulkData(const QList<WatchData> &list)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -98,6 +98,8 @@ private:
|
|||||||
const WatchItem *parentItem, const QModelIndex &parentIndex) const;
|
const WatchItem *parentItem, const QModelIndex &parentIndex) const;
|
||||||
|
|
||||||
void insertData(const WatchData &data);
|
void insertData(const WatchData &data);
|
||||||
|
void reinsertAllData();
|
||||||
|
void reinsertAllDataHelper(WatchItem *item, QList<WatchData> *data);
|
||||||
void insertBulkData(const QList<WatchData> &data);
|
void insertBulkData(const QList<WatchData> &data);
|
||||||
WatchItem *findItem(const QByteArray &iname, WatchItem *root) const;
|
WatchItem *findItem(const QByteArray &iname, WatchItem *root) const;
|
||||||
void reinitialize();
|
void reinitialize();
|
||||||
@@ -159,6 +161,7 @@ public:
|
|||||||
void insertData(const WatchData &data);
|
void insertData(const WatchData &data);
|
||||||
void insertBulkData(const QList<WatchData> &data);
|
void insertBulkData(const QList<WatchData> &data);
|
||||||
void removeData(const QByteArray &iname);
|
void removeData(const QByteArray &iname);
|
||||||
|
Q_SLOT void reinsertAllData();
|
||||||
|
|
||||||
const WatchData *watchData(WatchType type, const QModelIndex &) const;
|
const WatchData *watchData(WatchType type, const QModelIndex &) const;
|
||||||
const WatchData *findItem(const QByteArray &iname) const;
|
const WatchData *findItem(const QByteArray &iname) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user