QT 5.3.2 QCoreApplication::postEvent: Unexpected null receiver- Conflicting properties 'visible' and 'visibility' error
-
Upon running my QT application, I am seeing this Unexpected null receiver error. What is this error?
QCoreApplication::postEvent: Unexpected null receiver
file:///home/andy/Qt/5.3/gcc_64/qml/QtQuick/Controls/ApplicationWindow.qml: Conflicting properties 'visible' and 'visibility' for Window 'root'The error also mentions something about conflicting 'visible' and 'visibility' properties in ApplicationWindow.qml
-
I wanted to copy the contents of qquickwindowmodule.cpp (located in /home/andy/Qt/5.3/Src/qtdeclarative/src/quick/items/qquickwindowmodule.cpp) which contains the error message. I can't figure out why is the error message popping up when I run the application.
....
/****************************************************
** $QT_END_LICENSE$
**
****************************************************************************/#include "qquickwindowmodule_p.h"
#include "qquickscreen_p.h"
#include "qquickview_p.h"
#include <QtQuick/QQuickWindow>
#include <QtCore/QCoreApplication>
#include <QtQml/QQmlEngine>#include <private/qguiapplication_p.h>
#include <private/qqmlengine_p.h>
#include <qpa/qplatformintegration.h>QT_BEGIN_NAMESPACE
class QQuickWindowQmlImpl : public QQuickWindow, public QQmlParserStatus
{
Q_INTERFACES(QQmlParserStatus)
Q_OBJECTQ_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged) Q_PROPERTY(Visibility visibility READ visibility WRITE setVisibility NOTIFY visibilityChanged)
public:
QQuickWindowQmlImpl(QWindow *parent = 0)
: QQuickWindow(parent)
, m_complete(false)
, m_visible(isVisible())
, m_visibility(AutomaticVisibility)
{
connect(this, &QWindow::visibleChanged, this, &QQuickWindowQmlImpl::visibleChanged);
connect(this, &QWindow::visibilityChanged, this, &QQuickWindowQmlImpl::visibilityChanged);
}void setVisible(bool visible) { if (!m_complete) m_visible = visible; else if (!transientParent() || transientParent()->isVisible()) QQuickWindow::setVisible(visible); } void setVisibility(Visibility visibility) { if (!m_complete) m_visibility = visibility; else QQuickWindow::setVisibility(visibility); }
Q_SIGNALS:
void visibleChanged(bool arg);
void visibilityChanged(QWindow::Visibility visibility);protected:
void classBegin() {
QQmlEngine* e = qmlEngine(this);
//Give QQuickView behavior when created from QML with QQmlApplicationEngine
if (QCoreApplication::instance()->property("__qml_using_qqmlapplicationengine") == QVariant(true)) {
if (e && !e->incubationController())
e->setIncubationController(incubationController());
}
Q_ASSERT(e);
{
QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(e);
QV4::Scope scope(v4);
QV4::ScopedObject v(scope, new (v4->memoryManager) QQuickRootItemMarker(e, this));
rootItemMarker = v;
}
}void componentComplete() { m_complete = true; if (transientParent() && !transientParent()->isVisible()) { connect(transientParent(), &QQuickWindow::visibleChanged, this, &QQuickWindowQmlImpl::setWindowVisibility, Qt::QueuedConnection); } else { setWindowVisibility(); } }
private Q_SLOTS:
void setWindowVisibility()
{
if (transientParent() && !transientParent()->isVisible())
return;if (sender()) { disconnect(transientParent(), &QWindow::visibleChanged, this, &QQuickWindowQmlImpl::setWindowVisibility); } // We have deferred window creation until we have the full picture of what // the user wanted in terms of window state, geometry, visibility, etc. if ((m_visibility == Hidden && m_visible) || (m_visibility > AutomaticVisibility && !m_visible)) { QQmlData *data = QQmlData::get(this); Q_ASSERT(data && data->context); QQmlError error; error.setObject(this); const QQmlContextData* urlContext = data->context; while (urlContext && urlContext->url.isEmpty()) urlContext = urlContext->parent; error.setUrl(urlContext ? urlContext->url : QUrl()); QString objectId = data->context->findObjectId(this); if (!objectId.isEmpty()) error.setDescription(QCoreApplication::translate("QQuickWindowQmlImpl", "Conflicting properties 'visible' and 'visibility' for Window '%1'").arg(objectId)); else error.setDescription(QCoreApplication::translate("QQuickWindowQmlImpl", "Conflicting properties 'visible' and 'visibility'")); QQmlEnginePrivate::get(data->context->engine)->warning(error); } if (m_visibility == AutomaticVisibility) { setWindowState(QGuiApplicationPrivate::platformIntegration()->defaultWindowState(flags())); setVisible(m_visible); } else { setVisibility(m_visibility); } }
private:
bool m_complete;
bool m_visible;
Visibility m_visibility;
QV4::PersistentValue rootItemMarker;
};void QQuickWindowModule::defineModule()
{
const char uri[] = "QtQuick.Window";qmlRegisterType<QQuickWindow>(uri, 2, 0, "Window"); qmlRegisterRevision<QWindow,1>(uri, 2, 1); qmlRegisterRevision<QWindow,2>(uri, 2, 2); qmlRegisterRevision<QQuickWindow,1>(uri, 2, 1);//Type moved to a subclass, but also has new members qmlRegisterRevision<QQuickWindow,2>(uri, 2, 2); qmlRegisterType<QQuickWindowQmlImpl>(uri, 2, 1, "Window"); qmlRegisterUncreatableType<QQuickScreen>(uri, 2, 0, "Screen", QStringLiteral("Screen can only be used via the attached property."));
}
#include "qquickwindowmodule.moc"
QT_END_NAMESPACE
%%%%%%%%%%%%%%%%%55