forked from qt-creator/qt-creator
Add a fake dereferencing item '*' to CDB for dumping QString*, etc.
Simplify the symbol group recursion to oblivion and make it parametrizable with predicates to control recursion and further processing. Most importantly, insert a parent item BEFORE its child item (ignoring for now the fact that child recursion might fail), making it possible to check and do magic on the parent, disabling further handling by the symbol context. Dumper handling can then kick in and handle pointed-to dumpeable items by inserting fake dereferencing items. Remove logic to detect already expanded items, just re-insert the children if the handler asks for it.
This commit is contained in:
@@ -877,7 +877,7 @@ void WatchHandler::watchExpression(const QString &exp)
|
||||
WatchData data;
|
||||
data.exp = exp;
|
||||
data.name = exp;
|
||||
if (exp == watcherEditPlaceHolder())
|
||||
if (exp.isEmpty() || exp == watcherEditPlaceHolder())
|
||||
data.setAllUnneeded();
|
||||
data.iname = watcherName(exp);
|
||||
insertData(data);
|
||||
@@ -1012,7 +1012,15 @@ void WatchHandler::loadWatchers()
|
||||
void WatchHandler::saveWatchers()
|
||||
{
|
||||
//qDebug() << "SAVE WATCHERS: " << m_watchers.keys();
|
||||
setSessionValueRequested("Watchers", QVariant(m_watcherNames.keys()));
|
||||
// Filter out valid watchers.
|
||||
QStringList watcherNames;
|
||||
const QHash<QString, int>::const_iterator cend = m_watcherNames.constEnd();
|
||||
for (QHash<QString, int>::const_iterator it = m_watcherNames.constBegin(); it != cend; ++it) {
|
||||
const QString &watcherName = it.key();
|
||||
if (!watcherName.isEmpty() && watcherName != watcherEditPlaceHolder())
|
||||
watcherNames.push_back(watcherName);
|
||||
}
|
||||
setSessionValueRequested("Watchers", QVariant(watcherNames));
|
||||
}
|
||||
|
||||
void WatchHandler::saveSessionData()
|
||||
|
||||
Reference in New Issue
Block a user