diff options
Diffstat (limited to 'src/declarative/graphicsitems/qdeclarativeloader.cpp')
-rw-r--r-- | src/declarative/graphicsitems/qdeclarativeloader.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index 3cbafd6..0d62afa 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -41,7 +41,9 @@ #include "qdeclarativeloader_p_p.h" +#include <qdeclarativeinfo.h> #include <qdeclarativeengine_p.h> +#include <qdeclarativeglobal_p.h> QT_BEGIN_NAMESPACE @@ -185,9 +187,6 @@ void QDeclarativeLoader::setSource(const QUrl &url) if (d->source == url) return; - if (!qmlContext(this)->isSafeOrigin(url)) - return; - d->clear(); d->source = url; @@ -299,9 +298,9 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded() return; } if (obj) { - ctxt->setParent(obj); item = qobject_cast<QGraphicsObject *>(obj); if (item) { + QDeclarative_setParent_noEvent(ctxt, obj); if (QDeclarativeItem* qmlItem = qobject_cast<QDeclarativeItem *>(item)) { qmlItem->setParentItem(q); } else { @@ -310,8 +309,14 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded() } // item->setFocus(true); initResize(); + } else { + qmlInfo(q) << QDeclarativeLoader::tr("Loader does not support loading non-visual elements."); + delete obj; + delete ctxt; } } else { + if (!component->errors().isEmpty()) + qWarning() << component->errors(); delete obj; delete ctxt; source = QUrl(); |