Commit 568e80b5 authored by Thomas Hartmann's avatar Thomas Hartmann

QmlDesigner: get tests compiling and running

105 passing, 1 failing, one test seems flaky
I skip many nodeinstance/puppet related tests,
because the tests/test framework cannot deal with the qml2puppet/emulation
layer being out of process.

Change-Id: I5b254c7e6e944b8fbd8ba490c1e8bb43d0eb38c3
Reviewed-by: default avatarTim Jenssen <tim.jenssen@theqtcompany.com>
parent ec80aa80
...@@ -33,7 +33,9 @@ ...@@ -33,7 +33,9 @@
#include <QCoreApplication> #include <QCoreApplication>
#include <coreplugin/messagebox.h> #include <coreplugin/messagebox.h>
#ifndef QMLDESIGNER_TEST
#include <qmldesignerplugin.h> #include <qmldesignerplugin.h>
#endif
/*! /*!
\defgroup CoreExceptions \defgroup CoreExceptions
...@@ -86,9 +88,13 @@ bool Exception::shouldAssert() ...@@ -86,9 +88,13 @@ bool Exception::shouldAssert()
bool Exception::warnAboutException() bool Exception::warnAboutException()
{ {
#ifndef QMLDESIGNER_TEST
static bool warnException = !QmlDesignerPlugin::instance()->settings().value( static bool warnException = !QmlDesignerPlugin::instance()->settings().value(
DesignerSettingsKey::ENABLE_MODEL_EXCEPTION_OUTPUT).toBool(); DesignerSettingsKey::ENABLE_MODEL_EXCEPTION_OUTPUT).toBool();
return warnException; return warnException;
#else
return true;
#endif
} }
/*! /*!
......
...@@ -56,7 +56,11 @@ ...@@ -56,7 +56,11 @@
#include <nodeinstanceview.h> #include <nodeinstanceview.h>
#include <import.h> #include <import.h>
#include <rewriterview.h>
#ifndef QMLDESIGNER_TEST
#include <qmldesignerplugin.h> #include <qmldesignerplugin.h>
#endif
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
...@@ -82,11 +86,13 @@ namespace QmlDesigner { ...@@ -82,11 +86,13 @@ namespace QmlDesigner {
static void showCannotConnectToPuppetWarningAndSwitchToEditMode() static void showCannotConnectToPuppetWarningAndSwitchToEditMode()
{ {
#ifndef QMLDESIGNER_TEST
Core::AsynchronousMessageBox::warning(QCoreApplication::translate("NodeInstanceServerProxy", "Cannot Connect to QML Emulation Layer (QML Puppet)"), Core::AsynchronousMessageBox::warning(QCoreApplication::translate("NodeInstanceServerProxy", "Cannot Connect to QML Emulation Layer (QML Puppet)"),
QCoreApplication::translate("NodeInstanceServerProxy", "The executable of the QML emulation layer (QML Puppet) may not be responding. " QCoreApplication::translate("NodeInstanceServerProxy", "The executable of the QML emulation layer (QML Puppet) may not be responding. "
"Switching to another kit might help.")); "Switching to another kit might help."));
QmlDesignerPlugin::instance()->switchToTextModeDeferred(); QmlDesignerPlugin::instance()->switchToTextModeDeferred();
#endif
} }
...@@ -184,7 +190,9 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV ...@@ -184,7 +190,9 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV
Core::AsynchronousMessageBox::warning(tr("Cannot Start QML Emulation Layer (QML Puppet)"), Core::AsynchronousMessageBox::warning(tr("Cannot Start QML Emulation Layer (QML Puppet)"),
tr("The executable of the QML emulation layer (QML Puppet) process cannot be started or does not respond.")); tr("The executable of the QML emulation layer (QML Puppet) process cannot be started or does not respond."));
#ifndef QMLDESIGNER_TEST
QmlDesignerPlugin::instance()->switchToTextModeDeferred(); QmlDesignerPlugin::instance()->switchToTextModeDeferred();
#endif
} }
m_localServer->close(); m_localServer->close();
...@@ -197,6 +205,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV ...@@ -197,6 +205,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV
qDebug() << "file is open: " << isOpen; qDebug() << "file is open: " << isOpen;
} }
#ifndef QMLDESIGNER_TEST
DesignerSettings settings = QmlDesignerPlugin::instance()->settings(); DesignerSettings settings = QmlDesignerPlugin::instance()->settings();
int timeOutTime = settings.value(DesignerSettingsKey::PUPPET_KILL_TIMEOUT).toInt(); int timeOutTime = settings.value(DesignerSettingsKey::PUPPET_KILL_TIMEOUT).toInt();
m_firstTimer.setInterval(timeOutTime); m_firstTimer.setInterval(timeOutTime);
...@@ -209,6 +218,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV ...@@ -209,6 +218,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV
connect(&m_secondTimer, SIGNAL(timeout()), this, SLOT(processFinished())); connect(&m_secondTimer, SIGNAL(timeout()), this, SLOT(processFinished()));
connect(&m_thirdTimer, SIGNAL(timeout()), this, SLOT(processFinished())); connect(&m_thirdTimer, SIGNAL(timeout()), this, SLOT(processFinished()));
} }
#endif
} }
NodeInstanceServerProxy::~NodeInstanceServerProxy() NodeInstanceServerProxy::~NodeInstanceServerProxy()
......
...@@ -25,13 +25,13 @@ ...@@ -25,13 +25,13 @@
#include "puppetcreator.h" #include "puppetcreator.h"
#include <QProcess> #include "puppetbuildprogressdialog.h"
#include <QTemporaryDir>
#include <QCoreApplication> #include <model.h>
#include <QCryptographicHash> #ifndef QMLDESIGNER_TEST
#include <QDateTime> #include <qmldesignerplugin.h>
#include <QMessageBox> #endif
#include <QThread>
#include <projectexplorer/kit.h> #include <projectexplorer/kit.h>
#include <projectexplorer/toolchain.h> #include <projectexplorer/toolchain.h>
...@@ -43,9 +43,13 @@ ...@@ -43,9 +43,13 @@
#include <qtsupport/qtsupportconstants.h> #include <qtsupport/qtsupportconstants.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <QProcess>
#include <qmldesignerplugin.h> #include <QTemporaryDir>
#include "puppetbuildprogressdialog.h" #include <QCoreApplication>
#include <QCryptographicHash>
#include <QDateTime>
#include <QMessageBox>
#include <QThread>
namespace QmlDesigner { namespace QmlDesigner {
...@@ -103,16 +107,22 @@ QDateTime PuppetCreator::puppetSourceLastModified() const ...@@ -103,16 +107,22 @@ QDateTime PuppetCreator::puppetSourceLastModified() const
bool PuppetCreator::useOnlyFallbackPuppet() const bool PuppetCreator::useOnlyFallbackPuppet() const
{ {
#ifndef QMLDESIGNER_TEST
return m_designerSettings.value(DesignerSettingsKey::USE_ONLY_FALLBACK_PUPPET return m_designerSettings.value(DesignerSettingsKey::USE_ONLY_FALLBACK_PUPPET
).toBool() || m_kit == 0 || !m_kit->isValid(); ).toBool() || m_kit == 0 || !m_kit->isValid();
#else
return true;
#endif
} }
PuppetCreator::PuppetCreator(ProjectExplorer::Kit *kit, const QString &qtCreatorVersion, const Model *model) PuppetCreator::PuppetCreator(ProjectExplorer::Kit *kit, const QString &qtCreatorVersion, const Model *model)
: m_qtCreatorVersion(qtCreatorVersion), : m_qtCreatorVersion(qtCreatorVersion)
m_kit(kit), ,m_kit(kit)
m_availablePuppetType(FallbackPuppet), ,m_availablePuppetType(FallbackPuppet)
m_model(model), ,m_model(model)
m_designerSettings(QmlDesignerPlugin::instance()->settings()) #ifndef QMLDESIGNER_TEST
,m_designerSettings(QmlDesignerPlugin::instance()->settings())
#endif
{ {
} }
...@@ -152,8 +162,12 @@ QProcess *PuppetCreator::puppetProcess(const QString &puppetPath, ...@@ -152,8 +162,12 @@ QProcess *PuppetCreator::puppetProcess(const QString &puppetPath,
QObject::connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), puppetProcess, SLOT(kill())); QObject::connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), puppetProcess, SLOT(kill()));
QObject::connect(puppetProcess, SIGNAL(finished(int,QProcess::ExitStatus)), handlerObject, finishSlot); QObject::connect(puppetProcess, SIGNAL(finished(int,QProcess::ExitStatus)), handlerObject, finishSlot);
#ifndef QMLDESIGNER_TEST
QString forwardOutput = m_designerSettings.value(DesignerSettingsKey:: QString forwardOutput = m_designerSettings.value(DesignerSettingsKey::
FORWARD_PUPPET_OUTPUT).toString(); FORWARD_PUPPET_OUTPUT).toString();
#else
QString forwardOutput(QLatin1String("all"));
#endif
if (forwardOutput == puppetMode || forwardOutput == QLatin1String("all")) { if (forwardOutput == puppetMode || forwardOutput == QLatin1String("all")) {
puppetProcess->setProcessChannelMode(QProcess::MergedChannels); puppetProcess->setProcessChannelMode(QProcess::MergedChannels);
QObject::connect(puppetProcess, SIGNAL(readyRead()), handlerObject, outputSlot); QObject::connect(puppetProcess, SIGNAL(readyRead()), handlerObject, outputSlot);
...@@ -161,8 +175,12 @@ QProcess *PuppetCreator::puppetProcess(const QString &puppetPath, ...@@ -161,8 +175,12 @@ QProcess *PuppetCreator::puppetProcess(const QString &puppetPath,
puppetProcess->setWorkingDirectory(workingDirectory); puppetProcess->setWorkingDirectory(workingDirectory);
puppetProcess->start(puppetPath, QStringList() << socketToken << puppetMode << QLatin1String("-graphicssystem raster")); puppetProcess->start(puppetPath, QStringList() << socketToken << puppetMode << QLatin1String("-graphicssystem raster"));
#ifndef QMLDESIGNER_TEST
QString debugPuppet = m_designerSettings.value(DesignerSettingsKey:: QString debugPuppet = m_designerSettings.value(DesignerSettingsKey::
DEBUG_PUPPET).toString(); DEBUG_PUPPET).toString();
#else
QString debugPuppet(QLatin1String("all"));
#endif
if (debugPuppet == puppetMode || debugPuppet == QLatin1String("all")) { if (debugPuppet == puppetMode || debugPuppet == QLatin1String("all")) {
QMessageBox::information(Core::ICore::dialogParent(), QMessageBox::information(Core::ICore::dialogParent(),
QStringLiteral("Puppet is starting ..."), QStringLiteral("Puppet is starting ..."),
...@@ -281,11 +299,15 @@ QString PuppetCreator::defaultPuppetToplevelBuildDirectory() ...@@ -281,11 +299,15 @@ QString PuppetCreator::defaultPuppetToplevelBuildDirectory()
QString PuppetCreator::qmlPuppetToplevelBuildDirectory() const QString PuppetCreator::qmlPuppetToplevelBuildDirectory() const
{ {
#ifndef QMLDESIGNER_TEST
QString puppetToplevelBuildDirectory = m_designerSettings.value( QString puppetToplevelBuildDirectory = m_designerSettings.value(
DesignerSettingsKey::PUPPET_TOPLEVEL_BUILD_DIRECTORY).toString(); DesignerSettingsKey::PUPPET_TOPLEVEL_BUILD_DIRECTORY).toString();
if (puppetToplevelBuildDirectory.isEmpty()) if (puppetToplevelBuildDirectory.isEmpty())
return defaultPuppetToplevelBuildDirectory(); return defaultPuppetToplevelBuildDirectory();
return puppetToplevelBuildDirectory; return puppetToplevelBuildDirectory;
#else
return QString();
#endif
} }
QString PuppetCreator::qmlPuppetDirectory(PuppetType puppetType) const QString PuppetCreator::qmlPuppetDirectory(PuppetType puppetType) const
...@@ -307,11 +329,15 @@ QString PuppetCreator::defaultPuppetFallbackDirectory() ...@@ -307,11 +329,15 @@ QString PuppetCreator::defaultPuppetFallbackDirectory()
QString PuppetCreator::qmlPuppetFallbackDirectory() const QString PuppetCreator::qmlPuppetFallbackDirectory() const
{ {
#ifndef QMLDESIGNER_TEST
QString puppetFallbackDirectory = m_designerSettings.value( QString puppetFallbackDirectory = m_designerSettings.value(
DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY).toString(); DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY).toString();
if (puppetFallbackDirectory.isEmpty()) if (puppetFallbackDirectory.isEmpty())
return defaultPuppetFallbackDirectory(); return defaultPuppetFallbackDirectory();
return puppetFallbackDirectory; return puppetFallbackDirectory;
#else
return QString();
#endif
} }
QString PuppetCreator::qml2PuppetPath(PuppetType puppetType) const QString PuppetCreator::qml2PuppetPath(PuppetType puppetType) const
...@@ -333,8 +359,12 @@ QProcessEnvironment PuppetCreator::processEnvironment() const ...@@ -333,8 +359,12 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
environment.set(QLatin1String("QML_USE_MOCKUPS"), QLatin1String("true")); environment.set(QLatin1String("QML_USE_MOCKUPS"), QLatin1String("true"));
environment.set(QLatin1String("QML_PUPPET_MODE"), QLatin1String("true")); environment.set(QLatin1String("QML_PUPPET_MODE"), QLatin1String("true"));
#ifndef QMLDESIGNER_TEST
const QString controlsStyle = m_designerSettings.value(DesignerSettingsKey:: const QString controlsStyle = m_designerSettings.value(DesignerSettingsKey::
CONTROLS_STYLE).toString(); CONTROLS_STYLE).toString();
#else
const QString controlsStyle;
#endif
if (!controlsStyle.isEmpty()) if (!controlsStyle.isEmpty())
environment.set(QLatin1String("QT_QUICK_CONTROLS_STYLE"), controlsStyle); environment.set(QLatin1String("QT_QUICK_CONTROLS_STYLE"), controlsStyle);
......
...@@ -114,7 +114,9 @@ private: ...@@ -114,7 +114,9 @@ private:
PuppetType m_availablePuppetType; PuppetType m_availablePuppetType;
static QHash<Core::Id, PuppetType> m_qml2PuppetForKitPuppetHash; static QHash<Core::Id, PuppetType> m_qml2PuppetForKitPuppetHash;
const Model *m_model; const Model *m_model;
#ifndef QMLDESIGNER_TEST
const DesignerSettings m_designerSettings; const DesignerSettings m_designerSettings;
#endif
QString m_qrcMapping; QString m_qrcMapping;
}; };
......
...@@ -83,6 +83,7 @@ void MetaInfoPrivate::initialize() ...@@ -83,6 +83,7 @@ void MetaInfoPrivate::initialize()
void MetaInfoPrivate::parseItemLibraryDescriptions() void MetaInfoPrivate::parseItemLibraryDescriptions()
{ {
#ifndef QMLDESIGNER_TEST
Internal::WidgetPluginManager pluginManager; Internal::WidgetPluginManager pluginManager;
foreach (const QString &pluginDir, m_q->s_pluginDirs) foreach (const QString &pluginDir, m_q->s_pluginDirs)
pluginManager.addPath(pluginDir); pluginManager.addPath(pluginDir);
...@@ -98,6 +99,7 @@ void MetaInfoPrivate::parseItemLibraryDescriptions() ...@@ -98,6 +99,7 @@ void MetaInfoPrivate::parseItemLibraryDescriptions()
errorMessage); errorMessage);
} }
} }
#endif
} }
} // namespace Internal } // namespace Internal
......
...@@ -1958,9 +1958,14 @@ The view is informed that it has been registered within the model by a call to A ...@@ -1958,9 +1958,14 @@ The view is informed that it has been registered within the model by a call to A
void Model::attachView(AbstractView *view) void Model::attachView(AbstractView *view)
{ {
// Internal::WriteLocker locker(d); // Internal::WriteLocker locker(d);
RewriterView *rewriterView = qobject_cast<RewriterView*>(view); RewriterView *castedRewriterView = qobject_cast<RewriterView*>(view);
if (rewriterView) if (castedRewriterView) {
if (rewriterView() == castedRewriterView)
return;
setRewriterView(castedRewriterView);
return; return;
}
NodeInstanceView *nodeInstanceView = qobject_cast<NodeInstanceView*>(view); NodeInstanceView *nodeInstanceView = qobject_cast<NodeInstanceView*>(view);
if (nodeInstanceView) if (nodeInstanceView)
......
...@@ -84,9 +84,13 @@ bool QmlModelNodeFacade::isValid() const ...@@ -84,9 +84,13 @@ bool QmlModelNodeFacade::isValid() const
bool QmlModelNodeFacade::isValidQmlModelNodeFacade(const ModelNode &modelNode) bool QmlModelNodeFacade::isValidQmlModelNodeFacade(const ModelNode &modelNode)
{ {
return modelNode.isValid() return modelNode.isValid()
#ifndef QMLDESIGNER_TEST //This is a hack to keep tests working without instances
&& nodeInstanceView(modelNode) && nodeInstanceView(modelNode)
&& nodeInstanceView(modelNode)->hasInstanceForModelNode(modelNode) && nodeInstanceView(modelNode)->hasInstanceForModelNode(modelNode)
&& nodeInstanceView(modelNode)->instanceForModelNode(modelNode).isValid(); && nodeInstanceView(modelNode)->instanceForModelNode(modelNode).isValid();
#else
;
#endif
} }
bool QmlModelNodeFacade::isRootNode() const bool QmlModelNodeFacade::isRootNode() const
......
...@@ -35,7 +35,9 @@ ...@@ -35,7 +35,9 @@
#include "bindingproperty.h" #include "bindingproperty.h"
#include "nodelistproperty.h" #include "nodelistproperty.h"
#include "nodeinstanceview.h" #include "nodeinstanceview.h"
#ifndef QMLDESIGNER_TEST
#include <qmldesignerplugin.h> #include <qmldesignerplugin.h>
#endif
namespace QmlDesigner { namespace QmlDesigner {
...@@ -463,11 +465,16 @@ QVariant QmlObjectNode::instanceValue(const ModelNode &modelNode, const Property ...@@ -463,11 +465,16 @@ QVariant QmlObjectNode::instanceValue(const ModelNode &modelNode, const Property
QString QmlObjectNode::generateTranslatableText(const QString &text) QString QmlObjectNode::generateTranslatableText(const QString &text)
{ {
#ifndef QMLDESIGNER_TEST
if (QmlDesignerPlugin::instance()->settings().value( if (QmlDesignerPlugin::instance()->settings().value(
DesignerSettingsKey::USE_QSTR_FUNCTION).toBool()) DesignerSettingsKey::USE_QSTR_FUNCTION).toBool())
return QString(QStringLiteral("qsTr(\"%1\")")).arg(text); return QString(QStringLiteral("qsTr(\"%1\")")).arg(text);
else else
return QString(QStringLiteral("qsTrId(\"%1\")")).arg(text); return QString(QStringLiteral("qsTrId(\"%1\")")).arg(text);
#else
Q_UNUSED(text);
return QString();
#endif
} }
TypeName QmlObjectNode::instanceType(const PropertyName &name) const TypeName QmlObjectNode::instanceType(const PropertyName &name) const
......
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
#include "viewmanager.h" #include "viewmanager.h"
#ifndef QMLDESIGNER_TEST
#include <rewriterview.h> #include <rewriterview.h>
#include <nodeinstanceview.h> #include <nodeinstanceview.h>
#include <itemlibraryview.h> #include <itemlibraryview.h>
...@@ -44,7 +46,6 @@ ...@@ -44,7 +46,6 @@
#include <qmldesigner/qmldesignerplugin.h> #include <qmldesigner/qmldesignerplugin.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
namespace QmlDesigner { namespace QmlDesigner {
class ViewManagerData class ViewManagerData
...@@ -307,3 +308,5 @@ Model *ViewManager::documentModel() const ...@@ -307,3 +308,5 @@ Model *ViewManager::documentModel() const
} }
} // namespace QmlDesigner } // namespace QmlDesigner
#endif //QMLDESIGNER_TEST
...@@ -25,8 +25,13 @@ ...@@ -25,8 +25,13 @@
#include "rewritertransaction.h" #include "rewritertransaction.h"
#include <abstractview.h> #include <abstractview.h>
#ifndef QMLDESIGNER_TEST
#include <designdocument.h> #include <designdocument.h>
#include <qmldesignerplugin.h> #include <qmldesignerplugin.h>
#endif
#include <QDebug>
namespace QmlDesigner { namespace QmlDesigner {
...@@ -88,8 +93,10 @@ void RewriterTransaction::rollback() ...@@ -88,8 +93,10 @@ void RewriterTransaction::rollback()
if (m_valid) { if (m_valid) {
m_valid = false; m_valid = false;
view()->emitRewriterEndTransaction(); view()->emitRewriterEndTransaction();
QmlDesignerPlugin::instance()->currentDesignDocument()->undo();
#ifndef QMLDESIGNER_TEST
QmlDesignerPlugin::instance()->currentDesignDocument()->undo();
#endif
if (m_activeIdentifier) { if (m_activeIdentifier) {
qDebug() << "Rollback RewriterTransaction:" << m_identifier << m_identifierNumber; qDebug() << "Rollback RewriterTransaction:" << m_identifier << m_identifierNumber;
m_identifierList.removeOne(m_identifier + QByteArrayLiteral("-") + QByteArray::number(m_identifierNumber)); m_identifierList.removeOne(m_identifier + QByteArrayLiteral("-") + QByteArray::number(m_identifierNumber));
......
...@@ -47,15 +47,15 @@ ...@@ -47,15 +47,15 @@
static ModelNode addNodeListChild(const ModelNode &parentNode, const QString &typeName, int major, int minor, const QString &parentProperty) static ModelNode addNodeListChild(const ModelNode &parentNode, const QString &typeName, int major, int minor, const QString &parentProperty)
{ {
ModelNode newNode = parentNode.view()->createModelNode(typeName, major, minor); ModelNode newNode = parentNode.view()->createModelNode(typeName.toUtf8(), major, minor);
parentNode.nodeListProperty(parentProperty).reparentHere(newNode); parentNode.nodeListProperty(parentProperty.toUtf8()).reparentHere(newNode);
return newNode; return newNode;
} }
static ModelNode addNodeChild(const ModelNode &parentNode, const QString &typeName, int major, int minor, const QString &parentProperty) static ModelNode addNodeChild(const ModelNode &parentNode, const QString &typeName, int major, int minor, const QString &parentProperty)
{ {
ModelNode newNode = parentNode.view()->createModelNode(typeName, major, minor); ModelNode newNode = parentNode.view()->createModelNode(typeName.toUtf8(), major, minor);
parentNode.nodeProperty(parentProperty).reparentHere(newNode); parentNode.nodeProperty(parentProperty.toUtf8()).reparentHere(newNode);
return newNode; return newNode;
} }
...@@ -104,8 +104,8 @@ static bool compareTree(const ModelNode &node1, const ModelNode &node2) ...@@ -104,8 +104,8 @@ static bool compareTree(const ModelNode &node1, const ModelNode &node2)
// Compare list of children // Compare list of children
{ {
const QList<ModelNode> childList1 = node1.allDirectSubModelNodes(); const QList<ModelNode> childList1 = node1.directSubModelNodes();
const QList<ModelNode> childList2 = node2.allDirectSubModelNodes(); const QList<ModelNode> childList2 = node2.directSubModelNodes();
QList<ModelNode>::const_iterator iter1; QList<ModelNode>::const_iterator iter1;
QList<ModelNode>::const_iterator iter2; QList<ModelNode>::const_iterator iter2;
......
IDE_SOURCE_TREE=$$PWD/../../../../.. QTC_LIB_DEPENDS += \
IDE_BUILD_TREE=$$OUT_PWD/../../../../.. utils \
# can we check that this is a valid build dir? qmljs \
OUT_PWD_SAVE=$$OUT_PWD qmleditorwidgets \
OUT_PWD=IDE_BUILD_TREE cplusplus
include($$IDE_SOURCE_TREE/src/plugins/qmldesigner/config.pri)
include(../../../qttest.pri)
OUT_PWD=$$OUT_PWD_SAVE
LIBS *= -L$$IDE_PLUGIN_PATH
LIBS *= -L$$IDE_LIBRARY_PATH
unix: QMAKE_LFLAGS += \'-Wl,-rpath,$${IDE_LIBRARY_PATH}\' \'-Wl,-rpath,$${IDE_PLUGIN_PATH}\' QTC_PLUGIN_DEPENDS += \
coreplugin \
qmljseditor
QT += script \ include(../../../qttest.pri)
network include($$IDE_SOURCE_TREE/src/plugins/qmldesigner/config.pri)
QT += network core-private
greaterThan(QT_MAJOR_VERSION, 4) { greaterThan(QT_MAJOR_VERSION, 4) {