forked from qt-creator/qt-creator
Replace the current license disclaimer in files by a SPDX-License-Identifier. Task-number: QTBUG-67283 Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
|
|
|
#include "componentnodeinstance.h"
|
|
|
|
#include <QQmlComponent>
|
|
#include <QQmlContext>
|
|
|
|
#include <QDebug>
|
|
|
|
namespace QmlDesigner {
|
|
namespace Internal {
|
|
|
|
ComponentNodeInstance::ComponentNodeInstance(QQmlComponent *component)
|
|
: ObjectNodeInstance(component)
|
|
{
|
|
}
|
|
|
|
QQmlComponent *ComponentNodeInstance::component() const
|
|
{
|
|
Q_ASSERT(qobject_cast<QQmlComponent*>(object()));
|
|
return static_cast<QQmlComponent*>(object());
|
|
}
|
|
|
|
ComponentNodeInstance::Pointer ComponentNodeInstance::create(QObject *object)
|
|
{
|
|
QQmlComponent *component = qobject_cast<QQmlComponent *>(object);
|
|
|
|
Q_ASSERT(component);
|
|
|
|
Pointer instance(new ComponentNodeInstance(component));
|
|
|
|
instance->populateResetHashes();
|
|
|
|
return instance;
|
|
}
|
|
|
|
bool ComponentNodeInstance::hasContent() const
|
|
{
|
|
return true;
|
|
}
|
|
|
|
void ComponentNodeInstance::setNodeSource(const QString &source)
|
|
{
|
|
QByteArray data(source.toUtf8() + "\n");
|
|
data.prepend(nodeInstanceServer()->importCode());
|
|
|
|
component()->setData(data, QUrl(nodeInstanceServer()->fileUrl().toString() +
|
|
QLatin1Char('_')+ id()));
|
|
setId(id());
|
|
|
|
if (component()->isError()) {
|
|
const QList<QQmlError> errors = component()->errors();
|
|
for (const QQmlError &error : errors)
|
|
qWarning() << error;
|
|
}
|
|
|
|
}
|
|
|
|
} // Internal
|
|
} // QmlDesigner
|