Example #1
0
        public void TestStartGroupWithRunningChild()
        {
            var group = new QParallelAnimationGroup();

            var anim1 = new TestAnimation();

            anim1.StartValue = new QVariant(0);
            anim1.EndValue   = new QVariant(100);
            anim1.SetDuration(200);

            var anim2 = new TestAnimation();

            anim2.StartValue = new QVariant(0);
            anim2.EndValue   = new QVariant(100);
            anim2.SetDuration(200);

            var spy1 = 0;

            anim1.StateChanged += (arg1, arg2) => { spy1++; };
            var spy2 = 0;

            anim2.StateChanged += (arg1, arg2) => { spy2++; };

            Assert.AreEqual(0, spy1);
            Assert.AreEqual(0, spy2);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state);

            group.AddAnimation(anim1);
            group.AddAnimation(anim2);

            anim1.Start();
            anim2.Start();
            anim2.Pause();

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state);

            group.Start();
            Assert.AreEqual(3, spy1);
            Assert.AreEqual(4, spy2);

            Assert.AreEqual(QAbstractAnimation.State.Running, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim2.state);
        }
Example #2
0
        public void TestUpdateChildrenWithRunningGroup()
        {
            var group = new QParallelAnimationGroup();

            var anim = new TestAnimation();

            anim.StartValue = new QVariant(0);
            anim.EndValue   = new QVariant(100);
            anim.SetDuration(200);

            var groupStateChangedSpy = 0;

            group.StateChanged += (arg1, arg2) => { groupStateChangedSpy++; };

            var childStateChangedSpy = 0;

            anim.StateChanged += (arg1, arg2) => { childStateChangedSpy++; };

            Assert.AreEqual(0, groupStateChangedSpy);
            Assert.AreEqual(0, childStateChangedSpy);

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim.state);

            group.AddAnimation(anim);

            group.Start();
            Assert.AreEqual(QAbstractAnimation.State.Running, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim.state);

            Assert.AreEqual(1, groupStateChangedSpy);
            Assert.AreEqual(1, childStateChangedSpy);

            anim.Start();
            Assert.AreEqual(1, groupStateChangedSpy);
            Assert.AreEqual(1, childStateChangedSpy);

            anim.Pause();
            Assert.AreEqual(QAbstractAnimation.State.Running, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Paused, anim.state);

            // in the animation stops directly, the group will still be running
            anim.Stop();
            Assert.AreEqual(QAbstractAnimation.State.Running, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim.state);
        }
Example #3
0
        public void TestStopGroupWithRunningChild()
        {
            // test if children can be activated when their group is stopped
            var group = new QParallelAnimationGroup();

            var anim1 = new TestAnimation();

            anim1.StartValue = new QVariant(0);
            anim1.EndValue   = new QVariant(100);
            anim1.SetDuration(200);

            var anim2 = new TestAnimation();

            anim2.StartValue = new QVariant(0);
            anim2.EndValue   = new QVariant(100);
            anim2.SetDuration(200);

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state);

            group.AddAnimation(anim1);
            group.AddAnimation(anim2);

            anim1.Start();
            anim2.Start();
            anim2.Pause();

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state);

            group.Stop();

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state);

            anim1.Stop();
            anim2.Stop();

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state);
        }
        public void TestUpdateChildrenWithRunningGroup()
        {
            var group = new QParallelAnimationGroup();

            var anim = new TestAnimation();
            anim.StartValue = new QVariant(0);
            anim.EndValue = new QVariant(100);
            anim.SetDuration(200);

            var groupStateChangedSpy = 0;
            group.StateChanged += (arg1, arg2) => { groupStateChangedSpy++; };

            var childStateChangedSpy = 0;
            anim.StateChanged += (arg1, arg2) => { childStateChangedSpy++; };

            Assert.AreEqual(0, groupStateChangedSpy);
            Assert.AreEqual(0, childStateChangedSpy);

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim.state);

            group.AddAnimation(anim);

            group.Start();
            Assert.AreEqual(QAbstractAnimation.State.Running, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim.state);

            Assert.AreEqual(1, groupStateChangedSpy);
            Assert.AreEqual(1, childStateChangedSpy);

            anim.Start();
            Assert.AreEqual(1, groupStateChangedSpy);
            Assert.AreEqual(1, childStateChangedSpy);

            anim.Pause();
            Assert.AreEqual(QAbstractAnimation.State.Running, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Paused, anim.state);

            // in the animation stops directly, the group will still be running
            anim.Stop();
            Assert.AreEqual(QAbstractAnimation.State.Running, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim.state);
        }
        public void TestStopGroupWithRunningChild()
        {
            // test if children can be activated when their group is stopped
            var group = new QParallelAnimationGroup();

            var anim1 = new TestAnimation();
            anim1.StartValue = new QVariant(0);
            anim1.EndValue = new QVariant(100);
            anim1.SetDuration(200);

            var anim2 = new TestAnimation();
            anim2.StartValue = new QVariant(0);
            anim2.EndValue = new QVariant(100);
            anim2.SetDuration(200);

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state);

            group.AddAnimation(anim1);
            group.AddAnimation(anim2);

            anim1.Start();
            anim2.Start();
            anim2.Pause();

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state);

            group.Stop();

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state);

            anim1.Stop();
            anim2.Stop();

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state);
        }
        public void TestStartGroupWithRunningChild()
        {
            var group = new QParallelAnimationGroup();

            var anim1 = new TestAnimation();
            anim1.StartValue = new QVariant(0);
            anim1.EndValue = new QVariant(100);
            anim1.SetDuration(200);

            var anim2 = new TestAnimation();
            anim2.StartValue = new QVariant(0);
            anim2.EndValue = new QVariant(100);
            anim2.SetDuration(200);

            var spy1 = 0;
            anim1.StateChanged += (arg1, arg2) => { spy1++; };
            var spy2 = 0;
            anim2.StateChanged += (arg1, arg2) => { spy2++; };

            Assert.AreEqual(0, spy1);
            Assert.AreEqual(0, spy2);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state);

            group.AddAnimation(anim1);
            group.AddAnimation(anim2);

            anim1.Start();
            anim2.Start();
            anim2.Pause();

            Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state);

            group.Start();
            Assert.AreEqual(3, spy1);
            Assert.AreEqual(4, spy2);

            Assert.AreEqual(QAbstractAnimation.State.Running, group.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state);
            Assert.AreEqual(QAbstractAnimation.State.Running, anim2.state);
        }