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)),
|
||||
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()),
|
||||
SLOT(createFullBacktrace()));
|
||||
}
|
||||
|
||||
@@ -256,6 +256,25 @@ void WatchModel::destroyItem(WatchItem *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)
|
||||
{
|
||||
int pos = iname.lastIndexOf('.');
|
||||
@@ -1204,12 +1223,12 @@ WatchHandler::WatchHandler(DebuggerEngine *engine)
|
||||
m_watchers = new WatchModel(this, WatchersWatch);
|
||||
m_tooltips = new WatchModel(this, TooltipsWatch);
|
||||
|
||||
connect(debuggerCore()->action(ShowStdNamespace),
|
||||
SIGNAL(triggered()), SLOT(emitAllChanged()));
|
||||
connect(debuggerCore()->action(ShowQtNamespace),
|
||||
SIGNAL(triggered()), SLOT(emitAllChanged()));
|
||||
connect(debuggerCore()->action(SortStructMembers),
|
||||
SIGNAL(triggered()), SLOT(emitAllChanged()));
|
||||
connect(debuggerCore()->action(SortStructMembers), SIGNAL(valueChanged(QVariant)),
|
||||
SLOT(reinsertAllData()));
|
||||
connect(debuggerCore()->action(ShowStdNamespace), SIGNAL(valueChanged(QVariant)),
|
||||
SLOT(reinsertAllData()));
|
||||
connect(debuggerCore()->action(ShowQtNamespace), SIGNAL(valueChanged(QVariant)),
|
||||
SLOT(reinsertAllData()));
|
||||
}
|
||||
|
||||
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
|
||||
void WatchHandler::insertBulkData(const QList<WatchData> &list)
|
||||
{
|
||||
|
||||
@@ -98,6 +98,8 @@ private:
|
||||
const WatchItem *parentItem, const QModelIndex &parentIndex) const;
|
||||
|
||||
void insertData(const WatchData &data);
|
||||
void reinsertAllData();
|
||||
void reinsertAllDataHelper(WatchItem *item, QList<WatchData> *data);
|
||||
void insertBulkData(const QList<WatchData> &data);
|
||||
WatchItem *findItem(const QByteArray &iname, WatchItem *root) const;
|
||||
void reinitialize();
|
||||
@@ -159,6 +161,7 @@ public:
|
||||
void insertData(const WatchData &data);
|
||||
void insertBulkData(const QList<WatchData> &data);
|
||||
void removeData(const QByteArray &iname);
|
||||
Q_SLOT void reinsertAllData();
|
||||
|
||||
const WatchData *watchData(WatchType type, const QModelIndex &) const;
|
||||
const WatchData *findItem(const QByteArray &iname) const;
|
||||
|
||||
Reference in New Issue
Block a user