示例#1
0
void DynamicThread::DynamicThreadPriv::run()
{
    if (emitSignals)
    {
        emit q->started();
    }

    if (transitionToRunning())
    {
        takingThread();
        q->run();
    }
    else
    {
        takingThread();
    }

    if (emitSignals)
    {
        emit q->finished();
    }

    transitionToInactive();
    // as soon as we are inactive, we may get deleted!
}
void BaseRenderNodeAnimator::pushStaging(AnimationContext& context) {
    if (!mHasStartValue) {
        doSetStartValue(getValue(mTarget));
    }
    if (mStagingPlayState > mPlayState) {
        mPlayState = mStagingPlayState;
        // Oh boy, we're starting! Man the battle stations!
        if (mPlayState == RUNNING) {
            transitionToRunning(context);
        } else if (mPlayState == FINISHED) {
            callOnFinishedListener(context);
        }
    }
}