pureqml / qmlcore Goto Github PK
View Code? Open in Web Editor NEWQML to Javascript/HTML5 translator. Ready for Mobile, Desktop and SmartTV platforms.
License: MIT License
QML to Javascript/HTML5 translator. Ready for Mobile, Desktop and SmartTV platforms.
License: MIT License
Mark all 'onXXXchanged' methods private in doc generation
for child objects without id, e.g. property Anchors anchors: Anchors { };
Add to documentation to particular component information about it's inheritance tree (e.g. WebItem->Rectangle->Item), so inherited properties and methods can be easily accessible.
Having kind of inheritance structure would be nice:
"interits": {
"name": "Rectangle",
"ref": "core/Ractangle",
"inherits": {
"name": "Item",
"ref": "core/Item",
"inherits": {
"name": "Object",
"ref": null,
"inherits": null
}
}
}
probably it make sense to add more complex schema rather than "qmlsource": "template".
e.g. "qmlsource": { "template": "dist/1/2/3/index", "destination": "../deployfolder/1/2/3/index"}
parsing /home/lifeart/repositories/qml2js/app.qml ... qml2js.app
ERROR: not well-formed (invalid token): line 1, column 0
ERROR: command ./qmlcore/qml-compiler -o build.web ./qmlcore/core ./qmlcore/platform/web ./qmlcore/platform/html5 . -a app failed with code 1
Consider the idea of having a number of typical properties in a single declaration.
Something like this:
property int x, y, z, width, height;
or more complicated:
property string text1: parent.text, text2: y, text3: "Blah-blah-blah " + parent.width;
If you try to handle 'rowsChanged' signal in ListModel corresponded handler will be not called.
Example for reproducing:
ListModel {
onRowsChanged: { log("onRowsChanged") }
}
Suggestion:
I suppose it's all because of conflict with property changed signal, I mean that 'onRowsChanged' handler is treated as handler for property 'rows' changed signal instead of 'rowsChanged' signal
Try to create, build and run all the stuff in Windows and document it
add the most aggressive options:
"-m", "--mangle-props=2", protect with "-r navigator", test with "-b"
changing styles on text div involves renderer changes. use single off-screen text div?
There are many warnings like this when model data drops
invalid removeListener(boxChanged, function () { [native code] }) invocation Error
at t.core.Text.t.core.EventEmitter.removeListener
if particular platform supports HW-acceleration use translateX/Y instead of left/top
when hovered one of the values in box shadow doesn't restored
Add 'templates' property into manifest for customizing files to be templated
Add more information about alias-like properties (reference to actual property, property type)
there is just a name without parameters or return value
Something like this:
Item {
context.location.onHashChanged: { }
}
and the same for signals without properties (we don't have one yet)
if it's not possible, convert to signal
QMLWEB project aims at bringing the power of QML to the web browser. Here's a sample of how QML looks like:
any comments or compression of this two projects?
sounds more natural, close to existing language practices
Let's consider something like this
http://doc.qt.io/qt-5/qml-qtqml-qt.html#createQmlObject-method
Add special refs to non-basic properties like Location in Context or Font in Text
onDurationChanged doesn't emitted in animation, code to reproduce:
app.qml.zip
Move event binding logic from onCompleted to constructor
Use 'Shadow' property instead of simple bool property.
Parser treat braces inside comment or string constant as scope brace.
Simple example for reproducing:
Item {
anchors.fill: context;
onCompleted: {
var str = "olololo {"
}
}
Error message:
ERROR: Expected "}" (at char 77), (line:8, col:1)
We must concatinate every line right now to write multi-line strings property values. It will be cool to write it like this:
text: "
foo
bar
";
It will be great to place 'controls' folder near 'src' and 'qmlcore' directories instead of inside 'src' directory.
remove explicitly created delayed actions:
this._delayedUpdateSize = new _globals.core.DelayedAction(this._context, function() {
this._updateSizeImpl()
}.bind(this))
Here is a couple of examples I found:
Text { text: (123.456).toFixed(2); }
//won't compile
Text {
text: radius.toFixed(2);
}
//Cannot read property 'toFixed' of undefined in runtime
replace with callback to component
possibly by making Object's prototype EventEmitter too.
*move property_xxxx storages into __propertyStorage[xxx]
*move prototype handlers __on_xxxx into __onHandlers[]
current fast scheme could generate visible artefacts and animations
Make possible to build apps for iPhone, AppleTV etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.