forked from qt-creator/qt-creator
Debugger: Work around linguist issues
It gets confused by templates that use "class" (QTBUG-55478), and by certain complicated namespace usages (QTBUG-64007). Change-Id: I6029922344f6718b5893dd07daee0953366c442e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -202,7 +202,7 @@ public:
|
|||||||
QPersistentModelIndex m_currentIndex;
|
QPersistentModelIndex m_currentIndex;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class Predicate>
|
template <typename Predicate>
|
||||||
void forAllDebuggers(const Predicate &pred)
|
void forAllDebuggers(const Predicate &pred)
|
||||||
{
|
{
|
||||||
d->m_model->forItemsAtLevel<2>([pred](DebuggerTreeItem *titem) {
|
d->m_model->forItemsAtLevel<2>([pred](DebuggerTreeItem *titem) {
|
||||||
@@ -210,7 +210,7 @@ void forAllDebuggers(const Predicate &pred)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Predicate>
|
template <typename Predicate>
|
||||||
const DebuggerItem *findDebugger(const Predicate &pred)
|
const DebuggerItem *findDebugger(const Predicate &pred)
|
||||||
{
|
{
|
||||||
DebuggerTreeItem *titem = d->m_model->findItemAtLevel<2>([pred](DebuggerTreeItem *titem) {
|
DebuggerTreeItem *titem = d->m_model->findItemAtLevel<2>([pred](DebuggerTreeItem *titem) {
|
||||||
@@ -624,31 +624,6 @@ void DebuggerOptionsPage::finish()
|
|||||||
d->m_model->cancel();
|
d->m_model->cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
// DebuggerItemManager
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
DebuggerItemManager::DebuggerItemManager()
|
|
||||||
{
|
|
||||||
new DebuggerItemManagerPrivate;
|
|
||||||
connect(ICore::instance(), &ICore::saveSettingsRequested,
|
|
||||||
this, [] { d->saveDebuggers(); });
|
|
||||||
}
|
|
||||||
|
|
||||||
DebuggerItemManager::~DebuggerItemManager()
|
|
||||||
{
|
|
||||||
delete d;
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<DebuggerItem> DebuggerItemManager::debuggers()
|
|
||||||
{
|
|
||||||
QList<DebuggerItem> result;
|
|
||||||
forAllDebuggers([&result](const DebuggerItem &item) { result.append(item); });
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DebuggerItemManagerPrivate::autoDetectCdbDebuggers()
|
void DebuggerItemManagerPrivate::autoDetectCdbDebuggers()
|
||||||
{
|
{
|
||||||
FileNameList cdbs;
|
FileNameList cdbs;
|
||||||
@@ -826,42 +801,6 @@ void DebuggerItemManagerPrivate::readLegacyDebuggers(const FileName &file)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const DebuggerItem *DebuggerItemManager::findByCommand(const FileName &command)
|
|
||||||
{
|
|
||||||
return findDebugger([command](const DebuggerItem &item) {
|
|
||||||
return item.command() == command;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const DebuggerItem *DebuggerItemManager::findById(const QVariant &id)
|
|
||||||
{
|
|
||||||
return findDebugger([id](const DebuggerItem &item) {
|
|
||||||
return item.id() == id;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const DebuggerItem *DebuggerItemManager::findByEngineType(DebuggerEngineType engineType)
|
|
||||||
{
|
|
||||||
return findDebugger([engineType](const DebuggerItem &item) {
|
|
||||||
return item.engineType() == engineType;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant DebuggerItemManager::registerDebugger(const DebuggerItem &item)
|
|
||||||
{
|
|
||||||
return d->registerDebugger(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DebuggerItemManager::deregisterDebugger(const QVariant &id)
|
|
||||||
{
|
|
||||||
d->m_model->forItemsAtLevel<2>([id](DebuggerTreeItem *titem) {
|
|
||||||
if (titem->m_item.id() == id)
|
|
||||||
d->m_model->destroyItem(titem);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
static FileName userSettingsFileName()
|
static FileName userSettingsFileName()
|
||||||
{
|
{
|
||||||
QFileInfo settingsLocation(ICore::settings()->fileName());
|
QFileInfo settingsLocation(ICore::settings()->fileName());
|
||||||
@@ -1000,4 +939,62 @@ void DebuggerItemManagerPrivate::saveDebuggers()
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
// DebuggerItemManager
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DebuggerItemManager::DebuggerItemManager()
|
||||||
|
{
|
||||||
|
new DebuggerItemManagerPrivate;
|
||||||
|
connect(ICore::instance(), &ICore::saveSettingsRequested,
|
||||||
|
this, [] { d->saveDebuggers(); });
|
||||||
|
}
|
||||||
|
|
||||||
|
DebuggerItemManager::~DebuggerItemManager()
|
||||||
|
{
|
||||||
|
delete d;
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<DebuggerItem> DebuggerItemManager::debuggers()
|
||||||
|
{
|
||||||
|
QList<DebuggerItem> result;
|
||||||
|
forAllDebuggers([&result](const DebuggerItem &item) { result.append(item); });
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
const DebuggerItem *DebuggerItemManager::findByCommand(const FileName &command)
|
||||||
|
{
|
||||||
|
return findDebugger([command](const DebuggerItem &item) {
|
||||||
|
return item.command() == command;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const DebuggerItem *DebuggerItemManager::findById(const QVariant &id)
|
||||||
|
{
|
||||||
|
return findDebugger([id](const DebuggerItem &item) {
|
||||||
|
return item.id() == id;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const DebuggerItem *DebuggerItemManager::findByEngineType(DebuggerEngineType engineType)
|
||||||
|
{
|
||||||
|
return findDebugger([engineType](const DebuggerItem &item) {
|
||||||
|
return item.engineType() == engineType;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant DebuggerItemManager::registerDebugger(const DebuggerItem &item)
|
||||||
|
{
|
||||||
|
return d->registerDebugger(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebuggerItemManager::deregisterDebugger(const QVariant &id)
|
||||||
|
{
|
||||||
|
d->m_model->forItemsAtLevel<2>([id](DebuggerTreeItem *titem) {
|
||||||
|
if (titem->m_item.id() == id)
|
||||||
|
d->m_model->destroyItem(titem);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Debugger
|
} // namespace Debugger
|
||||||
|
|||||||
Reference in New Issue
Block a user