Remove "All rights reserved" line from license headers.
[profile/ivi/qtdeclarative.git] / doc / src / declarative / qdeclarativestates.qdoc
index 55f38c3..16ed71a 100644 (file)
@@ -1,8 +1,7 @@
 /****************************************************************************
 **
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
 **
 ** This file is part of the documentation of the Qt Toolkit.
 **
 **
 **
 **
+**
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/
 
 /*!
 \page qdeclarativestates.html
+\inqmlmodule QtQuick 2
 \ingroup qml-features
 \contentspage QML Features
 \previouspage {Importing Reusable Components}
 \o \l AnchorChanges
 \endlist
 
-Many user interface designs are \e state driven; interfaces have configurations
+Many user interface designs are \i state driven; interfaces have configurations
 that differ depending on the current state. For example, a traffic signal will
 configure its flags or lights depending on its state. While in the signal's
 \c stop state, a red light will turn on while the yellow and the green lights
 will turn off. In the \c caution state, the yellow light is on while the other
 lights are turned off.
 
-In QML, \e states are a set of property configurations defined in a \l State
+In QML, \i states are a set of property configurations defined in a \l State
 element. Different configurations could, for example:
 
 \list
@@ -104,7 +105,7 @@ It can also:
 
 \section1 The Default State
 
-Every \l Item based component has a \c state property and a \e{default state}.
+Every \l Item based component has a \c state property and a \i{default state}.
 The default state is the empty string (\c{""}) and contains all of an item's
 initial property values. The default state is useful for managing property
 values before state changes. Setting the \c state property to an empty string
@@ -133,4 +134,26 @@ The \l {declarative/animation/states}{States and Transitions example}
 demonstrates how to declare a basic set of states and apply animated
 transitions between them.
 
+\l{Using QML Behaviors with States} explains a common problem when using Behaviors
+to animate state changes.
+
+\section1 State Fast Forwarding
+
+In order for Transition to correctly animate state changes, it is sometimes necessary
+for the engine to fast forward and rewind a state (that is, internally set and unset the state)
+before it is finally applied. The process is as follows:
+
+\list 1
+\o The state is fast forwarded to determine the complete set of end values.
+\o The state is rewound.
+\o The state is fully applied, with transitions.
+\endlist
+
+In some cases this may cause unintended behavior. For example, a state that changes
+a view's \i model or a Loader's \i sourceComponent will set these properties
+multiple times (to apply, rewind, and then reapply), which can be relatively expensive.
+
+State fast forwarding should be considered an implementation detail,
+and may change in later versions.
+
 */