forked from qt-creator/qt-creator
debugger: allow the user to hide the std:: and Qt's namespace
This commit is contained in:
@@ -196,6 +196,22 @@ DebuggerSettings *DebuggerSettings::instance()
|
||||
item = new SavedAction(instance);
|
||||
instance->insertItem(WatchPoint, item);
|
||||
|
||||
item = new SavedAction(instance);
|
||||
item->setSettingsKey(debugModeGroup, QLatin1String("ShowStandardNamespace"));
|
||||
item->setText(tr("Show std:: namespace for types"));
|
||||
item->setCheckable(true);
|
||||
item->setDefaultValue(true);
|
||||
item->setValue(true);
|
||||
instance->insertItem(ShowStdNamespace, item);
|
||||
|
||||
item = new SavedAction(instance);
|
||||
item->setSettingsKey(debugModeGroup, QLatin1String("ShowQtNamespace"));
|
||||
item->setText(tr("Show Qt's namespace for types"));
|
||||
item->setCheckable(true);
|
||||
item->setDefaultValue(true);
|
||||
item->setValue(true);
|
||||
instance->insertItem(ShowQtNamespace, item);
|
||||
|
||||
//
|
||||
// DebuggingHelper
|
||||
//
|
||||
|
||||
@@ -112,6 +112,8 @@ enum DebuggerActionCode
|
||||
WatchPoint,
|
||||
AssignValue,
|
||||
AssignType,
|
||||
ShowStdNamespace,
|
||||
ShowQtNamespace,
|
||||
|
||||
// Source List
|
||||
ListSourceFiles,
|
||||
|
||||
@@ -362,6 +362,8 @@ QWidget *CommonOptionsPage::createPage(QWidget *parent)
|
||||
m_ui.checkBoxEnableReverseDebugging);
|
||||
m_group.insert(theDebuggerAction(MaximalStackDepth),
|
||||
m_ui.spinBoxMaximalStackDepth);
|
||||
m_group.insert(theDebuggerAction(ShowStdNamespace), 0);
|
||||
m_group.insert(theDebuggerAction(ShowQtNamespace), 0);
|
||||
|
||||
#ifdef USE_REVERSE_DEBUGGING
|
||||
m_ui.checkBoxEnableReverseDebugging->hide();
|
||||
|
||||
@@ -111,6 +111,7 @@ private: ////////// General Interface //////////
|
||||
virtual void shutdown();
|
||||
|
||||
virtual void executeDebuggerCommand(const QString &command);
|
||||
virtual QString qtNamespace() const { return m_dumperHelper.qtNamespace(); }
|
||||
|
||||
private: ////////// General State //////////
|
||||
|
||||
|
||||
@@ -120,6 +120,7 @@ public:
|
||||
virtual bool checkConfiguration(int /* toolChain */, QString * /* errorMessage */, QString * /* settingsPage */ = 0) const { return true; }
|
||||
|
||||
virtual bool isSynchroneous() const { return false; }
|
||||
virtual QString qtNamespace() const { return QString(); }
|
||||
protected:
|
||||
void showStatusMessage(const QString &msg, int timeout = -1);
|
||||
DebuggerState state() const;
|
||||
|
||||
@@ -330,6 +330,7 @@ QString WatchData::shadowedName(const QString &name, int seen)
|
||||
return QCoreApplication::translate("Debugger::Internal::WatchData", "%1 <shadowed %2>").arg(name).arg(seen);
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// WatchModel
|
||||
@@ -385,6 +386,11 @@ void WatchModel::reinitialize()
|
||||
endRemoveRows();
|
||||
}
|
||||
|
||||
void WatchModel::emitAllChanged()
|
||||
{
|
||||
emit layoutChanged();
|
||||
}
|
||||
|
||||
void WatchModel::beginCycle()
|
||||
{
|
||||
emit enableUpdates(false);
|
||||
@@ -486,7 +492,7 @@ static inline QRegExp stdStringRegExp(const QString &charType)
|
||||
return re;
|
||||
}
|
||||
|
||||
QString niceType(const QString typeIn)
|
||||
static QString niceTypeHelper(const QString typeIn)
|
||||
{
|
||||
static QMap<QString, QString> cache;
|
||||
const QMap<QString, QString>::const_iterator it = cache.constFind(typeIn);
|
||||
@@ -588,6 +594,16 @@ QString niceType(const QString typeIn)
|
||||
return type;
|
||||
}
|
||||
|
||||
QString WatchModel::niceType(const QString &typeIn) const
|
||||
{
|
||||
QString type = niceTypeHelper(typeIn);
|
||||
if (theDebuggerBoolSetting(ShowStdNamespace))
|
||||
type = type.remove("std::");
|
||||
if (theDebuggerBoolSetting(ShowQtNamespace))
|
||||
type = type.remove(m_handler->m_manager->currentEngine()->qtNamespace());
|
||||
return type;
|
||||
}
|
||||
|
||||
static QString formattedValue(const WatchData &data,
|
||||
int individualFormat, int typeFormat)
|
||||
{
|
||||
@@ -1092,6 +1108,10 @@ WatchHandler::WatchHandler(DebuggerManager *manager)
|
||||
SIGNAL(triggered()), this, SLOT(watchExpression()));
|
||||
connect(theDebuggerAction(RemoveWatchExpression),
|
||||
SIGNAL(triggered()), this, SLOT(removeWatchExpression()));
|
||||
connect(theDebuggerAction(ShowStdNamespace),
|
||||
SIGNAL(triggered()), this, SLOT(emitAllChanged()));
|
||||
connect(theDebuggerAction(ShowQtNamespace),
|
||||
SIGNAL(triggered()), this, SLOT(emitAllChanged()));
|
||||
}
|
||||
|
||||
void WatchHandler::beginCycle()
|
||||
@@ -1125,6 +1145,13 @@ void WatchHandler::cleanup()
|
||||
#endif
|
||||
}
|
||||
|
||||
void WatchHandler::emitAllChanged()
|
||||
{
|
||||
m_locals->emitAllChanged();
|
||||
m_watchers->emitAllChanged();
|
||||
m_tooltips->emitAllChanged();
|
||||
}
|
||||
|
||||
void WatchHandler::insertData(const WatchData &data)
|
||||
{
|
||||
MODEL_DEBUG("INSERTDATA: " << data.toString());
|
||||
|
||||
@@ -221,10 +221,14 @@ private:
|
||||
|
||||
void dump();
|
||||
void dumpHelper(WatchItem *item);
|
||||
void emitAllChanged();
|
||||
|
||||
signals:
|
||||
void enableUpdates(bool);
|
||||
|
||||
private:
|
||||
QString niceType(const QString &typeIn) const;
|
||||
|
||||
WatchHandler *m_handler;
|
||||
WatchType m_type;
|
||||
WatchItem *m_root;
|
||||
@@ -245,6 +249,7 @@ public:
|
||||
Q_SLOT void watchExpression(const QString &exp);
|
||||
Q_SLOT void removeWatchExpression();
|
||||
Q_SLOT void removeWatchExpression(const QString &exp);
|
||||
Q_SLOT void emitAllChanged();
|
||||
void beginCycle(); // called at begin of updateLocals() cycle
|
||||
void updateWatchers(); // called after locals are fetched
|
||||
void endCycle(); // called after all results have been received
|
||||
|
||||
@@ -284,6 +284,8 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
|
||||
menu.addAction(theDebuggerAction(UseToolTipsInLocalsView));
|
||||
|
||||
menu.addAction(theDebuggerAction(AutoDerefPointers));
|
||||
menu.addAction(theDebuggerAction(ShowStdNamespace));
|
||||
menu.addAction(theDebuggerAction(ShowQtNamespace));
|
||||
|
||||
QAction *actAdjustColumnWidths =
|
||||
menu.addAction(tr("Adjust column widths to contents"));
|
||||
|
||||
Reference in New Issue
Block a user