diff options
author | hjk <[email protected]> | 2011-11-24 18:14:49 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2011-11-24 18:15:54 +0100 |
commit | 3a210a19c9be11de7a9887b34c84a8a02f8b971e (patch) | |
tree | de7b656f6db46473a32d307ff70e6fdf6b87f8fe /src/plugins/debugger/watchhandler.cpp | |
parent | 37161a4194e117f389a6eae4220f845727198294 (diff) |
debugger: immediate refresh after toggling sort order of struct members
Change-Id: Iac7de58ca8681a60a4b6c9d0e717eb57753898b5
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 39 |
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) { |