Porting QML to JS/HTML5
Page |
2 |
The weather in Finland has been so excellent that not much has happened to my effort lately.
Anyways, I created a gitorious project so feel free to check the code out at https://gitorious.org/qmlweb (we discussed with zanettea and decided not to use his repository).
I wonder if this could be combined with QtGui in html5?
You can see a demo of it at
http://www.philipashmore.com/html5/timeline/
It’s part “v3c-storyboard” (I couldn’t call it “storyboard”
because of a name clash) in Sourceforge.
Comments welcome.
Depends. This far I’ve managed without, as the elements have been rather simple. However, if/as it gets more complicated in the future, middle layer may pay off. And more Qt-like, the better.
I took a quick glance to the sources, and there was also Qt’s signal-slot and event systems implemented. That’s something I had on todo-list before rewriting binding code…
Well, then sooner or later we’re going to have to take this to the next level and get a bit more organized, so the following issues have to be addressed.
1. Where to host (I guess gitorious is the logical choice)
This should also include showcase and doc web pages.
2. What to call it/them: QtHtml5Qml, QtHtml5QtCore, QtHtml5QtGui
seem over the top – any better names?
3. I’ve namespaced everything under Qt, is that too much?
4. (eventually) enable QtWebkit/Qml to step in with “real” c++
implementations, even avoiding downloading the .js files whose
functionality it replaces.
5. Collaborators! I for one would love to hand over chunks of work
(like the layout classes for starters) for willing participants.
6. Implementation coverage charts / progress
Thinking of “Uno”, it’s nice to see what features are done,
todo, and tested as percentages. This means project planning,
tools and an interface.
7. Qt5 – should we aim for that exclusively?
And of course anything else you can think of, insert/replace above.
I’ve created a thread called “QtHtml5Script anyone?”
http://developer.qt.nokia.com/forums/viewthread/8726as QtGui is something that might be of interest in its own right.
I think following the Qt hierarchy/model is the most sensible
approach.
Philip
Sorry, when I said “uno”, I really meant “mono” – see
http://go-mono.com/status/status.aspx?reference=4.0&profile=4.0&assembly=System
for some ideas.
I created a project in sourceForge called “qtjs”.
http://sourceforge.net/projects/qtjs/
I also created a thread with the same name here.
Hmm.
I think that QtJs would be useful in it’s own right.
I would suggest keeping them separate, just like they are (will be?) in Qt5 for that very reason.
Also, the code available will change a lot until I get the fakery^W implementation layer into a better state.
I’m working on that now, so borrowing and then modifying the code would not be a once-off.
I thought that if I wanted to include the QtScript generator examples then it would have to be GPL as well.
http://code.google.com/p/qtscriptgenerator/
I sent an email about this issue to Nokia and am awaiting feedback.
Yep, I just realized that I’ve got to change all those LGPL lines to GPL in the source, thanks.
Finally, do give me profs when you embed a copy of the software in your project, like you should for any GPL project.
Oh, and did I mention, collaborators welcome?
QtJs is useful on its own, but it also is useful for qml project. I’ve already forked UglifyJS code to the project to gain a Javascript parser. The preference (for bug fixes etc) is the original code/project, and keeping files borrowed to qml project somewhat up-to-date with the original.
I am not a lawyer, but I don’t see the GPL of qtscriptgenerator examples forcing you to use GPL on QtJs, as the examples can also be ran on qtscriptgenerator environment. Again, IANAL.
I’m all for GPL. If you wish to enforce principles of RM Stallman, I guess the right license would be AGPLv3 with “any later version” and http://www.gnu.org/philosophy/javascript-trap.html clauses.
Yeah, it’s about packaging. Assuming QtJs works without the examples, you can deliver two packages with different licenses. I guess these can be even served from same svn repository as long as the file clearly indicates to which package/license it belongs. For qml project, I’ve BSD-licensed all the core parts (files in src directory) and the rest of the files (test files in test directory) are, well, unlicensed. I think those could be also licensed to some other license, though in the end, it may also be court/lawyers to decide.
Now stopping the off-topic license speculation from my part.
That JavaScript trap link you posted got me to thinking.
If I’m going to write a facility that can substitute native code for a JavaScript url (or several) then it could be put to use to allow arbitrary substitutions, as the link describes.
Maybe this could be a general purpose plugin that can have wider applications.
I’ll start a thread called “JavaScript override” to discuss it.
Have you looked at emscripten? http://emscripten.org/
It’s a c++ to JavaScript converter!
I posted a message to the blog site about QtJs http://syntensity.blogspot.com/2011/07/emscripten-15.html
I hope this helps.
You must log in to post a reply. Not a member yet? Register here!
