forked from qt-creator/qt-creator
QmlDesigner: Do not require a qmake project for designer import paths
Let's enable all build system plugins to provide this information. Task-number: QTCREATORBUG-20810 Change-Id: I0ef953e3c2c9a2be1fc4187e93232e9a2aeacafd Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -855,6 +855,13 @@ Utils::MacroExpander *Project::macroExpander() const
|
||||
return &d->m_macroExpander;
|
||||
}
|
||||
|
||||
QVariant Project::additionalData(Core::Id id, const Target *target) const
|
||||
{
|
||||
Q_UNUSED(id);
|
||||
Q_UNUSED(target);
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
bool Project::isParsing() const
|
||||
{
|
||||
return d->m_isParsing;
|
||||
|
@@ -166,6 +166,8 @@ public:
|
||||
void setup(const QList<const BuildInfo *> &infoList);
|
||||
Utils::MacroExpander *macroExpander() const;
|
||||
|
||||
virtual QVariant additionalData(Core::Id id, const Target *target) const;
|
||||
|
||||
bool isParsing() const;
|
||||
bool hasParsingData() const;
|
||||
|
||||
|
@@ -673,6 +673,11 @@ void Target::setNamedSettings(const QString &name, const QVariant &value)
|
||||
d->m_pluginSettings.insert(name, value);
|
||||
}
|
||||
|
||||
QVariant Target::additionalData(Core::Id id) const
|
||||
{
|
||||
return project()->additionalData(id, this);
|
||||
}
|
||||
|
||||
void Target::updateDeviceState()
|
||||
{
|
||||
IDevice::ConstPtr current = DeviceKitInformation::device(kit());
|
||||
|
@@ -120,6 +120,8 @@ public:
|
||||
QVariant namedSettings(const QString &name) const;
|
||||
void setNamedSettings(const QString &name, const QVariant &value);
|
||||
|
||||
QVariant additionalData(Core::Id id) const;
|
||||
|
||||
template<typename S, typename R, typename T>
|
||||
void subscribeSignal(void (S::*sig)(), R*recv, T (R::*sl)()) {
|
||||
new Internal::TargetSubscription([sig, recv, sl, this](ProjectConfiguration *pc) {
|
||||
|
@@ -1378,6 +1378,13 @@ QString QmakeProject::mapProFilePathToTarget(const FileName &proFilePath)
|
||||
return pro ? pro->targetInformation().target : QString();
|
||||
}
|
||||
|
||||
QVariant QmakeProject::additionalData(Core::Id id, const Target *target) const
|
||||
{
|
||||
if (id == "QmlDesignerImportPath")
|
||||
return rootProjectNode()->variableValue(Variable::QmlDesignerImportPath);
|
||||
return Project::additionalData(id, target);
|
||||
}
|
||||
|
||||
} // namespace QmakeProjectManager
|
||||
|
||||
#include "qmakeproject.moc"
|
||||
|
@@ -111,6 +111,8 @@ public:
|
||||
|
||||
QString mapProFilePathToTarget(const Utils::FileName &proFilePath);
|
||||
|
||||
QVariant additionalData(Core::Id id, const ProjectExplorer::Target *target) const final;
|
||||
|
||||
signals:
|
||||
void proFileUpdated(QmakeProjectManager::QmakeProFile *pro, bool, bool);
|
||||
void buildDirectoryInitialized();
|
||||
|
@@ -39,9 +39,8 @@
|
||||
#include <projectexplorer/kit.h>
|
||||
#include <projectexplorer/project.h>
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
#include <projectexplorer/target.h>
|
||||
#include <projectexplorer/toolchain.h>
|
||||
#include <qmakeprojectmanager/qmakeproject.h>
|
||||
#include <qmakeprojectmanager/qmakenodes.h>
|
||||
#include <coreplugin/messagebox.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <qtsupport/baseqtversion.h>
|
||||
@@ -468,12 +467,10 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
|
||||
if (!styleConfigFileName.isEmpty())
|
||||
environment.appendOrSet("QT_QUICK_CONTROLS_CONF", styleConfigFileName);
|
||||
|
||||
if (m_currentProject) {
|
||||
auto qmakeProject = qobject_cast<QmakeProjectManager::QmakeProject *>(m_currentProject);
|
||||
if (qmakeProject) {
|
||||
QStringList designerImports = qmakeProject->rootProjectNode()->variableValue(QmakeProjectManager::Variable::QmlDesignerImportPath);
|
||||
importPaths.append(designerImports);
|
||||
}
|
||||
if (m_currentProject && m_currentProject->activeTarget()) {
|
||||
QStringList designerImports = m_currentProject->activeTarget()
|
||||
->additionalData("QmlDesignerImportPath").toStringList();
|
||||
importPaths.append(designerImports);
|
||||
}
|
||||
|
||||
if (m_availablePuppetType == FallbackPuppet)
|
||||
|
Reference in New Issue
Block a user