Bug 338277

Summary: Build failure with Qt 5.4
Product: [Plasma] kwin Reporter: Hrvoje Senjan <hrvoje.senjan>
Component: scriptingAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: git master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Hrvoje Senjan 2014-08-14 18:05:41 UTC
[  428s] In file included from /usr/include/qt5/QtQml/qqml.h:45:0,
[  428s]                  from /usr/include/qt5/QtQuick/qquickitem.h:46,
[  428s]                  from /usr/include/qt5/QtQuick/qquickpainteditem.h:45,
[  428s]                  from /usr/include/qt5/QtQuick/QQuickPaintedItem:1,
[  428s]                  from /home/abuild/rpmbuild/BUILD/kwin-5.0.41git/scripting/../thumbnailitem.h:26,
[  428s]                  from /home/abuild/rpmbuild/BUILD/kwin-5.0.41git/scripting/scripting.cpp:31:
[  428s] /usr/include/qt5/QtQml/qqmlprivate.h: In instantiation of 'static QObject* QQmlPrivate::AttachedPropertySelector<T, 1>::attachedProperties(QObject*) [with T = QQuickWindow]':
[  428s] /usr/include/qt5/QtQml/qqmlprivate.h:188:20:   required from 'static QObject* (* QQmlPrivate::AttachedPropertySelector<T, 1>::func())(QObject*) [with T = QQuickWindow; QQmlAttachedPropertiesFunc = QObject* (*)(QObject*)]'
[  428s] /usr/include/qt5/QtQml/qqmlprivate.h:198:130:   required from 'QObject* (* QQmlPrivate::attachedPropertiesFunc())(QObject*) [with T = QQuickWindow; QQmlAttachedPropertiesFunc = QObject* (*)(QObject*)]'
[  428s] /usr/include/qt5/QtQml/qqml.h:121:48:   required from 'int qmlRegisterType() [with T = QQuickWindow]'
[  428s] /home/abuild/rpmbuild/BUILD/kwin-5.0.41git/scripting/scripting.cpp:623:35:   required from here
[  428s] /usr/include/qt5/QtQml/qqmlprivate.h:180:48: error: cannot convert 'QQuickWindowAttached*' to 'QObject*' in return
[  428s]              return T::qmlAttachedProperties(obj);
[  428s]                                                 ^
[  428s] /usr/include/qt5/QtQml/qqmlprivate.h: In instantiation of 'static const QMetaObject* QQmlPrivate::AttachedPropertySelector<T, 1>::attachedPropertiesMetaObject(ReturnType* (*)(QObject*)) [with ReturnType = QQuickWindowAttached; T = QQuickWindow]':
[  428s] /usr/include/qt5/QtQml/qqmlprivate.h:191:74:   required from 'static const QMetaObject* QQmlPrivate::AttachedPropertySelector<T, 1>::metaObject() [with T = QQuickWindow]'
[  428s] /usr/include/qt5/QtQml/qqmlprivate.h:204:136:   required from 'const QMetaObject* QQmlPrivate::attachedPropertiesMetaObject() [with T = QQuickWindow]'
[  428s] /usr/include/qt5/QtQml/qqml.h:122:54:   required from 'int qmlRegisterType() [with T = QQuickWindow]'
[  428s] /home/abuild/rpmbuild/BUILD/kwin-5.0.41git/scripting/scripting.cpp:623:35:   required from here
[  428s] /usr/include/qt5/QtQml/qqmlprivate.h:184:20: error: incomplete type 'QQuickWindowAttached' used in nested name specifier
[  428s]              return &ReturnType::staticMetaObject;
[  428s]                     ^
[  428s] CMakeFiles/kdeinit_kwin.dir/build.make:1260: recipe for target 'CMakeFiles/kdeinit_kwin.dir/scripting/scripting.cpp.o' failed
[  428s] make[2]: *** [CMakeFiles/kdeinit_kwin.dir/scripting/scripting.cpp.o] Error 1



(the KWin version is not a symptom of versionitis, but rather that we need to differentiate git master and 5.0.x packages)
Comment 1 Martin Flöser 2014-08-15 05:10:24 UTC
Please report upstream, the line in question is:
qmlRegisterType<QQuickWindow>();
Comment 2 Martin Flöser 2014-09-03 07:48:44 UTC
Git commit c00c67bf29c10862a973289486a535c8566d5110 by Martin Gräßlin.
Committed on 03/09/2014 at 07:47.
Pushed by graesslin into branch 'master'.

[scripting] Drop qmlRegisterType for QQuickWindow

Not needed as one can just do:
import QtQuick.Window;

This fixes a build problem with Qt 5.4.

M  +0    -1    scripting/scripting.cpp
M  +1    -0    scripts/desktopchangeosd/contents/ui/osd.qml

http://commits.kde.org/kwin/c00c67bf29c10862a973289486a535c8566d5110