On 4/25/2016 2:31 AM, Simon Hausmann wrote:
Hi,
Thank you for your feedback.
Could you please elaborate what kind of changes you'd like to see to the QQmlComponent
API? It is not clear to me what you mean by "compiling loaded QML from a byte
array".
Similarly, could you please explain what you mean within loading definitions
into the component cache? Are you referring to the ability to populate the
component cache on application start up?
Regarding the qmldir files I conceptually agree that it would be nice to get
rid of them, but it is not an easy task and not a task that I think of being of
high priority (unless somebody convinces me otherwise). However one thing I
would like to see as an initial step in the same direction would be to generate
the content of the files automatically from meta-information for example in the
build system. Such a step would potentially allow for replacing these files
with a superior mechanism.
Could you please explain what you mean by an array of plugin bytes?
I also don't see a tight coupling between the QML engine and the network access
manager. What coupling are you referring to? Is it the ability to compile the
engine when the network access manager is disabled from the build?
Regarding internationalization support: I invite you to contribute the work
towards allowing different mechanisms for translations. It would probably make
most sense if you could attend the Qt conference to discuss the topic in person.
Simon
Simon:
I have a bunch of comments to offer.
Regarding QQmlComponent, The best answer I can give is to suggest different API
calls:
QQmlComponent.setData( Array of Human Readable QML Bytes )
QQmlComponent.BindImportName("import name","version major","version minor") ->
Binds an import Name
QQmlComponent.BindLibary("import name", compiled QQuickItem dynamic library) ->
Binds an import Name (NO MORE PLUGINS! IOS shared library issues here)
QQmlEngine->CheckForImportCollisions( "import name","version major","version
minor",QQmlComponent& gcomp)
QQmlEngine->LoadComponentIntoCache( "import name",bla-bla, QQmlComponent& gcomp)
QQmlEngine->UnloadLoadComponentFromCache( "import name",bla-bla)
Possible optimizations:
QQmlComponent.CompiletoByteArray() -> Output an array of "Compiled QML"
bytecode + dynamic (5.8 QML Compiler but NOT to C++ class files, to bytecode)
QQmlComponent.LoadCompiledByteArray() -> Load a previously Compiled QML
bytecode into the Component
filename.QML -> normal human readable QML
filename.QMC -> compiled qml byte file
Also, I think the day is fast coming where Qt Creator is no longer viable, only
the C++ code will have developer value.
Already, you cannot debug QML and C++ on Xcode for simulator/Device. There are
severe limitations and the support is tepid at best. Why fight that battle?
Android Studio 2.x series will have integrated C++ NDK debugging along with
acclerated Java debugging.
Why be content with KDAB 7 episode Jedi Knight series for Android & QT? Make
the jump to concentrate QT/Android development inside Android Studio 2.+
Microsoft has its own tools and deprecated Visual Studio 2010/12/13 Plugin and
QT is scrambling to try to support Visual Studio 2015 with some sort of plugin
replacement.
My recommendation is that Qt Creator resources be reduced massively to only
support the Yocto embedded targets on linux. The rest of the platforms should
seek to work with native tooling.
Also, the Meta Object compiler needs review because when you open the Qt
project in XCode, the metaobjects are major human readable problems
yet Xcode is the only environment that can actually debug QT C++ code on
Simulator and Device. Not Qt Creator. The generated projects need to have
much cleaner code.
Internationalization should be an open hook that the Qr(" ") is re-factored to
tap into. Then anybody could tap into the hook with their own internationalization
mechnanism. I would like to build the base library without the network manager, but I
think there are too many links to the network manager header file in GUI.
I would love to come to a conference, but I am just way too busy and have a
baby on the way, the wife will NEVER let me go to Europe to talk like a geek
for 4 days. Every spare dollar
is for domestic operations.
Cheers,
md
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development