From 3f36dbd81a717b4cb00992f8566ac5c1d813c719 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 23 Jul 2010 18:20:13 +0200 Subject: [PATCH] debugger: simplify code for inserting new watchitems --- share/qtcreator/gdbmacros/dumper.py | 2 +- src/plugins/debugger/debuggerconstants.h | 1 - src/plugins/debugger/gdb/pythongdbengine.cpp | 5 +--- src/plugins/debugger/pdb/pdbengine.cpp | 5 +--- src/plugins/debugger/watchhandler.cpp | 26 +++++--------------- src/plugins/debugger/watchhandler.h | 1 - src/plugins/debugger/watchwindow.cpp | 7 +++--- 7 files changed, 12 insertions(+), 35 deletions(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 17c08e4d28a..1ab39aba908 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1169,7 +1169,7 @@ class Dumper: self.put('name="%s",' % escapedExp) self.put('exp="%s",' % escapedExp) handled = False - if exp == "" or len(exp) == 0: + if len(exp) == 0: # The case self.putValue(" ") self.putType(" ") self.putNumChild(0) diff --git a/src/plugins/debugger/debuggerconstants.h b/src/plugins/debugger/debuggerconstants.h index 5c2070bd8da..34d31bfc45d 100644 --- a/src/plugins/debugger/debuggerconstants.h +++ b/src/plugins/debugger/debuggerconstants.h @@ -214,7 +214,6 @@ enum ModelRoles LocalsPointerValueRole, // Pointer value (address) as quint64 LocalsIsWatchpointAtAddressRole, LocalsIsWatchpointAtPointerValueRole, - WatcherEditPlaceHolderRole, RequestWatchPointRole, RequestToggleWatchRole, RequestToolTipByExpressionRole, diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp index 74679e9f215..a9da01c2aeb 100644 --- a/src/plugins/debugger/gdb/pythongdbengine.cpp +++ b/src/plugins/debugger/gdb/pythongdbengine.cpp @@ -72,10 +72,7 @@ void GdbEngine::updateLocalsPython(const QByteArray &varList) it.next(); if (!watchers.isEmpty()) watchers += "##"; - if (it.key() == WatchHandler::watcherEditPlaceHolder().toLatin1()) - watchers += "#watch." + QByteArray::number(it.value()); - else - watchers += it.key() + "#watch." + QByteArray::number(it.value()); + watchers += it.key() + "#watch." + QByteArray::number(it.value()); } QByteArray options; diff --git a/src/plugins/debugger/pdb/pdbengine.cpp b/src/plugins/debugger/pdb/pdbengine.cpp index abd63b0e7d1..2395280fa0c 100644 --- a/src/plugins/debugger/pdb/pdbengine.cpp +++ b/src/plugins/debugger/pdb/pdbengine.cpp @@ -735,10 +735,7 @@ void PdbEngine::updateLocals() it.next(); if (!watchers.isEmpty()) watchers += "##"; - if (it.key() == WatchHandler::watcherEditPlaceHolder().toLatin1()) - watchers += "#watch." + QByteArray::number(it.value()); - else - watchers += it.key() + "#watch." + QByteArray::number(it.value()); + watchers += it.key() + "#watch." + QByteArray::number(it.value()); } QByteArray options; diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index d4dcf90f014..cadb0c13129 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -599,26 +599,18 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const case EngineActionsEnabledRole: return engine()->debuggerActionsEnabled(); - - case WatcherEditPlaceHolderRole: - return m_handler->watcherEditPlaceHolder(); } const WatchItem *item = watchItem(idx); const WatchItem &data = *item; - if (data.name == m_handler->watcherEditPlaceHolder()) { - if (idx.column() == 0 && - (role == Qt::EditRole || role == Qt::DisplayRole)) - return data.name; - return QVariant(); - } - switch (role) { case Qt::EditRole: case Qt::DisplayRole: { switch (idx.column()) { case 0: + if (data.name.isEmpty() && role == Qt::DisplayRole) + return tr(""); if (data.name == QLatin1String("*") && item->parent) return QVariant(QLatin1Char('*') + item->parent->name); return data.name; @@ -836,7 +828,7 @@ Qt::ItemFlags WatchModel::flags(const QModelIndex &idx) const return editable; // Watcher names are editable. if (data.isWatcher()) { - if (data.name != m_handler->watcherEditPlaceHolder()) { + if (!data.name.isEmpty()) { // FIXME: Forcing types is not implemented yet. //if (idx.column() == 2) // return editable; // Watcher types can be set by force. @@ -1249,7 +1241,7 @@ QByteArray WatchHandler::watcherName(const QByteArray &exp) void WatchHandler::watchExpression(const QString &exp) { // Do not insert multiple placeholders. - if (exp == watcherEditPlaceHolder() && m_watcherNames.contains(exp.toLatin1())) + if (exp.isEmpty() && m_watcherNames.contains(QByteArray())) return; // FIXME: 'exp' can contain illegal characters @@ -1257,7 +1249,7 @@ void WatchHandler::watchExpression(const QString &exp) data.exp = exp.toLatin1(); data.name = exp; m_watcherNames[data.exp] = watcherCounter++; - if (exp.isEmpty() || exp == watcherEditPlaceHolder()) + if (exp.isEmpty()) data.setAllUnneeded(); data.iname = watcherName(data.exp); if (m_engine->isSynchroneous() && !m_engine->isSessionEngine()) @@ -1416,7 +1408,7 @@ QStringList WatchHandler::watchedExpressions() const while (it.hasNext()) { it.next(); const QString &watcherName = it.key(); - if (!watcherName.isEmpty() && watcherName != watcherEditPlaceHolder()) + if (!watcherName.isEmpty()) watcherNames.push_back(watcherName); } return watcherNames; @@ -1528,12 +1520,6 @@ WatchData *WatchHandler::findItem(const QByteArray &iname) const return model->findItem(iname, model->m_root); } -QString WatchHandler::watcherEditPlaceHolder() -{ - static const QString rc = tr(""); - return rc; -} - void WatchHandler::setFormat(const QString &type, int format) { if (format == -1) diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h index b683b788d74..2206b72c1b3 100644 --- a/src/plugins/debugger/watchhandler.h +++ b/src/plugins/debugger/watchhandler.h @@ -171,7 +171,6 @@ public: QByteArray typeFormatRequests() const; QByteArray individualFormatRequests() const; - static QString watcherEditPlaceHolder(); int format(const QByteArray &iname) const; void addTypeFormats(const QString &type, const QStringList &formats); diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index e6ff313d977..af3bf110a6d 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -206,9 +206,8 @@ void WatchWindow::mouseDoubleClickEvent(QMouseEvent *ev) { const QModelIndex idx = indexAt(ev->pos()); if (!idx.isValid()) { - // The "" string. - QVariant placeHolder = model()->data(idx, WatcherEditPlaceHolderRole); - setModelData(RequestWatchExpressionRole, placeHolder); + // The "" case. + watchExpression(QString()); return; } QTreeView::mouseDoubleClickEvent(ev); @@ -410,7 +409,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) } else if (act == actAlwaysAdjustColumnWidth) { setAlwaysResizeColumnsToContents(!m_alwaysResizeColumnsToContents); } else if (act == actInsertNewWatchItem) { - watchExpression(WatchHandler::watcherEditPlaceHolder()); + watchExpression(QString()); } else if (act == actOpenMemoryEditAtVariableAddress) { setModelData(RequestShowMemoryRole, address); } else if (act == actOpenMemoryEditAtPointerValue) {