QML: attendre jusqu'à ce que les animations fini

Je suis en train d'essayer de rendre visible des animations séquentielle. J'ai une fonction javascript, qui appellent monmodèle.move() deux fois. J'ai un GridView pour montrer monmodèle et j'ai "Comportement sur x" de l'animation, donc je peux voir visuellement les mouvements. Mais, à la fois mouvement animatons s'exécute en parallèle (le petit retard entre eux n'est pas perceptible).

Mon idée était d'ajouter un compteur de nombre d'animations a été commencé et combien d'entre eux déjà fini. Quelque chose comme ceci;

Behavior on x {
    NumberAnimation {
        id: animationX;
        duration: 500;
        onRunningChanged: {
            if (animationX.running) {
                console.log("Animation start");
                myModel.busy = myModel.busy + 1
            } else {
                console.log("Animation stop");
                myModel.busy = myModel.busy - 1
            }
        }
    }
}

Cela fonctionne comme prévu. Ensuite, j'ajoute une boucle de ma fonction javascript à attendre jusqu'à ce que toutes les animations fini.

ListModel {
    id: myModel
    property int busy: 0
    function doSomething() {
        myModel.move(...)
        while (myModel.busy) {}
        myModel.move(...)
    }
}

Là est le problème. Je peux voir que, après le premier move() toutes les animations ont commencé, mais rien ne peut être vu et aucun de l'animation terminée. J'ai une sorte de blocage. Comment résoudre ce problème?

OriginalL'auteur meolic | 2012-09-07