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;
|
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
|
bool Project::isParsing() const
|
||||||
{
|
{
|
||||||
return d->m_isParsing;
|
return d->m_isParsing;
|
||||||
|
@@ -166,6 +166,8 @@ public:
|
|||||||
void setup(const QList<const BuildInfo *> &infoList);
|
void setup(const QList<const BuildInfo *> &infoList);
|
||||||
Utils::MacroExpander *macroExpander() const;
|
Utils::MacroExpander *macroExpander() const;
|
||||||
|
|
||||||
|
virtual QVariant additionalData(Core::Id id, const Target *target) const;
|
||||||
|
|
||||||
bool isParsing() const;
|
bool isParsing() const;
|
||||||
bool hasParsingData() const;
|
bool hasParsingData() const;
|
||||||
|
|
||||||
|
@@ -673,6 +673,11 @@ void Target::setNamedSettings(const QString &name, const QVariant &value)
|
|||||||
d->m_pluginSettings.insert(name, value);
|
d->m_pluginSettings.insert(name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QVariant Target::additionalData(Core::Id id) const
|
||||||
|
{
|
||||||
|
return project()->additionalData(id, this);
|
||||||
|
}
|
||||||
|
|
||||||
void Target::updateDeviceState()
|
void Target::updateDeviceState()
|
||||||
{
|
{
|
||||||
IDevice::ConstPtr current = DeviceKitInformation::device(kit());
|
IDevice::ConstPtr current = DeviceKitInformation::device(kit());
|
||||||
|
@@ -120,6 +120,8 @@ public:
|
|||||||
QVariant namedSettings(const QString &name) const;
|
QVariant namedSettings(const QString &name) const;
|
||||||
void setNamedSettings(const QString &name, const QVariant &value);
|
void setNamedSettings(const QString &name, const QVariant &value);
|
||||||
|
|
||||||
|
QVariant additionalData(Core::Id id) const;
|
||||||
|
|
||||||
template<typename S, typename R, typename T>
|
template<typename S, typename R, typename T>
|
||||||
void subscribeSignal(void (S::*sig)(), R*recv, T (R::*sl)()) {
|
void subscribeSignal(void (S::*sig)(), R*recv, T (R::*sl)()) {
|
||||||
new Internal::TargetSubscription([sig, recv, sl, this](ProjectConfiguration *pc) {
|
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();
|
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
|
} // namespace QmakeProjectManager
|
||||||
|
|
||||||
#include "qmakeproject.moc"
|
#include "qmakeproject.moc"
|
||||||
|
@@ -111,6 +111,8 @@ public:
|
|||||||
|
|
||||||
QString mapProFilePathToTarget(const Utils::FileName &proFilePath);
|
QString mapProFilePathToTarget(const Utils::FileName &proFilePath);
|
||||||
|
|
||||||
|
QVariant additionalData(Core::Id id, const ProjectExplorer::Target *target) const final;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void proFileUpdated(QmakeProjectManager::QmakeProFile *pro, bool, bool);
|
void proFileUpdated(QmakeProjectManager::QmakeProFile *pro, bool, bool);
|
||||||
void buildDirectoryInitialized();
|
void buildDirectoryInitialized();
|
||||||
|
@@ -39,9 +39,8 @@
|
|||||||
#include <projectexplorer/kit.h>
|
#include <projectexplorer/kit.h>
|
||||||
#include <projectexplorer/project.h>
|
#include <projectexplorer/project.h>
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
|
#include <projectexplorer/target.h>
|
||||||
#include <projectexplorer/toolchain.h>
|
#include <projectexplorer/toolchain.h>
|
||||||
#include <qmakeprojectmanager/qmakeproject.h>
|
|
||||||
#include <qmakeprojectmanager/qmakenodes.h>
|
|
||||||
#include <coreplugin/messagebox.h>
|
#include <coreplugin/messagebox.h>
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <qtsupport/baseqtversion.h>
|
#include <qtsupport/baseqtversion.h>
|
||||||
@@ -468,13 +467,11 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
|
|||||||
if (!styleConfigFileName.isEmpty())
|
if (!styleConfigFileName.isEmpty())
|
||||||
environment.appendOrSet("QT_QUICK_CONTROLS_CONF", styleConfigFileName);
|
environment.appendOrSet("QT_QUICK_CONTROLS_CONF", styleConfigFileName);
|
||||||
|
|
||||||
if (m_currentProject) {
|
if (m_currentProject && m_currentProject->activeTarget()) {
|
||||||
auto qmakeProject = qobject_cast<QmakeProjectManager::QmakeProject *>(m_currentProject);
|
QStringList designerImports = m_currentProject->activeTarget()
|
||||||
if (qmakeProject) {
|
->additionalData("QmlDesignerImportPath").toStringList();
|
||||||
QStringList designerImports = qmakeProject->rootProjectNode()->variableValue(QmakeProjectManager::Variable::QmlDesignerImportPath);
|
|
||||||
importPaths.append(designerImports);
|
importPaths.append(designerImports);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (m_availablePuppetType == FallbackPuppet)
|
if (m_availablePuppetType == FallbackPuppet)
|
||||||
importPaths.prepend(QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath));
|
importPaths.prepend(QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath));
|
||||||
|
Reference in New Issue
Block a user