aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/watchhandler.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2011-11-24 18:14:49 +0100
committerhjk <[email protected]>2011-11-24 18:15:54 +0100
commit3a210a19c9be11de7a9887b34c84a8a02f8b971e (patch)
treede7b656f6db46473a32d307ff70e6fdf6b87f8fe /src/plugins/debugger/watchhandler.cpp
parent37161a4194e117f389a6eae4220f845727198294 (diff)
debugger: immediate refresh after toggling sort order of struct members
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r--src/plugins/debugger/watchhandler.cpp39
1 files changed, 33 insertions, 6 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 2c80c368b75..3de5f5bc0f6 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -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)
{