On Friday, 10 April 2015 at 19:26:28 UTC, Jonas Drewsen wrote:
Cool!

I am not really that much into qml... but isn't much of the power of qml coming from using javascript to do logic and bindings?

Can you do D code stuff in the DML markup to handle that part e.g. by mixin of the DML?

Keep up the good work.

/Jonas

So far, I'm going to implement

* automatic mapping of loaded widgets to member variables (based on matching of widget id and variable names, or, possible mixin adding of member variables for all of widgets with ids)

* automatic mapping of loaded widget signals to handlers

Mixing in handlers written in D from DML is possible, in some of future implementations. So far, I'm not sure that it's better than just having external signal handlers automatically mapped, e.g. by name.

sample DML:
{
    HorizontalLayout {
        TextWidget { text: "Enter file name:" }
        EditLine {
            id: edFileName

        }
        Button {
            id: btnOpen
            text: "Open"
            click = onBtnOpenClick
        }
    }
}

...
// class members
EditLine _edFileName;
bool onBtnOpenClick(Widget src) {
window.showMessageBox("Open"d, "File name:"d ~ _edFileName.text);
    return true;
}

Member variable `EditLine _edFileName;` could be added automatically by mixin, or at least it's value can be initialized on load Signal handler may be assigned either if explicitly defined in DML (`click = onBtnOpenClick` means widget click signal should be connected to member function onBtnOpenClick) or just found based on widget Id and signal name (e.g. if there is widget with id="btnOpen" and class method onBtnOpenClick - loader mixin could automatically decide to assign this method as signal handler of widget (like it's dont in VB).

I'm not sure if alternative definition is better

        Button {
            id: btnOpen
            text: "Open"
click = { window.showMessageBox("Open"d, "File name:"d ~ edFileName.text); }
        }

Reply via email to