forked from qt-creator/qt-creator
ProjectExplorer: Add "Generate" sub-menu to build menu
Preparation for adding more generators. Task-number: QTCREATORBUG-28149 Change-Id: I4afa183a6fbd8ee88fc978b382f28cf9e52f09e9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
#include <utils/stringutils.h>
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QHash>
|
||||
|
||||
#include <limits>
|
||||
|
||||
@@ -178,6 +179,7 @@ public:
|
||||
Context m_projectLanguages;
|
||||
QVariantMap m_pluginSettings;
|
||||
std::unique_ptr<Internal::UserFileAccessor> m_accessor;
|
||||
QHash<Id, QPair<QString, std::function<void()>>> m_generators;
|
||||
|
||||
QString m_displayName;
|
||||
|
||||
@@ -1054,6 +1056,27 @@ bool Project::isEditModePreferred() const
|
||||
return true;
|
||||
}
|
||||
|
||||
void Project::registerGenerator(Utils::Id id, const QString &displayName,
|
||||
const std::function<void ()> &runner)
|
||||
{
|
||||
d->m_generators.insert(id, qMakePair(displayName, runner));
|
||||
}
|
||||
|
||||
const QList<QPair<Id, QString>> Project::allGenerators() const
|
||||
{
|
||||
QList<QPair<Id, QString>> generators;
|
||||
for (auto it = d->m_generators.cbegin(); it != d->m_generators.cend(); ++it)
|
||||
generators << qMakePair(it.key(), it.value().first);
|
||||
return generators;
|
||||
}
|
||||
|
||||
void Project::runGenerator(Utils::Id id)
|
||||
{
|
||||
const auto it = d->m_generators.constFind(id);
|
||||
if (it != d->m_generators.constEnd())
|
||||
it.value().second();
|
||||
}
|
||||
|
||||
#if defined(WITH_TESTS)
|
||||
|
||||
static FilePath constructTestPath(const QString &basePath)
|
||||
|
||||
Reference in New Issue
Block a user