[Development] Qt 5.4 breaks binary compatibility on windows for builds using vs2010 and above
Hi, ms compiler uses access property of class methods for building the mangled name, so you should not change this between versions. InQt5.4.0qt-srcqtbasesrccorelibkernelqmetatype.h:643 you find this code #ifndef Q_NO_TEMPLATE_FRIENDS #ifndef Q_QDOC templatetypename T friend bool qRegisterSequentialConverter(); templatetypename, bool friend struct QtPrivate::ValueTypeIsMetaType; templatetypename, typename friend struct QtPrivate::ConverterMemberFunction; templatetypename, typename friend struct QtPrivate::ConverterMemberFunctionOk; templatetypename, typename, typename friend struct QtPrivate::ConverterFunctor; templatetypename T friend bool qRegisterAssociativeConverter(); templatetypename, bool friend struct QtPrivate::AssociativeValueTypeIsMetaType; templatetypename, bool friend struct QtPrivate::IsMetaTypePair; templatetypename, typename friend struct QtPrivate::MetaTypeSmartPointerHelper; #endif #else public: #endif static bool registerConverterFunction(const QtPrivate::AbstractConverterFunction *f, int from, int to); static void unregisterConverterFunction(int from, int to); you can see public access depends onQ_NO_TEMPLATE_FRIENDS being defined. if you look atQt5.3.2qt-srcqtbasesrccorelibglobalqcompilerdetection.h:88 you see #elif defined(_MSC_VER) # define Q_CC_MSVC # define Q_CC_MSVC_NET # define Q_OUTOFLINE_TEMPLATE inline # define Q_NO_TEMPLATE_FRIENDS soQ_NO_TEMPLATE_FRIENDS is defined for every ms compiler. inQt5.4.0qt-srcqtbasesrccorelibglobalqcompilerdetection.h:80 you can see a change: #elif defined(_MSC_VER) # define Q_CC_MSVC (_MSC_VER) # define Q_CC_MSVC_NET # define Q_OUTOFLINE_TEMPLATE inline # if _MSC_VER 1600 # define Q_NO_TEMPLATE_FRIENDS # endif so in 5.4registerConverterFunction andunregisterConverterFunction arenow private when build with vs 2010 and above. I have noticed that problem today with an own application ( build with qt before 5.4) where i get The procedure entry point ?unregisterConverterFunction@QMetaType@@SAXHH@Z could not be located in the dynamic link library Qt5Core.dll. when looking with depends.exe into the dll i cann only find a?unregisterConverterFunction@QMetaType@@CAXHH@Z ( note the S/C differnce). making public etc. depend on a define is imho a very bad idea and now we have the result broken binary compatibility, something which i think is taken a lot care of to NOT happen in Qt. Regards, Gunnar ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Adding new third party component three.js to Qt?
Sorry for raining on your parade, but… Keränen Pasi wrote: I¹d like to open the discussion on including the three library as part of Qt 5.6 and onwards. Mainly because this would give our users a better experience if we¹d bundle the right, tested version of Three.js together with the Qt version it was tested on. … we distribution packagers REALLY hate bundled libraries… The library will for now at least need some porting effort to make it run on top of Canvas3D as there are some HTML depencencies that need to be handled, plus V4VM has a few quirks that need to be accounted for. Hopefully some of the V4VM quirks are bugs and will be fixed in due time, but the HTML dependencies do remain. And my current experience with graphics APIs is that you want to test the whole stack together. If we e.g. add support for new extensions in Canvas3D, that can activate new codepaths in Three.js that again need testing and possibly new Qt specific delta must be added to the three.js for those parts. … and especially FORKED bundled libraries (where we stand no realistic chance of actually unbundling them). Distributions really want to have one system version of a library, (for the reasons explained, e.g., under https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries ). (That said, for JavaScript stuff, at least in Fedora, we do not have a general, application-independent way of handling this issue yet, see: https://fedoraproject.org/wiki/Packaging:JavaScript .) Kevin Kofler ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] QML: Event which triggers after document was fully loaded
Hello all! I'm working now at application which loads QML from a string and make screenshot of a window. And I'm surprised that there is no event which triggers when document was completly loaded; I talk about C++ part only. The simple example: QByteArray data(import QtQuick 2.3\n\ import QtQuick.Window 2.2\n\ \n\ Window {\n\ visible: true\n\ width: 360\n\ height: 360\n\ Text {\n\ anchors.centerIn: parent\n\ text: \Hello, world!\\n\ }\n\ }\n\); QQmlApplicationEngine engine; engine.loadData(data); QQuickWindow *rootObject = qobject_castQQuickWindow *(engine.rootObjects().first()); connect(rootObject,QQuickWindow::afterRendering,[=] () { QImage image = rootObject-grabWindow(); image.save(window.png,PNG,90); }); The execution hungs up on grabWindow(). All other events from QQuickWindow also not works. I was surpised again when tried to call grabWindow() from QML through singleton: Window { Component.onCompleted: someSingleton.makeScreenshot(); } It makes the image but text was not centered. It says that document was not really completed yet! Or not? So I came to conclusion that there is no way to know that a QML data was loaded. /P.S. Sorry for asking this question in development mail list but I've asked it in all other places. It look that only Qt developers //can clarifythis question./ ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] Heads up: removing deprecated QNX and BlackBerry mkspecs
Hi, I just wanted to give you a heads up that the following deprecated mkspecs are about to be removed: - qnx-armv7le-qcc - blackberry-armv7le-qcc - blackberry-playbook-armv7le-qcc Use {qnx,blackberry[-playbook]}-armle-v7-qcc instead. Regards, Rafael -- Rafael Roquetto | rafael.roque...@kdab.com | Software Engineer Klarälvdalens Datakonsult AB, a KDAB Group company Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322) KDAB - Qt Experts - Platform-independent software solutions smime.p7s Description: S/MIME cryptographic signature ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Qt 5.4 breaks binary compatibility on windows for builds using vs2010 and above
On Monday 12 January 2015 16:23:19 Gunnar Roth wrote: divmaking public etc. depend on a define is imho a very bad idea and now we have the result broken binary compatibility, something which i think is taken a lot care of to NOT happen in Qt./div Known and fixed issue. https://codereview.qt-project.org/102419 → 7393bb0af4c98cabef3138e4db60692e70d4c444 -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development