summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@nokia.com>2010-08-06 07:00:50 (GMT)
committerMartin Smith <martin.smith@nokia.com>2010-08-06 07:00:50 (GMT)
commite1ff574c9c37a955d5a0e398c0dc217363f38489 (patch)
treed6b591636adc99ade6c3bb3f4df96dd128c8fd55
parentb55895cf6164fd479ce6728d6c72e1c4fffd2491 (diff)
parentea8cf9c20f5b22c88bda1615b8a37013a1efbc3c (diff)
downloadQt-e1ff574c9c37a955d5a0e398c0dc217363f38489.zip
Qt-e1ff574c9c37a955d5a0e398c0dc217363f38489.tar.gz
Qt-e1ff574c9c37a955d5a0e398c0dc217363f38489.tar.bz2
Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7
-rwxr-xr-xbin/syncqt5
-rw-r--r--doc/src/declarative/animation.qdoc345
-rw-r--r--doc/src/snippets/declarative/animation-behavioral.qml61
-rw-r--r--doc/src/snippets/declarative/animation-easing.qml (renamed from examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h)26
-rw-r--r--doc/src/snippets/declarative/animation-elements.qml66
-rw-r--r--doc/src/snippets/declarative/animation-groups.qml (renamed from examples/tutorials/gettingStarted/gsQml/core/TextArea.qml)98
-rw-r--r--doc/src/snippets/declarative/animation-propertyvaluesource.qml (renamed from examples/tutorials/gettingStarted/gsQml/core/qmldir)17
-rw-r--r--doc/src/snippets/declarative/animation-signalhandler.qml (renamed from examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp)26
-rw-r--r--doc/src/snippets/declarative/animation-standalone.qml (renamed from examples/tutorials/gettingStarted/gsQml/filedialog/file.h)50
-rw-r--r--doc/src/snippets/declarative/animation-transitions.qml62
-rw-r--r--doc/src/snippets/declarative/animation.qml181
-rw-r--r--doc/src/snippets/declarative/transition.qml9
-rw-r--r--doc/src/snippets/sharedemployee/employee.h2
-rw-r--r--examples/declarative/keyinteraction/focus/Core/ContextMenu.qml7
-rw-r--r--examples/declarative/keyinteraction/focus/Core/GridMenu.qml7
-rw-r--r--examples/declarative/keyinteraction/focus/Core/ListMenu.qml (renamed from examples/declarative/keyinteraction/focus/Core/ListViews.qml)5
-rw-r--r--examples/declarative/keyinteraction/focus/focus.qml11
-rw-r--r--examples/tutorials/gettingStarted/gsQml/TextEditor.qml129
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/Button.qml110
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml111
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml170
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml232
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml148
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro17
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp57
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp219
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/directory.h108
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/qmldir1
-rw-r--r--examples/tutorials/gettingStarted/gsQml/images/arrow.pngbin583 -> 0 bytes
-rw-r--r--examples/tutorials/gettingStarted/gsQml/images/qt-logo.pngbin5149 -> 0 bytes
-rw-r--r--examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.pngbin65123 -> 0 bytes
-rw-r--r--examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.pngbin21367 -> 0 bytes
-rw-r--r--examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.pngbin76693 -> 0 bytes
-rw-r--r--src/dbus/qdbusconnection.cpp7
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.cpp13
-rw-r--r--src/declarative/qml/qdeclarativeexpression.cpp4
-rw-r--r--src/declarative/qml/qdeclarativeprivate.h2
-rw-r--r--src/declarative/util/qdeclarativeanimation.cpp52
-rw-r--r--src/declarative/util/qdeclarativebehavior.cpp9
-rw-r--r--src/declarative/util/qdeclarativesmoothedanimation.cpp2
-rw-r--r--src/declarative/util/qdeclarativespringanimation.cpp3
-rw-r--r--src/declarative/util/qdeclarativestate.cpp2
-rw-r--r--src/declarative/util/qdeclarativestategroup.cpp4
-rw-r--r--src/declarative/util/qdeclarativetransition.cpp21
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp5
-rw-r--r--src/gui/kernel/qapplication.cpp2
-rw-r--r--src/gui/kernel/qapplication_s60.cpp10
-rw-r--r--src/gui/kernel/qt_s60_p.h2
-rw-r--r--src/gui/painting/qgraphicssystem_runtime.cpp77
-rw-r--r--src/gui/painting/qgraphicssystem_runtime_p.h13
-rw-r--r--src/s60installs/bwins/QtGuiu.def2
-rw-r--r--src/s60installs/eabi/QtGuiu.def2
-rw-r--r--src/s60installs/eabi/QtNetworku.def2
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml33
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp56
-rw-r--r--tools/qml/qml.pro2
56 files changed, 767 insertions, 1838 deletions
diff --git a/bin/syncqt b/bin/syncqt
index 1e553dc..f63f06a 100755
--- a/bin/syncqt
+++ b/bin/syncqt
@@ -691,7 +691,10 @@ my @ignore_for_qt_begin_header_check = ( "qiconset.h", "qconfig.h", "qconfig-dis
my @ignore_for_qt_begin_namespace_check = ( "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qatomic_arch.h", "qatomic_windowsce.h", "qt_windows.h", "qatomic_macosx.h" );
my @ignore_for_qt_module_check = ( "$modules{QtCore}/arch", "$modules{QtCore}/global", "$modules{QtSql}/drivers", "$modules{QtTest}", "$modules{QtDesigner}", "$modules{QtUiTools}", "$modules{QtDBus}", "$modules{phonon}" );
my %colliding_headers = ();
-my %inject_headers = ( "$basedir/src/corelib/global" => ( "*qconfig.h" ) );
+my %inject_headers;
+# Force generation of forwarding header for qconfig.h if (and only if) we can't
+# find the header by normal means.
+%inject_headers = ( "$basedir/src/corelib/global" => ( "*qconfig.h" ) ) unless (-e "$basedir/src/corelib/global/qconfig.h");
foreach (@modules_to_sync) {
#iteration info
diff --git a/doc/src/declarative/animation.qdoc b/doc/src/declarative/animation.qdoc
index 401cf16..7416341 100644
--- a/doc/src/declarative/animation.qdoc
+++ b/doc/src/declarative/animation.qdoc
@@ -29,134 +29,301 @@
\page qdeclarativeanimation.html
\title QML Animation
-Animation in QML is done by animating properties of objects. Properties of type
-real, int, color, rect, point, size, and vector3d can all be animated.
-QML supports three main forms of animation: basic property animation,
-transitions, and property behaviors.
+In QML, animations are created by applying animation objects to object property
+values to gradually change them over time. Animation objects are created from
+the built-in set of animation elements, which can be used to animate various
+types of property values. In addition, animation objects can be applied in
+different ways depending on the context in which they are required.
+
+To create an animation, use an appropriate animation element for the type of
+the property that is to be animated, and apply the animation depending on the
+type of behavior that is required. This page describes the \l {Types of
+Animations} that can be created and the \l {Animation Elements} that are used
+to create these animations.
+
+
+\section1 Types of Animations
+
+An animation is created in different ways depending on the context in which it
+is required. Suppose a \l Rectangle's movement - that is, changes in its \c x
+or \c y property values - should be animated. The semantics of the animation
+differ depending on whether you want to create:
+
+\list
+\o An animation that moves the \l Rectangle as soon as it is created, to a
+known position
+\o An animation that only triggers when the \l Rectangle is moved by external
+sources - for example, when the mouse is clicked, animate the movement to the
+mouse position
+\o An animation that triggers when a particular signal is received
+\o A standalone animation that is not bound to the \l Rectangle's movement, but
+instead can be started and stopped from script as required
+\o An animation that only triggers during \l{QML States}{state changes}
+\endlist
+
+To support these different types of animation methods, QML provides several
+methods for defining an animation. These are:
+
+\list
+\o Creating an \l{Animations as Property Value Sources}{animation using
+property value sources}, to immediately animate a specific property
+\o Using \l{Behavioral Animations}{behavioral animations}, which are triggered
+when a property changes value
+\o \l{Animations in a Signal Handler}{Within a signal handler}, to be triggered
+when a signal is received
+\o As a \l{Standalone Animation}{standalone animation}, that can be
+started/stopped from script and can be rebound to different objects
+\o Using \l{Transitions}{transitions}, to provide animations between \l{QML
+States}{state changes}
+\endlist
+
+These methods are demonstrated below. Notice these examples use
+PropertyAnimation, which is one of several QML elements that can be used to
+create an animation. See the \l {Animation Elements} section further below for
+details.
-\tableofcontents
-\section1 Basic Property Animation
-The simplest form of animation is a \l PropertyAnimation, which can animate all of the property
-types listed above. If the property you are animating is a number or color, you can alternatively use
-NumberAnimation or ColorAnimation. These elements don't add any additional functionality,
-but will help enforce type correctness and are slightly more efficient.
+\section2 Animations as Property Value Sources
+
+An animation is applied as a \l{QDeclarativePropertyValueSource}{property value
+source} using the \e Animation \bold on \e Property syntax. Here is a \l
+Rectangle whose movement is animated using this method:
+
+\snippet doc/src/snippets/declarative/animation-propertyvaluesource.qml 0
+
+This applies a PropertyAnimation to the \l Rectangle's \c x and \c y properties
+to animate from their current values (i.e. zero) to 50, over 1000 milliseconds.
+The animation starts as soon as the \l Rectangle is loaded. To animate from
+specific values rather than the current \c x and \c y values, set the
+PropertyAnimation's \l {PropertyAnimation::}{from} property.
+
+Specifying an animation as a property value source is useful for animating a
+property to a particular value as soon as the object is loaded.
+
+
+\section2 Behavioral Animations
+
+Often an animation should be applied whenever a particular property value
+changes. In these cases, a \l Behavior can be used to specify a default
+animation for a property change. Here is an example:
+
+\snippet doc/src/snippets/declarative/animation-behavioral.qml 0
-A property animation can be specified as a value source using the \e Animation \bold on \e property syntax. This is especially useful
-for repeating animations.
+This \l Rectangle has \l Behavior objects applied to its \c x and \c y
+properties. Whenever these properties change (in this case, when the mouse is
+clicked within the parent \l Item), the PropertyAnimation objects defined
+within the behaviors will be applied to these properties, thus animating the \l
+Rectangle's movement to its new position. Unlike the method of \l {Animations
+as Property Value Sources}{defining an animation as a property value source},
+which creates a one-time animation that animates a property to a known value, a
+behavioral animation is an animation that is triggered \e {in response to} a
+value change.
-The following example creates a bouncing effect:
-\snippet doc/src/snippets/declarative/animation.qml property-anim-1
+Any changes to these properties will trigger their animations. If \c x or \c y
+were bound to other properties, and those properties changed, the animation
+would be triggered. The \l{Behavior::}{enabled} property can be used to force a
+\l Behavior to only apply under certain circumstances.
-\image propanim.gif
+Notice that unlike for property value source animations, the
+PropertyAnimation's \l {PropertyAnimation::}{from} and \l
+{PropertyAnimation::}{to} properties do not need to be defined because these
+values are already provided, respectively, by the \l Rectangle's current values
+and the new values set in the \c onClicked handler. If these properties were
+defined anyway, they would override the default values.
+
+See the \l {declarative/animation/behaviors}{Behaviors example} for a
+demonstration of behavioral animations.
+
+
+\section2 Animations in a Signal Handler
+
+An animation can be created within a signal handler to be triggered when the
+signal is received. For example:
+
+\snippet doc/src/snippets/declarative/animation-signalhandler.qml 0
+
+The PropertyAnimation is triggered when the MouseArea is clicked, animating the
+\c x and \c y properties to a value of 50 over 1000 milliseconds. Since the
+animation is not bound to a particular object or property, it must define the
+\l {PropertyAnimation::}{target} and \l {PropertyAnimation::}{property} (or \l
+{PropertyAnimation::}{targets} and \l{PropertyAnimation::}{properties}) values.
+The \l {PropertyAnimation::}{to} property is also required to specify the new
+\c x and \c y values.
+
+
+\section2 Standalone Animations
+
+Animations can also be created as ordinary QML objects that are not bound to
+any particular objects and properties. An example:
+
+\snippet doc/src/snippets/declarative/animation-standalone.qml 0
+
+A standalone animation is not running by default and must be started explicitly
+using the \l {Animation::}{running} property or \l {Animation::}{start()} and
+\l {Animation::}{stop()} methods. Since the animation is not bound to a
+particular object or property, it must define the \l
+{PropertyAnimation::}{target} and \l {PropertyAnimation::}{property} (or \l
+{PropertyAnimation::}{targets} and \l{PropertyAnimation::}{properties}) values.
+The \l {PropertyAnimation::}{to} property is also required to specify the new
+\c x and \c y values. (The \l {PropertyAnimation::}{from} value can optionally
+be provided.)
+
+Standalone animations are useful when an animation is not targeted towards a
+single object property and the animation should be explicitly started and
+stopped.
+
+
+\section2 Transitions
-When you assign an animation as a value source, you do not need to specify \c property
-or \c target values; they are automatically selected for you. You do, however, need to specify a \c to value.
-An animation specified as a value source will be \c running by default.
+Transitions are used to describe the animations to be applied when a \l {QML
+States}{state change} occurs. To create a transition, define a \l Transition
+object and add it to an item's \l {Item::}{transitions} property. An example:
-For example, here is a rectangle that uses a \l NumberAnimation value source to animate the movement
-from its current position to an \c x value of 50. The animation starts immediately, and only the \c to
-property is required:
+\snippet doc/src/snippets/declarative/animation-transitions.qml 0
-\snippet doc/src/snippets/declarative/animation.qml property-anim-2
+When the \l Rectangle changes to the \e moved state, its \c x and \c y property
+values are changed by the PropertyChanges object, and the PropertyAnimation
+defined within the \l Transition is triggered on these properties. The
+animation will not be applied at any time other than during the state change.
-A property animation can also be specified as a resource that is manipulated from script.
+Notice the example does not set any \l {PropertyAnimation::}{from} and \l
+{PropertyAnimation::}{to} values for the PropertyAnimation. As a convenience,
+these properties are automatically set to the values of \c x and \c y before
+and after the state change, respectively. However, they can be explicitly set
+if these values should be overrided.
-\snippet doc/src/snippets/declarative/animation.qml property-anim-3
+Also notice the PropertyAnimation does not need to specify a \l
+{PropertyAnimation::}{target} object; any \c x or \c y value of any object that
+has changed during the state change will be animated. However, the target can
+be set if the animation should be restricted to certain objects.
-As can be seen, when an animation is used like this (as opposed to as a value source) you will need
-to explicitly set the \c target and \c property to animate. This also the only case where
-an animation needs to be started explictly by either setting the \c running property to
-true or calling the \c start() method.
+The top-level animations in a \l Transition are run in parallel. To run them
+one after the other, use a SequentialAnimation, as shown below in \l {Grouping
+Animations}.
-Animations can be joined into a group using SequentialAnimation and ParallelAnimation.
+See the \l Transition documentation for more information.
-See the \l {declarative/animation/basics}{Animation basics example} for a demonstration of creating and combining multiple animations in QML.
-\target state-transitions
-\section1 Transitions
+\section1 Animation Elements
-\l Transition elements describe the animations to perform when \l{qmlstates}{state} changes occur. A transition
-can only be triggered by a state change.
+To create an animation, choose from one of the built-in QML animation elements.
+While the above examples are demonstrated using PropertyAnimation, they could
+have used other elements depending on the type of the property to be animated
+and whether a single or multiple animations are required.
-For example, a \l Transition could describe how an item moves from its initial position to its new position:
+All animation elements inherit from the \l Animation element. It is not
+possible to create \l Animation objects; instead, this element provides the
+essential properties and methods for animation elements. For example, it allows
+animations to be started and stopped through the \l {Animation::}{running}
+property and the \l{Animation::}{start()} and \l{Animation::}{stop()} methods.
+It can also define the number of \l {Animation::}{loops} for an animation.
-\snippet doc/src/snippets/declarative/animation.qml transitions-1
-As can be seen, transitions make use of the same basic animation classes introduced above.
-In the above example we have specified that we want to animate the \c x and \c y properties, but have not
-specified the objects to animate or the \c to values. By default these values are supplied by the framework;
-the animation will animate any \c targets whose \c x and \c y have changed, and the \c to values will be those
-defined in the end state. You can always supply explicit values to override these implicit values when needed.
+\section2 Property Animation Elements
-\snippet doc/src/snippets/declarative/animation.qml transitions-2
+PropertyAnimation is the most basic animation element for animating a property.
+It can be used to animate \c real, \c int, \c color, \c rect, \c point, \c size, and
+\c vector3d properties. It is inherited by NumberAnimation, ColorAnimation,
+RotationAnimation and Vector3dAnimation: NumberAnimation provides a more
+efficient implementation for animating \c real and \c int properties, and
+Vector3dAnimation does the same for \c vector3d properties. ColorAnimation
+and RotationAnimation provide more specific attributes for animating color
+and rotation changes.
-QML transitions have selectors to determine which state changes a transition should apply to.
-The following transition will only be triggered when we enter into the \c "details" state.
-(The "*" value is a wildcard value that specifies the transition should be applied when changing
-from \e any state to the "details" state.)
+A ColorAnimation allows color values for the \l {ColorAnimation::}{from}
+and \l {ColorAnimation::}{to} properties. The
+following animates the rectangle's \l {Rectangle::color} property:
-\code
-Transition {
- from: "*"
- to: "details"
- ...
-}
-\endcode
+\snippet doc/src/snippets/declarative/animation-elements.qml color
-Transitions can happen in parallel, in sequence, or in any combination of the two. By default, the top-level
-animations in a transition will happen in parallel. The following example shows a rather complex transition
-making use of both sequential and parallel animations:
+RotationAnimation allows a rotation's direction to be specified. The following
+animates the rectangle's \l {Item::rotation} property:
-\snippet doc/src/snippets/declarative/animation.qml transitions-3
+\snippet doc/src/snippets/declarative/animation-elements.qml rotation
+In addition, the following specialized animation elements are available:
-See \l {declarative/animation/states}{States and Transitions example} for a simple example of how transitions can be applied.
+\list
+\o SmoothedAnimation: a specialized NumberAnimation that provides smooth
+changes in animation when the target value changes
+\o SpringAnimation: provides a spring-like animation with specialized
+attributes such as \l {SpringAnimation::}{mass},
+\l{SpringAnimation::}{damping} and \l{SpringAnimation::}{epsilon}
+\o ParentAnimation: used for animating a parent change (see ParentChange)
+\o AnchorAnimation: used for animating an anchor change (see AnchorChanges)
+\endlist
+See their respective documentation pages for more details.
-\section1 Property Behaviors
-A property \l {Behavior}{behavior} specifies a default animation to run whenever the property's value changes, regardless
-of what caused the change. The \c enabled property can be used to force a \l Behavior
-to only apply under certain circumstances.
+\section3 Easing
+
+Any PropertyAnimation-based animations can specify \l
+{PropertyAnimation::easing.type}{easing attributes} to control the
+easing curve applied when a property value is animated. These control the
+effect of the animation on the property value, to provide visual effects like
+bounce, acceleration and deceleration.
+
+For example, this modified version of an \l {Animations as Property Value
+Sources}{earlier example} uses \c Easing.OutBounce to create a bouncing effect
+when the animation reaches its target value:
+
+\snippet doc/src/snippets/declarative/animation-easing.qml 0
+
+The \l{declarative/animation/easing}{easing example} visually demonstrates each
+of the different easing types.
+
+\section2 Grouping Animations
+
+Multiple animations can be combined into a single animation using one of the
+animation group elements: ParallelAnimation or SequentialAnimation. As their
+names suggest, animations in a ParallelAnimation are run at the same time,
+while animations in a SequentialAnimation are run one after the other.
+
+To run multiple animations, define the animations within an animation group.
+The following example creates a SequentialAnimation that runs three animations
+one after the other: a NumberAnimation, a PauseAnimation and another
+NumberAnimation. The SequentialAnimation is applied as a \l{Animations as
+Property Value Sources}{property value source animation} on the image's \c y
+property, so that the animation starts as soon as the image is loaded, moving
+the image up and down:
+
+\snippet doc/src/snippets/declarative/animation-groups.qml 0
+\image propanim.gif
+
+Since the SequentialAnimation is applied to the \c y property, the individual
+animations within the group are automatically applied to the \c y property as
+well; it is not required to set their \l{PropertyAnimation::}{properties}
+values to a particular property.
-In the following snippet, we specify that we want the \c x position of \c redRect to be animated
-whenever it changes. The animation will last 300 milliseconds and use an \l{PropertyAnimation::easing.type}{Easing.InOutQuad} easing curve.
+Animation groups can be nested. Here is a rather complex animation making use
+of both sequential and parallel animations:
-\snippet doc/src/snippets/declarative/animation.qml behavior
+\snippet doc/src/snippets/declarative/animation-groups.qml 1
-Like using an animation as a value source, when used in a \l Behavior and animation does not need to specify
-a \c target or \c property.
+Once individual animations are placed into a SequentialAnimation or
+ParallelAnimation, they can no longer be started and stopped independently. The
+sequential or parallel animation must be started and stopped as a group.
-To trigger this behavior, we could enter a state that changes \c x:
+See the \l {declarative/animation/basics}{Animation basics example} for a
+demonstration of creating and combining multiple animations in QML.
-\qml
-State {
- name: "myState"
- PropertyChanges {
- target: redRect
- x: 200
- ...
- }
-}
-\endqml
-Or, update \c x from a script:
-\qml
-MouseArea {
- ....
- onClicked: redRect.x = 24;
-}
-\endqml
+\section2 Other Animation Elements
-If \c x were bound to another property, triggering the binding would also trigger the behavior.
+In addition, QML provides several other elements useful for animation:
-If a state change has a transition animation matching a property with a \l Behavior, the transition animation
-will override the \l Behavior for that state change.
+\list
+\o PauseAnimation: enables pauses during animations
+\o ScriptAction: allows JavaScript to be executed during an animation, and can
+be used together with StateChangeScript to reused existing scripts
+\o PropertyAction: changes a property \e immediately during an animation,
+without animating the property change
+\endlist
-The \l {declarative/animation/behaviors}{Behaviors example} shows how behaviors can be used to provide animations.
+See their respective documentation pages for more details.
*/
diff --git a/doc/src/snippets/declarative/animation-behavioral.qml b/doc/src/snippets/declarative/animation-behavioral.qml
new file mode 100644
index 0000000..dc79018
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-behavioral.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Item {
+ width: 100; height: 100
+
+ Rectangle {
+ id: rect
+ width: 100; height: 100
+ color: "red"
+
+ Behavior on x { PropertyAnimation { duration: 500 } }
+ Behavior on y { PropertyAnimation { duration: 500 } }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { rect.x = mouse.x; rect.y = mouse.y }
+ }
+}
+//![0]
+
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h b/doc/src/snippets/declarative/animation-easing.qml
index 7f8d3ff..e65c470 100644
--- a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h
+++ b/doc/src/snippets/declarative/animation-easing.qml
@@ -37,21 +37,15 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+//![0]
+import Qt 4.7
-#ifndef DIALOGPLUGIN_H
-#define DIALOGPLUGIN_H
-
-#include <QtDeclarative/QDeclarativeExtensionPlugin>
-
-class DialogPlugin : public QDeclarativeExtensionPlugin
-{
- Q_OBJECT
-
- public:
- //registerTypes is inherited from QDeclarativeExtensionPlugin
- void registerTypes(const char *uri);
-
-};
-
-#endif
+Rectangle {
+ width: 100; height: 100
+ color: "red"
+
+ PropertyAnimation on x { to: 50; duration: 1000; easing.type: Easing.OutBounce }
+ PropertyAnimation on y { to: 50; duration: 1000; easing.type: Easing.OutBounce }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/animation-elements.qml b/doc/src/snippets/declarative/animation-elements.qml
new file mode 100644
index 0000000..7cb253e
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-elements.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Row {
+
+//![color]
+Rectangle {
+ width: 100; height: 100
+
+ ColorAnimation on color { from: "red"; to: "yellow"; duration: 1000 }
+}
+//![color]
+
+//![rotation]
+Item {
+ width: 300; height: 300
+
+ Rectangle {
+ width: 100; height: 100; anchors.centerIn: parent
+ color: "red"
+
+ RotationAnimation on rotation { to: 90; direction: RotationAnimation.Clockwise }
+ }
+}
+//![rotation]
+
+}
diff --git a/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml b/doc/src/snippets/declarative/animation-groups.qml
index 3953d9f..8a8f925 100644
--- a/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml
+++ b/doc/src/snippets/declarative/animation-groups.qml
@@ -37,50 +37,68 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-
import Qt 4.7
-Rectangle{
- id:textArea
+Row {
+
+//![0]
+Rectangle {
+ id: rect
+ width: 120; height: 200
+
+ Image {
+ id: img
+ source: "pics/qt.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ y: 0
+
+ SequentialAnimation on y {
+ loops: Animation.Infinite
+ NumberAnimation { to: rect.height - img.height; easing.type: Easing.OutBounce; duration: 2000 }
+ PauseAnimation { duration: 1000 }
+ NumberAnimation { to: 0; easing.type: Easing.OutQuad; duration: 1000 }
+ }
+ }
+}
+//![0]
+
+//![1]
+Rectangle {
+ id: redRect
+ width: 100; height: 100
+ color: "red"
+
+ MouseArea { id: mouseArea; anchors.fill: parent }
+
+ states: State {
+ name: "pressed"; when: mouseArea.pressed
+ PropertyChanges { target: redRect; color: "blue"; y: mouseArea.mouseY; width: mouseArea.mouseX }
+ }
- function paste(){ textEdit.paste()}
- function copy() { textEdit.copy() }
- function selectAll() { textEdit.selectAll() }
+ transitions: Transition {
- width :400; height:400
+ SequentialAnimation {
+ ColorAnimation { duration: 200 }
+ PauseAnimation { duration: 100 }
- property color fontColor: "white"
- property alias textContent: textEdit.text
- Flickable{
- id: flickArea
- width: parent.width; height: parent.height
- anchors.fill:parent
+ ParallelAnimation {
+ NumberAnimation {
+ duration: 500
+ easing.type: Easing.OutBounce
+ targets: redRect
+ properties: "y"
+ }
- boundsBehavior: Flickable.StopAtBounds
- flickableDirection: Flickable.HorizontalFlick
- interactive: true
- //Will move the text Edit area to make the area visible when scrolled with keyboard strokes
- function ensureVisible(r){
- if (contentX >= r.x)
- contentX = r.x;
- else if (contentX+width <= r.x+r.width)
- contentX = r.x+r.width-width;
- if (contentY >= r.y)
- contentY = r.y;
- else if (contentY+height <= r.y+r.height)
- contentY = r.y+r.height-height;
- }
+ NumberAnimation {
+ duration: 800
+ easing.type: Easing.InOutQuad
+ targets: redRect
+ properties: "width"
+ }
+ }
+ }
+ }
+}
+//![1]
- TextEdit{
- id: textEdit
- anchors.fill:parent
- width:parent.width; height:parent.height
- color:fontColor
- focus: true
- wrapMode: TextEdit.Wrap
- font.pointSize:10
- onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle)
- selectByMouse: true
- }
- }
-} \ No newline at end of file
+}
diff --git a/examples/tutorials/gettingStarted/gsQml/core/qmldir b/doc/src/snippets/declarative/animation-propertyvaluesource.qml
index 1beb5ed..ac5f071 100644
--- a/examples/tutorials/gettingStarted/gsQml/core/qmldir
+++ b/doc/src/snippets/declarative/animation-propertyvaluesource.qml
@@ -37,12 +37,15 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+//![0]
+import Qt 4.7
-Button ./Button.qml
-FileDialog ./FileDialog.qml
-TextArea ./TextArea.qml
-TextEditor ./TextEditor.qml
-EditMenu ./EditMenu.qml
-MenuBar ./MenuBar.qml
+Rectangle {
+ width: 100; height: 100
+ color: "red"
+
+ PropertyAnimation on x { to: 50; duration: 1000; loops: Animation.Infinite }
+ PropertyAnimation on y { to: 50; duration: 1000; loops: Animation.Infinite }
+}
+//![0]
-plugin FileDialog ../plugins
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp b/doc/src/snippets/declarative/animation-signalhandler.qml
index 39a7469..749596c 100644
--- a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp
+++ b/doc/src/snippets/declarative/animation-signalhandler.qml
@@ -37,21 +37,19 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+//![0]
+import Qt 4.7
+Rectangle {
+ id: rect
+ width: 100; height: 100
+ color: "red"
-#include "file.h"
-
-File::File(QObject *parent) : QObject(parent)
-{
- m_name = "";
+ MouseArea {
+ anchors.fill: parent
+ onClicked: PropertyAnimation { target: rect; properties: "x,y"; to: 50; duration: 1000 }
+ }
}
-QString File::name() const{
- return m_name;
-}
-void File::setName(const QString &str){
- if(str != m_name){
- m_name = str;
- emit nameChanged();
- }
-} \ No newline at end of file
+//![0]
+
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.h b/doc/src/snippets/declarative/animation-standalone.qml
index e4ba429..d75fd92 100644
--- a/examples/tutorials/gettingStarted/gsQml/filedialog/file.h
+++ b/doc/src/snippets/declarative/animation-standalone.qml
@@ -37,31 +37,27 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+//![0]
+import Qt 4.7
-#ifndef FILE_H
-#define FILE_H
-
-
-#include <QString>
-#include <QObject>
-
-class File : public QObject{
-
- Q_OBJECT
-
- Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
-
- public:
- File(QObject *parent = 0);
-
- QString name() const;
- void setName(const QString &str);
-
- signals:
- void nameChanged();
-
- private:
- QString m_name;
-};
-
-#endif \ No newline at end of file
+Rectangle {
+ id: rect
+ width: 100; height: 100
+ color: "red"
+
+ PropertyAnimation {
+ id: animation
+ target: rect
+ properties: "x,y"
+ duration: 1000
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ animation.to = 50;
+ animation.running = true;
+ }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/animation-transitions.qml b/doc/src/snippets/declarative/animation-transitions.qml
new file mode 100644
index 0000000..3265065
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-transitions.qml
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Rectangle {
+ id: rect
+ width: 100; height: 100
+ color: "red"
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect.state = "moved"
+ }
+
+ states: State {
+ name: "moved"
+ PropertyChanges { target: rect; x: 50; y: 50 }
+ }
+
+ transitions: Transition {
+ PropertyAnimation { properties: "x,y"; duration: 1000 }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/animation.qml b/doc/src/snippets/declarative/animation.qml
deleted file mode 100644
index 65acd36..0000000
--- a/doc/src/snippets/declarative/animation.qml
+++ /dev/null
@@ -1,181 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import Qt 4.7
-
-Row {
-
-//![property-anim-1]
-Rectangle {
- id: rect
- width: 120; height: 200
-
- Image {
- id: img
- source: "pics/qt.png"
- x: 60 - img.width/2
- y: 0
-
- SequentialAnimation on y {
- loops: Animation.Infinite
- NumberAnimation { to: 200 - img.height; easing.type: Easing.OutBounce; duration: 2000 }
- PauseAnimation { duration: 1000 }
- NumberAnimation { to: 0; easing.type: Easing.OutQuad; duration: 1000 }
- }
- }
-}
-//![property-anim-1]
-
-//![property-anim-2]
-Rectangle {
- width: 200; height: 200
-
- Rectangle {
- color: "red"
- width: 50; height: 50
- NumberAnimation on x { to: 50 }
- }
-}
-//![property-anim-2]
-
-
-Item {
-//![property-anim-3]
-PropertyAnimation {
- id: animation
- target: image
- property: "scale"
- from: 1; to: 0.5
-}
-
-Image {
- id: image
- source: "pics/qt.png"
- MouseArea {
- anchors.fill: parent
- onPressed: animation.start()
- }
-}
-//![property-anim-3]
-}
-
-
-//![transitions-1]
-transitions: [
- Transition {
- NumberAnimation {
- properties: "x,y"
- easing.type: Easing.OutBounce
- duration: 200
- }
- }
-]
-//![transitions-1]
-
-
-//![transitions-2]
-Transition {
- from: "*"
- to: "MyState"
- reversible: true
-
- SequentialAnimation {
- NumberAnimation {
- duration: 1000
- easing.type: Easing.OutBounce
-
- // animate myItem's x and y if they have changed in the state
- target: myItem
- properties: "x,y"
- }
-
- NumberAnimation {
- duration: 1000
-
- // animate myItem2's y to 200, regardless of what happens in the state
- target: myItem2
- property: "y"
- to: 200
- }
- }
-}
-//![transitions-2]
-
-
-//![transitions-3]
-Transition {
- from: "*"
- to: "MyState"
- reversible: true
-
- SequentialAnimation {
- ColorAnimation { duration: 1000 }
- PauseAnimation { duration: 1000 }
-
- ParallelAnimation {
- NumberAnimation {
- duration: 1000
- easing.type: Easing.OutBounce
- targets: box1
- properties: "x,y"
- }
- NumberAnimation {
- duration: 1000
- targets: box2
- properties: "x,y"
- }
- }
- }
-}
-//![transitions-3]
-
-//![behavior]
-Rectangle {
- id: redRect
- color: "red"
- width: 100; height: 100
-
- Behavior on x {
- NumberAnimation { duration: 300; easing.type: Easing.InOutQuad }
- }
-}
-//![behavior]
-
-}
diff --git a/doc/src/snippets/declarative/transition.qml b/doc/src/snippets/declarative/transition.qml
index b884750..098d509 100644
--- a/doc/src/snippets/declarative/transition.qml
+++ b/doc/src/snippets/declarative/transition.qml
@@ -46,13 +46,18 @@ Rectangle {
width: 100; height: 100
color: "red"
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ }
+
states: State {
- name: "moved"
+ name: "moved"; when: mouseArea.pressed
PropertyChanges { target: rect; x: 50; y: 50 }
}
transitions: Transition {
- PropertyAnimation { properties: "x,y"; easing.type: Easing.InOutQuad }
+ NumberAnimation { properties: "x,y"; easing.type: Easing.InOutQuad }
}
}
//![0]
diff --git a/doc/src/snippets/sharedemployee/employee.h b/doc/src/snippets/sharedemployee/employee.h
index 18b47e0..2c9ba6f 100644
--- a/doc/src/snippets/sharedemployee/employee.h
+++ b/doc/src/snippets/sharedemployee/employee.h
@@ -48,7 +48,7 @@
class EmployeeData : public QSharedData
{
public:
- EmployeeData() : id(-1) { name.clear(); }
+ EmployeeData() : id(-1) { }
EmployeeData(const EmployeeData &other)
: QSharedData(other), id(other.id), name(other.name) { }
~EmployeeData() { }
diff --git a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
index 15e77de..ba49d14 100644
--- a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
+++ b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
@@ -53,6 +53,13 @@ FocusScope {
color: "#D1DBBD"
focus: true
Keys.onRightPressed: mainView.focus = true
+
+ Text {
+ anchors { top: parent.top; horizontalCenter: parent.horizontalCenter; margins: 30 }
+ color: "black"
+ font.pixelSize: 14
+ text: "Context Menu"
+ }
}
}
}
diff --git a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml
index 19f7235..88840cb 100644
--- a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml
+++ b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml
@@ -43,7 +43,10 @@ import Qt 4.7
FocusScope {
property alias interactive: gridView.interactive
- onActiveFocusChanged: if (activeFocus) mainView.state = ""
+ onActiveFocusChanged: {
+ if (activeFocus)
+ mainView.state = ""
+ }
Rectangle {
anchors.fill: parent
@@ -60,7 +63,7 @@ FocusScope {
focus: true
model: 12
- KeyNavigation.down: listViews
+ KeyNavigation.down: listMenu
KeyNavigation.left: contextMenu
delegate: Item {
diff --git a/examples/declarative/keyinteraction/focus/Core/ListViews.qml b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml
index 3d6ceab..6100b32 100644
--- a/examples/declarative/keyinteraction/focus/Core/ListViews.qml
+++ b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml
@@ -43,7 +43,10 @@ import Qt 4.7
FocusScope {
clip: true
- onActiveFocusChanged: if (activeFocus) mainView.state = "showListViews"
+ onActiveFocusChanged: {
+ if (activeFocus)
+ mainView.state = "showListViews"
+ }
ListView {
id: list1
diff --git a/examples/declarative/keyinteraction/focus/focus.qml b/examples/declarative/keyinteraction/focus/focus.qml
index 56fdffc..9463192 100644
--- a/examples/declarative/keyinteraction/focus/focus.qml
+++ b/examples/declarative/keyinteraction/focus/focus.qml
@@ -55,27 +55,28 @@ Rectangle {
GridMenu {
id: gridMenu
-
width: parent.width; height: 320
+
focus: true
interactive: parent.activeFocus
}
- ListViews {
- id: listViews
+ ListMenu {
+ id: listMenu
y: 320; width: parent.width; height: 320
}
Rectangle {
id: shade
anchors.fill: parent
- color: "black"; opacity: 0
+ color: "black"
+ opacity: 0
}
states: State {
name: "showListViews"
PropertyChanges { target: gridMenu; y: -160 }
- PropertyChanges { target: listViews; y: 160 }
+ PropertyChanges { target: listMenu; y: 160 }
}
transitions: Transition {
diff --git a/examples/tutorials/gettingStarted/gsQml/TextEditor.qml b/examples/tutorials/gettingStarted/gsQml/TextEditor.qml
deleted file mode 100644
index 6ffdd6d..0000000
--- a/examples/tutorials/gettingStarted/gsQml/TextEditor.qml
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt 4.7
-import "core"
-
-Rectangle{
- id: screen
- width: 1000; height: 1000
- property int partition: height/3
- border.width: 1
- border.color: "#DCDCCC"
- state: "DRAWER_CLOSED"
-
- //Item 1: MenuBar on the top portion of the screen
- MenuBar{
- id:menuBar
- height: screen.partition; width: screen.width
- z:1
- }
- //Item 2: The editable text area
- TextArea{
- id:textArea
- y:drawer.height
- color: "#3F3F3F"
- fontColor: "#DCDCCC"
- height: partition*2; width:parent.width
- }
- //Item 3: The drawer handle
- Rectangle{
- id:drawer
- height:15; width: parent.width
- border.color : "#6A6D6A"
- border.width: 1
- z:1
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.77; color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#6A6D6A" }
- }
- Image{
- id: arrowIcon
- source: "images/arrow.png"
- anchors.horizontalCenter: parent.horizontalCenter
-
- Behavior{NumberAnimation{property: "rotation";easing.type: Easing.OutExpo }}
- }
-
- MouseArea{
- id: drawerMouseArea
- anchors.fill:parent
- hoverEnabled: true
- onEntered: parent.border.color = Qt.lighter("#6A6D6A")
- onExited: parent.border.color = "#6A6D6A"
- onClicked:{
- if (screen.state == "DRAWER_CLOSED"){
- screen.state = "DRAWER_OPEN"
- }
- else if (screen.state == "DRAWER_OPEN"){
- screen.state = "DRAWER_CLOSED"
- }
- }
- }
- }
-
- states:[
- State{
- name: "DRAWER_OPEN"
- PropertyChanges { target: menuBar; y: 0}
- PropertyChanges { target: textArea; y: partition + drawer.height}
- PropertyChanges { target: drawer; y: partition}
- PropertyChanges { target: arrowIcon; rotation: 180}
- },
- State{
- name: "DRAWER_CLOSED"
- PropertyChanges { target: menuBar; y:-height; }
- PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height}
- PropertyChanges { target: drawer; y: 0}
- PropertyChanges { target: arrowIcon; rotation: 0}
- }
- ]
-
- transitions: [
- Transition{
- to: "*"
- NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type:Easing.OutExpo }
- NumberAnimation { target: menuBar; properties: "y"; duration: 100;easing.type: Easing.OutExpo }
- NumberAnimation { target: drawer; properties: "y"; duration: 100;easing.type: Easing.OutExpo }
- }
- ]
-}
diff --git a/examples/tutorials/gettingStarted/gsQml/core/Button.qml b/examples/tutorials/gettingStarted/gsQml/core/Button.qml
deleted file mode 100644
index 28ae4ec..0000000
--- a/examples/tutorials/gettingStarted/gsQml/core/Button.qml
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-import Qt 4.7
-
-Rectangle {
-
- //identifier of the item
- id: button
-
- //these properties act as constants, useable outside this QML file
- property int buttonHeight: 75
- property int buttonWidth: 150
-
- //attaches to the Text element's text content
- property string label
- property color textColor: buttonLabel.color
-
- //the color highlight when the mouse hovers on the rectangle
- property color onHoverColor: "lightsteelblue"
- property color borderColor: "transparent"
-
- //buttonColor is set to the button's main color
- property color buttonColor: "lightblue"
-
- property real labelSize: 14
- //set appearance properties
- radius:6
- smooth: true
- border.width: 2
- border.color: borderColor
- width: buttonWidth; height: buttonHeight
-
- Text{
- id: buttonLabel
- anchors.centerIn: parent
- text: label //bind the text to the parent's text
- color: "#DCDCCC"
- font.pointSize: labelSize
- }
-
- //buttonClick() is callable and a signal handler, onButtonClick is automatically created
- signal buttonClick()
-
- //define the clickable area to be the whole rectangle
- MouseArea{
- id: buttonMouseArea
- anchors.fill: parent //stretch the area to the parent's dimension
- onClicked: buttonClick()
-
- //if true, then onEntered and onExited called if mouse hovers in the mouse area
- //if false, a button must be clicked to detect the mouse hover
- hoverEnabled: true
-
- //display a border if the mouse hovers on the button mouse area
- onEntered: parent.border.color = onHoverColor
- //remove the border if the mouse exits the button mouse area
- onExited: parent.border.color = borderColor
-
- }
-
- //change the color of the button when pressed
- color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
- //animate the color whenever the color property changes
- Behavior on color { ColorAnimation{ duration: 55} }
-
- //scale the button when pressed
- scale: buttonMouseArea.pressed ? 1.1 : 1.00
- //Animate the scale property change
- Behavior on scale { NumberAnimation{ duration: 55} }
-
-} \ No newline at end of file
diff --git a/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml
deleted file mode 100644
index be9f6a1..0000000
--- a/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-import Qt 4.7
-
-Rectangle{
- id: editMenu
- height: 480; width:1000
- color: "powderblue"
- property color buttonBorderColor: "#7A8182"
- property color buttonFillColor: "#61BDCACD"
- property string menuName:"Edit"
-
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#6A7570" }
- GradientStop { position: 1.0; color: Qt.darker("#6A7570") }
- }
-
- Rectangle{
- id:actionContainer
- color:"transparent"
- anchors.centerIn: parent
- width: parent.width; height: parent.height / 5
- Row{
- anchors.centerIn: parent
- spacing: parent.width/9
- Button{
- id: loadButton
- buttonColor: buttonFillColor
- label: "Copy"
- labelSize:16
- borderColor:buttonBorderColor
- height: actionContainer.height
- width: actionContainer.width/6
- onButtonClick:textArea.copy()
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
-
- Button{
- id: saveButton
- height: actionContainer.height
- width: actionContainer.width/6
- buttonColor: buttonFillColor
- label: "Paste"
- borderColor:buttonBorderColor
- labelSize:16
- onButtonClick:textArea.paste()
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
- Button{
- id: exitButton
- label: "Select All"
- height: actionContainer.height
- width: actionContainer.width/6
- labelSize:16
- buttonColor: buttonFillColor
- borderColor:buttonBorderColor
- onButtonClick:textArea.selectAll()
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
- }
- }
-
-} \ No newline at end of file
diff --git a/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml b/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml
deleted file mode 100644
index 9948a27..0000000
--- a/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml
+++ /dev/null
@@ -1,170 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt 4.7
-
-Rectangle{
- id:dialog
- height: 200 * partition; width: 200
- color: "transparent"
-
- signal selectChanged()
- signal notifyRefresh()
- onNotifyRefresh:dirView.model = directory.files
-
- property string selectedFile
- property int selectedIndex: 0
-
- Rectangle{
- id: dirBox
- radius: 10
- anchors.centerIn:parent
- height: parent.height -15; width: parent.width -30
-
- Rectangle{
- id:header
- height:parent.height*0.1
- width: parent.width
- radius:3
- z:1
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.98;color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#0e1B20" }
- }
- Text{
- height: header.height
- anchors.centerIn: header
- text: "files:"
- color: "lightblue"
- font.weight: Font.Light
- font.italic: true
- }
- }
- GridView{
- id:dirView
- width:parent.width
- height:parent.height*.9
- anchors.top: header.bottom
- cellWidth: 100
- cellHeight: 75
-// highlight: Rectangle { width:cellWidth; height: cellHeight; color: "lightsteelblue" ;radius: 13}
- model: directory.files
- delegate: dirDelegate
- clip: true
- highlightMoveDuration:40
- }
-
- Component{
- id:dirDelegate
-
- Rectangle{
- id:file
- color: "transparent"
- width: GridView.view.cellWidth; height: GridView.view.cellHeight
-
- Text{
- id:fileName
- width: parent.width
- anchors.centerIn:parent
- text: name
- color: "#BDCACD"
- font.weight: GridView.view.currentIndex == index ? Font.DemiBold : Font.Normal
- font.pointSize: GridView.view.currentIndex == index ? 12 : 10
- elide: Text.ElideMiddle
- horizontalAlignment: Text.AlignHCenter
- }
- Rectangle{
- id:selection
- width:parent.width; height:parent.height
- anchors.centerIn: parent
- radius: 10
- smooth: true
- scale: GridView.view.currentIndex == index ? 1 : 0.5
- opacity: GridView.view.currentIndex == index ? 1 : 0
- Text{
- id:overlay
- width: parent.width
- anchors.centerIn:parent
- text: name
- color: "#696167"
- font.weight: Font.DemiBold
- font.pointSize: 12
- smooth:true
- elide: Text.ElideMiddle
- horizontalAlignment: Text.AlignHCenter
- }
- Behavior on opacity{ NumberAnimation{ duration: 45} }
- Behavior on scale { NumberAnimation{ duration: 45} }
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter("lightsteelblue",1.25) }
- GradientStop { position: 0.67; color: Qt.darker("lightsteelblue",1.3) }
- }
- border.color:"lightsteelblue"
- border.width:1
- }
- MouseArea{
- id:fileMouseArea
- anchors.fill:parent
- hoverEnabled: true
-
- onClicked:{
- GridView.view.currentIndex = index
- selectedFile = directory.files[index].name
- selectChanged()
- }
- onEntered:{
- fileName.color = "lightsteelblue"
- fileName.font.weight = Font.DemiBold
- }
- onExited: {
- fileName.font.weight = Font.Normal
- fileName.color = "#BDCACD"
- }
- }
- }
- }
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#A5333333" }
- GradientStop { position: 1.0; color: "#03333333" }
- }
- }
-} \ No newline at end of file
diff --git a/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml
deleted file mode 100644
index 20d8fd6..0000000
--- a/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml
+++ /dev/null
@@ -1,232 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt 4.7
-
-Rectangle{
- id: fileMenu
- height: 480; width:1000
- property color buttonBorderColor: "#7F8487"
- property color buttonFillColor: "#8FBDCACD"
- property string fileContent:directory.fileContent
-
- //the menuName is accessible from outside this QML file
- property string menuName: "File"
-
- //used to divide the screen into parts.
- property real partition: 1/3
-
- color: "#6C646A"
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#6C646A" }
- GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") }
- }
-
- Directory{
- id:directory
- filename: textInput.text
- onDirectoryChanged:fileDialog.notifyRefresh()
- }
-
- Rectangle{
- id:actionContainer
-
- //make this rectangle invisible
- color:"transparent"
- anchors.left: parent.left
-
- //the height is a good proportion that creates more space at the top of the column of buttons
- width: fileMenu.width * partition; height: fileMenu.height
-
- Column{
- anchors.centerIn: parent
- spacing: parent.height/32
- Button{
- id: saveButton
- label: "Save"
- borderColor: buttonBorderColor
- buttonColor: buttonFillColor
- width: actionContainer.width/ 1.3
- height:actionContainer.height / 8
- labelSize:24
- onButtonClick:{
- directory.fileContent = textArea.textContent
- directory.filename = textInput.text
- directory.saveFile()
- }
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
-
- }
- Button{
- id: loadButton
- width: actionContainer.width/ 1.3
- height:actionContainer.height/ 8
- buttonColor: buttonFillColor
- borderColor: buttonBorderColor
- label: "Load"
- labelSize:24
- onButtonClick:{
- directory.filename = textInput.text
- directory.loadFile()
- textArea.textContent = directory.fileContent
- }
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
- Button{
- id: newButton
- width: actionContainer.width/ 1.3
- height:actionContainer.height/ 8
- buttonColor: buttonFillColor
- borderColor: buttonBorderColor
- label: "New"
- labelSize:24
- onButtonClick:{
- textArea.textContent = ""
- textInput.text = ""
- }
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
-
- }
- Rectangle{
- id: space
- width: actionContainer.width/ 1.3
- height:actionContainer.height / 16
- color:"transparent"
- }
- Button{
- id: exitButton
- width: actionContainer.width/ 1.3
- height:actionContainer.height/ 8
- label: "Exit"
- labelSize:24
- buttonColor: buttonFillColor
- borderColor: buttonBorderColor
- onButtonClick:Qt.quit()
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
- }
- }
-
- Rectangle{
- id:dialogContainer
-
- width: 2*fileMenu.width * partition; height: fileMenu.height
- anchors.right:parent.right
- color:"transparent"
-
- Column {
- anchors.centerIn: parent
- spacing: parent.height /640
- FileDialog{
- id:fileDialog
- height: 2*dialogContainer.height * partition; width: dialogContainer.width
- onSelectChanged: textInput.text = selectedFile
- }
-
- Rectangle{
- id:lowerPartition
- height: dialogContainer.height * partition; width: dialogContainer.width
- color: "transparent"
-
- Rectangle{
- id: nameField
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#806F6F6F" }
- GradientStop { position: 1.0; color: "#136F6F6F" }
- }
-
- radius: 10
- anchors {centerIn:parent; leftMargin: 15; rightMargin: 15; topMargin: 15}
- height: parent.height-15; width: parent.width -20
- border {color:"#4A4A4A"; width:1}
-
- TextInput{
- id: textInput
- z:2
- anchors {bottom: parent.bottom; topMargin: 10; horizontalCenter:parent.horizontalCenter}
- width: parent.width - 10
- height: parent.height -10
- font.pointSize: 40
- color:"lightsteelblue"
- focus:true
- }
- Text{
- id: textInstruction
- anchors.centerIn:parent
- text: "Select file name and press save or load"
- font {pointSize: 11; weight:Font.Light; italic: true}
- color: "lightblue"
- z:2
- opacity: (textInput.text == "") ? 1: 0
- }
- Text{
- id:fieldLabel
- anchors {top: parent.top; left: parent.left}
- text: " file name: "
- font {pointSize: 11; weight: Font.Light; italic: true}
- color: "lightblue"
- z:2
- }
- MouseArea{
- anchors.centerIn:parent
- width: nameField.width; height: nameField.height
- onClicked:{
- textInput.text = ""
- textInput.focus = true
- textInput.forceFocus()
- }
- }
- }
- }
- }
- }
-}
diff --git a/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml b/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml
deleted file mode 100644
index c387f5f..0000000
--- a/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt 4.7
-
-Rectangle {
- id: menuBar
- width: 1000; height:300
- color:"transparent"
- property color fileColor: "plum"
- property color editColor: "powderblue"
-
- property real partition: 1/10
-
- Column{
- anchors.fill: parent
- //container for the header and the buttons
- z: 1
- Rectangle{
- id: labelList
- height:menuBar.height*partition
- width: menuBar.width
- color: "beige"
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.98;color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#0e1B20" }
- }
- Text{
- height: parent.height
- anchors {right: labelRow.left ; verticalCenter: parent.bottom}
- text: "menu: "
- color: "lightblue"
- font {weight: Font.Light; italic: true}
- smooth: true
- }
-
- //row displays its children in a vertical row
- Row{
- id: labelRow
- anchors.centerIn: parent
- spacing:40
- Button{
- id: fileButton
- height: 20; width: 50
- label: "File"
- buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5)
- scale: menuListView.currentIndex == 0? 1.25: 1
- labelSize: menuListView.currentIndex == 0? 16:12
- radius: 1
- smooth:true
- //on a button click, change the list's currently selected item to FileMenu
- onButtonClick: menuListView.currentIndex = 0
- gradient: Gradient{
- GradientStop { position: 0.0; color: fileColor }
- GradientStop { position: 1.0; color: "#136F6F6F" }
- }
- }
- Button{
- id: editButton
- height: 20; width: 50
- buttonColor : menuListView.currentIndex == 1? Qt.darker(editColor, 1.5) : Qt.darker(editColor, 1.9)
- scale: menuListView.currentIndex == 1? 1.25: 1
- label: "Edit"
- radius: 1
- labelSize: menuListView.currentIndex == 1? 16:12
- smooth:true
- //on a button click, change the list's currently selected item to EditMenu
- onButtonClick: menuListView.currentIndex = 1
- gradient: Gradient{
- GradientStop { position: 0.0; color: editColor }
- GradientStop { position: 1.0; color: "#136F6F6F" }
- }
- }
- }
- }
-
- //list view will display a model according to a delegate
- ListView{
- id: menuListView
- width:menuBar.width; height: 9*menuBar.height*partition
-
- //the model contains the data
- model: menuListModel
-
- //control the movement of the menu switching
- snapMode: ListView.SnapOneItem
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickDeceleration: 5000
- highlightFollowsCurrentItem: true
- highlightMoveDuration:240
- highlightRangeMode: ListView.StrictlyEnforceRange
- }
- }
- //a list of visual items already have delegates handling their display
- VisualItemModel{
- id: menuListModel
-
- FileMenu{
- id:fileMenu
- width: menuListView.width; height: menuListView.height
- color: fileColor
- }
- EditMenu{
- color: editColor
- width: menuListView.width; height: menuListView.height
- }
- }
-} \ No newline at end of file
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro
deleted file mode 100644
index 6247747..0000000
--- a/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-TEMPLATE = lib
-CONFIG += qt plugin
-QT += declarative
-
-DESTDIR += ../plugins
-OBJECTS_DIR = tmp
-MOC_DIR = tmp
-
-TARGET = FileDialog
-
-HEADERS += directory.h \
- file.h \
- dialogPlugin.h
-
-SOURCES += directory.cpp \
- file.cpp \
- dialogPlugin.cpp
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp
deleted file mode 100644
index c0132c0..0000000
--- a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "dialogPlugin.h"
-#include "directory.h"
-#include "file.h"
-#include <QtDeclarative/qdeclarative.h>
-
-void DialogPlugin::registerTypes(const char *uri){
-
- //register the class Directory into QML as a "Directory" element version 1.0
- qmlRegisterType<Directory>(uri, 1, 0, "Directory");
- qmlRegisterType<File>(uri,1,0,"File");
-
- //qRegisterMetaType<QDeclarativeListProperty<QString> > ("QDeclarativeListProperty<QString>");
-
-}
-
-//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs
-Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); \ No newline at end of file
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp
deleted file mode 100644
index b3e0256..0000000
--- a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp
+++ /dev/null
@@ -1,219 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "directory.h"
-#include <QDebug>
-
-/*
-Directory constructor
-
-Initialize the saves directory and creates the file list
-*/
-Directory::Directory(QObject *parent) : QObject(parent)
-{
-
-
- m_dir.cd( QDir::currentPath());
-
- //go to the saved directory. if not found, create save directory
- m_saveDir = "saves";
- if (m_dir.cd(m_saveDir) == 0){
- m_dir.mkdir(m_saveDir);
- m_dir.cd(m_saveDir);
- }
- m_filterList << "*.txt";
-
- refresh();
-}
-
-/*
-Directory::filesNumber
-Return the number of Files
-*/
-int Directory:: filesCount() const{
- return m_fileList.size();
-}
-
-/*
-Function called to append data onto list property
-*/
-void appendFiles(QDeclarativeListProperty<File> * property, File * file){
- //Do nothing. can't add to a directory using this method
-}
-
-/*
-Function called to retrieve file in the list using an index
-*/
-File* fileAt(QDeclarativeListProperty<File> * property, int index){
- return static_cast< QList<File *> *>(property->data)->at(index);
-}
-
-/*
-Returns the number of files in the list
-*/
-int filesSize(QDeclarativeListProperty<File> * property){
- return static_cast< QList<File *> *>(property->data)->size();
-}
-
-/*
-Function called to empty the list property contents
-*/
-void clearFilesPtr(QDeclarativeListProperty<File> *property){
- return static_cast< QList<File *> *>(property->data)->clear();
-}
-
-/*
-Returns the list of files as a QDeclarativeListProperty.
-*/
-QDeclarativeListProperty<File> Directory::files(){
-
- refresh();
-// return QDeclarativeListProperty<QString>(this,m_filePtrList); //not recommended in the docs
- return QDeclarativeListProperty<File>( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr );
-}
-
-/*
-Return te name of the currently selected file
-*/
-QString Directory::filename() const{
- return currentFile.name();
-}
-
-/*
-Return the file's content as a string.
-*/
-QString Directory::fileContent() const{
- return m_fileContent;
-}
-
-/*
-Set the file name of the current file
-*/
-void Directory::setFilename(const QString &str){
- if(str != currentFile.name()){
- currentFile.setName(str);
- emit filenameChanged();
- }
-}
-
-/*
-Set the content of the file as a string
-*/
-void Directory::setFileContent(const QString &str){
- if(str != m_fileContent){
- m_fileContent = str;
- emit fileContentChanged();
- }
-}
-
-/*
-Called from QML to save the file using the filename and file content.
-Saving makes sure that the file has a .txt extension.
-*/
-void Directory::saveFile(){
-
- if(currentFile.name().size() == 0){
- qWarning()<< "Empty filename. no save";
- return;
- }
-
- QString extendedName = currentFile.name();
- if(!currentFile.name().endsWith(".txt")){
- extendedName.append(".txt");
- }
-
- QFile file( m_dir.filePath(extendedName) );
- if (file.open(QFile::WriteOnly | QFile::Truncate)){
- QTextStream outStream(&file);
- outStream << m_fileContent;
- }
- file.close();
- refresh();
- emit directoryChanged();
-}
-
-/*
-Load the contents of a file.
-Only loads files with a .txt extension
-*/
-void Directory::loadFile(){
-
- m_fileContent.clear();
- QString extendedName = currentFile.name();
- if(!currentFile.name().endsWith(".txt")){
- extendedName.append(".txt");
- }
-
- QFile file( m_dir.filePath(extendedName) );
- if (file.open(QFile::ReadOnly )){
- QTextStream inStream(&file);
-
- QString line;
- do{
- line = inStream.read(75);
- m_fileContent.append(line);
- }while (!line .isNull());
- }
- file.close();
-}
-
-/*
-Reloads the content of the files list. This is to ensure that the newly
-created files are added onto the list.
-*/
-void Directory::refresh(){
- m_dirFiles = m_dir.entryList(m_filterList,QDir::Files,QDir::Name);
- m_fileList.clear();
-
- File * file;
- for(int i = 0; i < m_dirFiles.size() ; i ++){
-
- file = new File();
-
- if(m_dirFiles.at(i).endsWith(".txt")){
- QString name = m_dirFiles.at(i);
- file->setName( name.remove(".txt",Qt::CaseSensitive));
- }
- else{
- file->setName(m_dirFiles.at(i));
- }
- m_fileList.append(file);
- }
-} \ No newline at end of file
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h
deleted file mode 100644
index bef1a93..0000000
--- a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DIRECTORY_H
-#define DIRECTORY_H
-
-#include "file.h"
-
-#include <QDir>
-#include <QStringList>
-#include <QTextStream>
-#include <QDeclarativeListProperty>
-#include <QObject>
-
-class Directory : public QObject{
-
- Q_OBJECT
-
- //number of files in the directory
- Q_PROPERTY(int filesCount READ filesCount)
-
- //list property containing file names as QString
- Q_PROPERTY(QDeclarativeListProperty<File> files READ files CONSTANT )
-
- //file name of the text file to read/write
- Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged)
-
- //text content of the file
- Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged)
-
- public:
- Directory(QObject *parent = 0);
-
- //properties' read functions
- int filesCount() const;
- QString filename() const;
- QString fileContent() const;
- QDeclarativeListProperty<File> files();
-
- //properties' write functions
- void setFilename(const QString &str);
- void setFileContent(const QString &str);
-
- //accessible from QML
- Q_INVOKABLE void saveFile();
- Q_INVOKABLE void loadFile();
-
- signals:
- void directoryChanged();
- void filenameChanged();
- void fileContentChanged();
-
- private:
- QDir m_dir;
- QStringList m_dirFiles;
- File currentFile;
- QString m_saveDir;
- QStringList m_filterList;
-
- //contains the file data in QString format
- QString m_fileContent;
-
- //Registered to QML in a plugin. Accessible from QML as a property of Directory
- QList<File *> m_fileList;
-
- //refresh content of the directory
- void refresh();
-};
-
-
-#endif
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir
deleted file mode 100644
index c2b27da..0000000
--- a/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir
+++ /dev/null
@@ -1 +0,0 @@
-plugin FileDialog plugins
diff --git a/examples/tutorials/gettingStarted/gsQml/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/images/arrow.png
deleted file mode 100644
index 14978c2..0000000
--- a/examples/tutorials/gettingStarted/gsQml/images/arrow.png
+++ /dev/null
Binary files differ
diff --git a/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png b/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png
deleted file mode 100644
index 14ddf2a..0000000
--- a/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png
+++ /dev/null
Binary files differ
diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png
deleted file mode 100644
index 27feed5..0000000
--- a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png
+++ /dev/null
Binary files differ
diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png
deleted file mode 100644
index 4d8f9f2..0000000
--- a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png
+++ /dev/null
Binary files differ
diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png
deleted file mode 100644
index 680acfe..0000000
--- a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png
+++ /dev/null
Binary files differ
diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp
index 5cbb8ca..055fead 100644
--- a/src/dbus/qdbusconnection.cpp
+++ b/src/dbus/qdbusconnection.cpp
@@ -173,6 +173,9 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
The connection is then torn down using the disconnectFromBus()
function.
+ Once disconnected, calling connectToBus() will not reestablish a
+ connection, you must create a new QDBusConnection instance.
+
As a convenience for the two most common connection types, the
sessionBus() and systemBus() functions return open connections to
the session server daemon and the system server daemon,
@@ -853,10 +856,6 @@ QDBusConnectionInterface *QDBusConnection::interface() const
/*!
Returns true if this QDBusConnection object is connected.
-
- If it isn't connected, calling connectToBus() on the same
- connection name will not make be connected. You need to call the
- QDBusConnection constructor again.
*/
bool QDBusConnection::isConnected() const
{
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index 50998eb..5b74129 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -2406,18 +2406,7 @@ void QDeclarativeItemPrivate::focusChanged(bool flag)
Q_Q(QDeclarativeItem);
if (!(flags & QGraphicsItem::ItemIsFocusScope) && parent)
emit q->activeFocusChanged(flag); //see also QDeclarativeItemPrivate::subFocusItemChange()
-
- bool inScope = false;
- QGraphicsItem *p = parent;
- while (p) {
- if (p->flags() & QGraphicsItem::ItemIsFocusScope) {
- inScope = true;
- break;
- }
- p = p->parentItem();
- }
- if (!inScope)
- emit q->focusChanged(flag);
+ emit q->focusChanged(flag);
}
/*! \internal */
diff --git a/src/declarative/qml/qdeclarativeexpression.cpp b/src/declarative/qml/qdeclarativeexpression.cpp
index 585fb69..6fc4df0 100644
--- a/src/declarative/qml/qdeclarativeexpression.cpp
+++ b/src/declarative/qml/qdeclarativeexpression.cpp
@@ -143,16 +143,12 @@ void QDeclarativeExpressionPrivate::init(QDeclarativeContextData *ctxt, void *ex
} else {
-#if !defined(Q_OS_SYMBIAN) //XXX Why doesn't this work?
if (!dd->cachedPrograms.at(progIdx)) {
dd->cachedPrograms[progIdx] = new QScriptProgram(expression, url, line);
}
expressionFunction = evalInObjectScope(ctxt, me, *dd->cachedPrograms.at(progIdx),
&expressionContext);
-#else
- expressionFunction = evalInObjectScope(ctxt, me, expression, &expressionContext);
-#endif
expressionFunctionMode = ExplicitContext;
expressionFunctionValid = true;
diff --git a/src/declarative/qml/qdeclarativeprivate.h b/src/declarative/qml/qdeclarativeprivate.h
index b2d7451..cb916bf 100644
--- a/src/declarative/qml/qdeclarativeprivate.h
+++ b/src/declarative/qml/qdeclarativeprivate.h
@@ -132,6 +132,7 @@ namespace QDeclarativePrivate
template <typename T, bool hasMember>
class has_attachedPropertiesMethod
{
+ public:
typedef int yes_type;
typedef char no_type;
@@ -139,7 +140,6 @@ namespace QDeclarativePrivate
static yes_type check(ReturnType *(*)(QObject *));
static no_type check(...);
- public:
static bool const value = sizeof(check(&T::qmlAttachedProperties)) == sizeof(yes_type);
};
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index 6a9cf95..b901bb3 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -645,12 +645,13 @@ QAbstractAnimation *QDeclarativePauseAnimation::qtAnimation()
Like any other animation element, a ColorAnimation can be applied in a
number of ways, including transitions, behaviors and property value
- sources. The \l PropertyAnimation documentation shows a variety of methods
+ sources. The \l {QML Animation} documentation shows a variety of methods
for creating animations.
- When used in a transition, ColorAnimation will by default animate
- all properties of type color that have changed. If a \l{PropertyAnimation::}{property}
- or \l{PropertyAnimation::}{properties} are explicitly set for the animation,
+ For convenience, when a ColorAnimation is used in a \l Transition, it will
+ animate any \c color properties that have been modified during the state
+ change. If a \l{PropertyAnimation::}{property} or
+ \l{PropertyAnimation::}{properties} are explicitly set for the animation,
then those are used instead.
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
@@ -1143,7 +1144,7 @@ void QDeclarativePropertyAction::transition(QDeclarativeStateActions &actions,
Like any other animation element, a NumberAnimation can be applied in a
number of ways, including transitions, behaviors and property value
- sources. The \l PropertyAnimation documentation shows a variety of methods
+ sources. The \l {QML Animation} documentation shows a variety of methods
for creating animations.
Note that NumberAnimation may not animate smoothly if there are irregular
@@ -1244,6 +1245,11 @@ void QDeclarativeNumberAnimation::setTo(qreal t)
Vector3dAnimation is a specialized PropertyAnimation that defines an
animation to be applied when a Vector3d value changes.
+ Like any other animation element, a Vector3dAnimation can be applied in a
+ number of ways, including transitions, behaviors and property value
+ sources. The \l {QML Animation} documentation shows a variety of methods
+ for creating animations.
+
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
@@ -1323,7 +1329,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
\snippet doc/src/snippets/declarative/rotationanimation.qml 0
- Notice the RotationAnimation did not need to set a \l {RotationAnimation::}{target}
+ Notice the RotationAnimation did not need to set a \l {PropertyAnimation::}{target}
value. As a convenience, when used in a transition, RotationAnimation will rotate all
properties named "rotation" or "angle". You can override this by providing
your own properties via \l {PropertyAnimation::properties}{properties} or
@@ -1331,7 +1337,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
Like any other animation element, a RotationAnimation can be applied in a
number of ways, including transitions, behaviors and property value
- sources. The \l PropertyAnimation documentation shows a variety of methods
+ sources. The \l {QML Animation} documentation shows a variety of methods
for creating animations.
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
@@ -1554,7 +1560,7 @@ QDeclarativeListProperty<QDeclarativeAbstractAnimation> QDeclarativeAnimationGro
Like any other animation element, a SequentialAnimation can be applied in a
number of ways, including transitions, behaviors and property value
- sources. The \l PropertyAnimation documentation shows a variety of methods
+ sources. The \l {QML Animation} documentation shows a variety of methods
for creating animations.
\note Once an animation has been grouped into a SequentialAnimation or
@@ -1623,7 +1629,7 @@ void QDeclarativeSequentialAnimation::transition(QDeclarativeStateActions &actio
Like any other animation element, a ParallelAnimation can be applied in a
number of ways, including transitions, behaviors and property value
- sources. The \l PropertyAnimation documentation shows a variety of methods
+ sources. The \l {QML Animation} documentation shows a variety of methods
for creating animations.
\note Once an animation has been grouped into a SequentialAnimation or
@@ -2396,8 +2402,7 @@ void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions
\inherits Animation
\brief The ParentAnimation element animates changes in parent values.
- ParentAnimation defines an animation to applied when a ParentChange
- occurs. This allows parent changes to be smoothly animated.
+ ParentAnimation is used to animate a parent change for an \l Item.
For example, the following ParentChange changes \c blueRect to become
a child of \c redRect when it is clicked. The inclusion of the
@@ -2415,10 +2420,16 @@ void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions
to animate the parent change via another item that does not have clipping
enabled. Such an item can be set using the \l via property.
- By default, when used in a transition, ParentAnimation animates all parent
- changes. This can be overridden by setting a specific target item using the
+ For convenience, when a ParentAnimation is used in a \l Transition, it will
+ animate any ParentChange that has occurred during the state change.
+ This can be overridden by setting a specific target item using the
\l target property.
+ Like any other animation element, a ParentAnimation can be applied in a
+ number of ways, including transitions, behaviors and property value
+ sources. The \l {QML Animation} documentation shows a variety of methods
+ for creating animations.
+
\sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
@@ -2750,14 +2761,23 @@ QAbstractAnimation *QDeclarativeParentAnimation::qtAnimation()
\inherits Animation
\brief The AnchorAnimation element animates changes in anchor values.
- AnchorAnimation is used to animate an AnchorChange. It will anchor all
- anchor changes specified in a \l State.
+ AnchorAnimation is used to animate an anchor change.
In the following snippet we animate the addition of a right anchor to a \l Rectangle:
\snippet doc/src/snippets/declarative/anchoranimation.qml 0
- \sa AnchorChanges
+ For convenience, when an AnchorAnimation is used in a \l Transition, it will
+ animate any AnchorChanges that have occurred during the state change.
+ This can be overridden by setting a specific target item using the
+ \l target property.
+
+ Like any other animation element, an AnchorAnimation can be applied in a
+ number of ways, including transitions, behaviors and property value
+ sources. The \l {QML Animation} documentation shows a variety of methods
+ for creating animations.
+
+ \sa {QML Animation}, AnchorChanges
*/
QDeclarativeAnchorAnimation::QDeclarativeAnchorAnimation(QObject *parent)
diff --git a/src/declarative/util/qdeclarativebehavior.cpp b/src/declarative/util/qdeclarativebehavior.cpp
index fadb2ae..1e7f81a 100644
--- a/src/declarative/util/qdeclarativebehavior.cpp
+++ b/src/declarative/util/qdeclarativebehavior.cpp
@@ -84,12 +84,15 @@ public:
\snippet doc/src/snippets/declarative/behavior.qml 0
- To run multiple animations within a Behavior, use ParallelAnimation or
+ Note that a property cannot have more than one assigned Behavior. To provide
+ multiple animations within a Behavior, use ParallelAnimation or
SequentialAnimation.
- Note that a property cannot have more than one assigned Behavior.
+ If a \l{QML States}{state change} has a \l Transition that matches the same property as a
+ Behavior, the \l Transition animation overrides the Behavior for that
+ state change.
- \sa {Property Behaviors}, {declarative/animation/behaviors}{Behavior example}, QtDeclarative
+ \sa {QML Animation}, {declarative/animation/behaviors}{Behavior example}, QtDeclarative
*/
diff --git a/src/declarative/util/qdeclarativesmoothedanimation.cpp b/src/declarative/util/qdeclarativesmoothedanimation.cpp
index 727f427..30e1491 100644
--- a/src/declarative/util/qdeclarativesmoothedanimation.cpp
+++ b/src/declarative/util/qdeclarativesmoothedanimation.cpp
@@ -287,7 +287,7 @@ void QSmoothedAnimation::init()
Like any other animation element, a SmoothedAnimation can be applied in a
number of ways, including transitions, behaviors and property value
- sources. The \l PropertyAnimation documentation shows a variety of methods
+ sources. The \l {QML Animation} documentation shows a variety of methods
for creating animations.
\sa SpringAnimation, NumberAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example}
diff --git a/src/declarative/util/qdeclarativespringanimation.cpp b/src/declarative/util/qdeclarativespringanimation.cpp
index cfc7b8e..6f4ac51 100644
--- a/src/declarative/util/qdeclarativespringanimation.cpp
+++ b/src/declarative/util/qdeclarativespringanimation.cpp
@@ -228,6 +228,7 @@ void QDeclarativeSpringAnimationPrivate::updateMode()
/*!
\qmlclass SpringAnimation QDeclarativeSpringAnimation
+ \inherits Animation
\since 4.7
\brief The SpringAnimation element allows a property to track a value in a spring-like motion.
@@ -246,7 +247,7 @@ void QDeclarativeSpringAnimationPrivate::updateMode()
Like any other animation element, a SpringAnimation can be applied in a
number of ways, including transitions, behaviors and property value
- sources. The \l PropertyAnimation documentation shows a variety of methods
+ sources. The \l {QML Animation} documentation shows a variety of methods
for creating animations.
\sa SmoothedAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example}, {declarative/toys/clocks}{Clocks example}
diff --git a/src/declarative/util/qdeclarativestate.cpp b/src/declarative/util/qdeclarativestate.cpp
index 0d43d21..7a78a2b 100644
--- a/src/declarative/util/qdeclarativestate.cpp
+++ b/src/declarative/util/qdeclarativestate.cpp
@@ -154,7 +154,7 @@ QDeclarativeStateOperation::QDeclarativeStateOperation(QObjectPrivate &dd, QObje
Notice the default state is referred to using an empty string ("").
- States are commonly used together with \l {state-transitions}{Transitions} to provide
+ States are commonly used together with \l {Transitions} to provide
animations when state changes occur.
\note Setting the state of an object from within another state of the same object is
diff --git a/src/declarative/util/qdeclarativestategroup.cpp b/src/declarative/util/qdeclarativestategroup.cpp
index 67cd12e..1c1e964 100644
--- a/src/declarative/util/qdeclarativestategroup.cpp
+++ b/src/declarative/util/qdeclarativestategroup.cpp
@@ -112,7 +112,7 @@ public:
}
\endqml
- \sa {qmlstate}{States} {state-transitions}{Transitions}, {QtDeclarative}
+ \sa {qmlstate}{States} {Transitions}, {QtDeclarative}
*/
QDeclarativeStateGroup::QDeclarativeStateGroup(QObject *parent)
@@ -204,7 +204,7 @@ void QDeclarativeStateGroupPrivate::clear_states(QDeclarativeListProperty<QDecla
}
\endqml
- \sa {state-transitions}{Transitions}
+ \sa {Transitions}
*/
QDeclarativeListProperty<QDeclarativeTransition> QDeclarativeStateGroup::transitionsProperty()
{
diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp
index 582191b..7042d0c 100644
--- a/src/declarative/util/qdeclarativetransition.cpp
+++ b/src/declarative/util/qdeclarativetransition.cpp
@@ -60,12 +60,25 @@ QT_BEGIN_NAMESPACE
For example, the following \l Rectangle has two states: the default state, and
an added "moved" state. In the "moved state, the rectangle's position changes
- to (50, 50). The added \l Transition specifies that when the rectangle
+ to (50, 50). The added Transition specifies that when the rectangle
changes between the default and the "moved" state, any changes
to the \c x and \c y properties should be animated, using an \c Easing.InOutQuad.
\snippet doc/src/snippets/declarative/transition.qml 0
+ Notice the example does not require \l{PropertyAnimation::}{to} and
+ \l{PropertyAnimation::}{from} values for the NumberAnimation. As a convenience,
+ these properties are automatically set to the values of \c x and \c y before
+ and after the state change; the \c from values are provided by
+ the current values of \c x and \c y, and the \c to values are provided by
+ the PropertyChanges object. If you wish, you can provide \l{PropertyAnimation::}{to} and
+ \l{PropertyAnimation::}{from} values anyway to override the default values.
+
+ By default, a Transition's animations are applied for any state change in the
+ parent item. The Transition \l {Transition::}{from} and \l {Transition::}{to}
+ values can be set to restrict the animations to only be applied when changing
+ from one particular state to another.
+
To define multiple transitions, specify \l Item::transitions as a list:
\qml
@@ -78,7 +91,11 @@ QT_BEGIN_NAMESPACE
}
\endqml
- \sa {declarative/animation/states}{states example}, {qmlstates}{States}, {state-transitions}{Transitions}, {QtDeclarative}
+ If a state change has a Transition that matches the same property as a
+ \l Behavior, the Transition animation overrides the \l Behavior for that
+ state change.
+
+ \sa {QML Animation}, {declarative/animation/states}{states example}, {qmlstates}{States}, {QtDeclarative}
*/
/*!
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 1626d83..ff3dc1f 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -3259,8 +3259,12 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim
QGraphicsItem *p = parent;
while (p) {
if (p->flags() & QGraphicsItem::ItemIsFocusScope) {
+ QGraphicsItem *oldFocusScopeItem = p->d_ptr->focusScopeItem;
p->d_ptr->focusScopeItem = q_ptr;
if (!p->focusItem() && !focusFromShow) {
+ if (oldFocusScopeItem)
+ oldFocusScopeItem->d_ptr->focusScopeItemChange(false);
+ focusScopeItemChange(true);
// If you call setFocus on a child of a focus scope that
// doesn't currently have a focus item, then stop.
return;
@@ -5595,6 +5599,7 @@ void QGraphicsItemPrivate::subFocusItemChange()
*/
void QGraphicsItemPrivate::focusScopeItemChange(bool isSubFocusItem)
{
+ Q_UNUSED(isSubFocusItem);
}
/*!
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 3303800..e164baf 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -474,7 +474,7 @@ int qt_antialiasing_threshold = -1;
static int drag_time = 500;
#ifdef Q_OS_SYMBIAN
// The screens are a bit too small to for your thumb when using only 4 pixels drag distance.
-static int drag_distance = 8;
+static int drag_distance = 12;
#else
static int drag_distance = 4;
#endif
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index f8734b2..1f6a4ae 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -1953,13 +1953,6 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent
if (switchToSwRendering) {
QRuntimeGraphicsSystem *gs =
static_cast<QRuntimeGraphicsSystem*>(QApplicationPrivate::graphics_system);
-
- uint memoryUsage = gs->memoryUsage();
- uint memoryForFullscreen = ( S60->screenDepth / 8 )
- * S60->screenWidthInPixels
- * S60->screenHeightInPixels;
-
- S60->memoryLimitForHwRendering = memoryUsage - memoryForFullscreen;
gs->setGraphicsSystem(QLatin1String("raster"));
}
}
@@ -1975,8 +1968,7 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent
if(QApplicationPrivate::runtime_graphics_system) {
QRuntimeGraphicsSystem *gs =
static_cast<QRuntimeGraphicsSystem*>(QApplicationPrivate::graphics_system);
- gs->setGraphicsSystem(QLatin1String("openvg"), S60->memoryLimitForHwRendering);
- S60->memoryLimitForHwRendering = 0;
+ gs->setGraphicsSystem(QLatin1String("openvg"));
}
#endif
break;
diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h
index 7f0c99e..a18ea07 100644
--- a/src/gui/kernel/qt_s60_p.h
+++ b/src/gui/kernel/qt_s60_p.h
@@ -141,7 +141,6 @@ public:
int supportsPremultipliedAlpha : 1;
int avkonComponentsSupportTransparency : 1;
int menuBeingConstructed : 1;
- int memoryLimitForHwRendering;
QApplication::QS60MainApplicationFactory s60ApplicationFactory; // typedef'ed pointer type
enum ScanCodeState {
@@ -291,7 +290,6 @@ inline QS60Data::QS60Data()
supportsPremultipliedAlpha(0),
avkonComponentsSupportTransparency(0),
menuBeingConstructed(0),
- memoryLimitForHwRendering(0),
s60ApplicationFactory(0)
#ifdef Q_OS_SYMBIAN
,s60InstalledTrapHandler(0)
diff --git a/src/gui/painting/qgraphicssystem_runtime.cpp b/src/gui/painting/qgraphicssystem_runtime.cpp
index 568f4d7..be04df6 100644
--- a/src/gui/painting/qgraphicssystem_runtime.cpp
+++ b/src/gui/painting/qgraphicssystem_runtime.cpp
@@ -53,10 +53,8 @@ QT_BEGIN_NAMESPACE
static int qt_pixmap_serial = 0;
#define READBACK(f) \
- m_graphicsSystem->decreaseMemoryUsage(memoryUsage()); \
f \
- readBackInfo(); \
- m_graphicsSystem->increaseMemoryUsage(memoryUsage()); \
+ readBackInfo();
class QDeferredGraphicsSystemChange : public QObject
@@ -252,14 +250,6 @@ QPixmapData* QRuntimePixmapData::runtimeData() const
return m_data;
}
-uint QRuntimePixmapData::memoryUsage() const
-{
- if(is_null || d == 0)
- return 0;
- return w * h * (d / 8);
-}
-
-
QRuntimeWindowSurface::QRuntimeWindowSurface(const QRuntimeGraphicsSystem *gs, QWidget *window)
: QWindowSurface(window), m_windowSurface(0), m_pendingWindowSurface(0), m_graphicsSystem(gs)
{
@@ -295,9 +285,7 @@ void QRuntimeWindowSurface::flush(QWidget *widget, const QRegion &region,
void QRuntimeWindowSurface::setGeometry(const QRect &rect)
{
- m_graphicsSystem->decreaseMemoryUsage(memoryUsage());
m_windowSurface->setGeometry(rect);
- m_graphicsSystem->increaseMemoryUsage(memoryUsage());
}
bool QRuntimeWindowSurface::scroll(const QRegion &area, int dx, int dy)
@@ -330,18 +318,9 @@ QPoint QRuntimeWindowSurface::offset(const QWidget *widget) const
return m_windowSurface->offset(widget);
}
-uint QRuntimeWindowSurface::memoryUsage() const
-{
- QPaintDevice *pdev = m_windowSurface->paintDevice();
- if (pdev && pdev->depth() != 0)
- return pdev->width() * pdev->height() * (pdev->depth()/8);
-
- return 0;
-}
-
QRuntimeGraphicsSystem::QRuntimeGraphicsSystem()
- : m_memoryUsage(0), m_windowSurfaceDestroyPolicy(DestroyImmediately),
- m_graphicsSystem(0), m_graphicsSystemChangeMemoryLimit(0)
+ : m_windowSurfaceDestroyPolicy(DestroyImmediately),
+ m_graphicsSystem(0)
{
QApplicationPrivate::graphics_system_name = QLatin1String("runtime");
QApplicationPrivate::runtime_graphics_system = true;
@@ -379,34 +358,15 @@ QWindowSurface *QRuntimeGraphicsSystem::createWindowSurface(QWidget *widget) con
rtSurface->m_windowSurface = m_graphicsSystem->createWindowSurface(widget);
widget->setWindowSurface(rtSurface);
m_windowSurfaces << rtSurface;
- increaseMemoryUsage(rtSurface->memoryUsage());
return rtSurface;
}
-/*!
- Sets graphics system when resource memory consumption is under /a memoryUsageLimit.
-*/
-void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name, uint memoryUsageLimit)
-{
-#ifdef QT_DEBUG
- qDebug() << "QRuntimeGraphicsSystem::setGraphicsSystem( "<< name <<", " << memoryUsageLimit << ")";
- qDebug() << " current approximated graphics system memory usage " << memoryUsage() << " bytes";
-#endif
- if (memoryUsage() >= memoryUsageLimit) {
- m_graphicsSystemChangeMemoryLimit = memoryUsageLimit;
- m_pendingGraphicsSystemName = name;
- } else {
- setGraphicsSystem(name);
- }
-}
-
void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name)
{
if (m_graphicsSystemName == name)
return;
#ifdef QT_DEBUG
qDebug() << "QRuntimeGraphicsSystem::setGraphicsSystem( " << name << " )";
- qDebug() << " current approximated graphics system memory usage "<< memoryUsage() << " bytes";
#endif
delete m_graphicsSystem;
m_graphicsSystem = QGraphicsSystemFactory::create(name);
@@ -414,7 +374,6 @@ void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name)
Q_ASSERT(m_graphicsSystem);
- m_graphicsSystemChangeMemoryLimit = 0;
m_pendingGraphicsSystemName = QString();
for (int i = 0; i < m_pixmapDatas.size(); ++i) {
@@ -447,42 +406,12 @@ void QRuntimeGraphicsSystem::removePixmapData(QRuntimePixmapData *pixmapData) co
{
int index = m_pixmapDatas.lastIndexOf(pixmapData);
m_pixmapDatas.removeAt(index);
- decreaseMemoryUsage(pixmapData->memoryUsage(), true);
}
void QRuntimeGraphicsSystem::removeWindowSurface(QRuntimeWindowSurface *windowSurface) const
{
int index = m_windowSurfaces.lastIndexOf(windowSurface);
m_windowSurfaces.removeAt(index);
- decreaseMemoryUsage(windowSurface->memoryUsage(), true);
-}
-
-void QRuntimeGraphicsSystem::increaseMemoryUsage(uint amount) const
-{
- m_memoryUsage += amount;
-
- if (m_graphicsSystemChangeMemoryLimit &&
- m_memoryUsage < m_graphicsSystemChangeMemoryLimit) {
-
- QRuntimeGraphicsSystem *gs = const_cast<QRuntimeGraphicsSystem*>(this);
- QDeferredGraphicsSystemChange *deferredChange =
- new QDeferredGraphicsSystemChange(gs, m_pendingGraphicsSystemName);
- deferredChange->launch();
- }
-}
-
-void QRuntimeGraphicsSystem::decreaseMemoryUsage(uint amount, bool persistent) const
-{
- m_memoryUsage -= amount;
-
- if (persistent && m_graphicsSystemChangeMemoryLimit &&
- m_memoryUsage < m_graphicsSystemChangeMemoryLimit) {
-
- QRuntimeGraphicsSystem *gs = const_cast<QRuntimeGraphicsSystem*>(this);
- QDeferredGraphicsSystemChange *deferredChange =
- new QDeferredGraphicsSystemChange(gs, m_pendingGraphicsSystemName);
- deferredChange->launch();
- }
}
#include "qgraphicssystem_runtime.moc"
diff --git a/src/gui/painting/qgraphicssystem_runtime_p.h b/src/gui/painting/qgraphicssystem_runtime_p.h
index 7aab89c..d4c9152 100644
--- a/src/gui/painting/qgraphicssystem_runtime_p.h
+++ b/src/gui/painting/qgraphicssystem_runtime_p.h
@@ -104,8 +104,6 @@ public:
virtual QPixmapData *runtimeData() const;
- virtual uint memoryUsage() const;
-
private:
const QRuntimeGraphicsSystem *m_graphicsSystem;
@@ -131,8 +129,6 @@ public:
virtual QPoint offset(const QWidget *widget) const;
- virtual uint memoryUsage() const;
-
QWindowSurface *m_windowSurface;
QWindowSurface *m_pendingWindowSurface;
@@ -159,7 +155,6 @@ public:
void removePixmapData(QRuntimePixmapData *pixmapData) const;
void removeWindowSurface(QRuntimeWindowSurface *windowSurface) const;
- void setGraphicsSystem(const QString &name, uint memoryUsageLimit);
void setGraphicsSystem(const QString &name);
QString graphicsSystemName() const { return m_graphicsSystemName; }
@@ -170,22 +165,14 @@ public:
int windowSurfaceDestroyPolicy() const { return m_windowSurfaceDestroyPolicy; }
- uint memoryUsage() const { return m_memoryUsage; }
-
-private:
-
- void increaseMemoryUsage(uint amount) const;
- void decreaseMemoryUsage(uint amount, bool persistent = false) const;
private:
- mutable uint m_memoryUsage;
int m_windowSurfaceDestroyPolicy;
QGraphicsSystem *m_graphicsSystem;
mutable QList<QRuntimePixmapData *> m_pixmapDatas;
mutable QList<QRuntimeWindowSurface *> m_windowSurfaces;
QString m_graphicsSystemName;
- uint m_graphicsSystemChangeMemoryLimit;
QString m_pendingGraphicsSystemName;
friend class QRuntimePixmapData;
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 7844688..90c0878 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -12832,7 +12832,7 @@ EXPORTS
?readBackInfo@QRuntimePixmapData@@QAEXXZ @ 12831 NONAME ; void QRuntimePixmapData::readBackInfo(void)
??_EQRuntimePixmapData@@UAE@I@Z @ 12832 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(unsigned int)
?paintEngine@QRuntimePixmapData@@UBEPAVQPaintEngine@@XZ @ 12833 NONAME ; class QPaintEngine * QRuntimePixmapData::paintEngine(void) const
- ?memoryUsage@QRuntimePixmapData@@UBEIXZ @ 12834 NONAME ; unsigned int QRuntimePixmapData::memoryUsage(void) const
+ ?memoryUsage@QRuntimePixmapData@@UBEIXZ @ 12834 NONAME ABSENT ; unsigned int QRuntimePixmapData::memoryUsage(void) const
?toImage@QRasterPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12835 NONAME ; class QImage QRasterPixmapData::toImage(class QRect const &) const
?fromImageReader@QRasterPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12836 NONAME ; void QRasterPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
?fill@QRuntimePixmapData@@UAEXABVQColor@@@Z @ 12837 NONAME ; void QRuntimePixmapData::fill(class QColor const &)
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index a22b4d9..d8e86bf 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -12046,7 +12046,7 @@ EXPORTS
_ZN18QRuntimePixmapDataD1Ev @ 12045 NONAME
_ZN18QRuntimePixmapDataD2Ev @ 12046 NONAME
_ZN7QPixmap15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12047 NONAME
- _ZNK18QRuntimePixmapData11memoryUsageEv @ 12048 NONAME
+ _ZNK18QRuntimePixmapData11memoryUsageEv @ 12048 NONAME ABSENT
_ZNK18QRuntimePixmapData11paintEngineEv @ 12049 NONAME
_ZNK18QRuntimePixmapData11runtimeDataEv @ 12050 NONAME
_ZNK18QRuntimePixmapData11transformedERK10QTransformN2Qt18TransformationModeE @ 12051 NONAME
diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def
index 6b34a19..2442ee8 100644
--- a/src/s60installs/eabi/QtNetworku.def
+++ b/src/s60installs/eabi/QtNetworku.def
@@ -1131,7 +1131,7 @@ EXPORTS
_ZNK21QNetworkAccessManager13configurationEv @ 1130 NONAME
_ZNK21QNetworkAccessManager17networkAccessibleEv @ 1131 NONAME
_ZNK21QNetworkAccessManager19activeConfigurationEv @ 1132 NONAME
- _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME ABSENT
+ _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME
_ZNK21QNetworkConfiguration10identifierEv @ 1134 NONAME
_ZNK21QNetworkConfiguration18isRoamingAvailableEv @ 1135 NONAME
_ZNK21QNetworkConfiguration4nameEv @ 1136 NONAME
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml b/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml
new file mode 100644
index 0000000..07601c7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml
@@ -0,0 +1,33 @@
+import Qt 4.7
+
+Rectangle {
+ width: 200
+ height: 200
+
+ FocusScope {
+ focus: true
+ Rectangle {
+ objectName: "item1"
+ color: "blue"
+ onFocusChanged: focus ? color = "red" : color = "blue"
+ }
+ Rectangle {
+ objectName: "item2"
+ color: "blue"
+ onFocusChanged: focus ? color = "red" : color = "blue"
+ }
+ }
+
+ FocusScope {
+ Rectangle {
+ objectName: "item3"
+ color: "blue"
+ onFocusChanged: focus ? color = "red" : color = "blue"
+ }
+ Rectangle {
+ objectName: "item4"
+ color: "blue"
+ onFocusChanged: focus ? color = "red" : color = "blue"
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
index b0c9c03..b138f61 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
@@ -69,6 +69,7 @@ private slots:
void textEdit();
void forceFocus();
void noParentFocus();
+ void signalEmission();
};
/*
@@ -344,6 +345,61 @@ void tst_qdeclarativefocusscope::noParentFocus()
delete view;
}
+void tst_qdeclarativefocusscope::signalEmission()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/signalEmission.qml"));
+
+ QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
+ QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
+ QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
+ QDeclarativeRectangle *item4 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item4"));
+ QVERIFY(item1 != 0);
+ QVERIFY(item2 != 0);
+ QVERIFY(item3 != 0);
+ QVERIFY(item4 != 0);
+
+ view->show();
+ qApp->setActiveWindow(view);
+ qApp->processEvents();
+
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(view);
+#endif
+
+ QVariant blue(QColor("blue"));
+ QVariant red(QColor("red"));
+
+ QVERIFY(view->hasFocus());
+ QVERIFY(view->scene()->hasFocus());
+ item1->setFocus(true);
+ QCOMPARE(item1->property("color"), red);
+ QCOMPARE(item2->property("color"), blue);
+ QCOMPARE(item3->property("color"), blue);
+ QCOMPARE(item4->property("color"), blue);
+
+ item2->setFocus(true);
+ QCOMPARE(item1->property("color"), blue);
+ QCOMPARE(item2->property("color"), red);
+ QCOMPARE(item3->property("color"), blue);
+ QCOMPARE(item4->property("color"), blue);
+
+ item3->setFocus(true);
+ QCOMPARE(item1->property("color"), blue);
+ QCOMPARE(item2->property("color"), red);
+ QCOMPARE(item3->property("color"), red);
+ QCOMPARE(item4->property("color"), blue);
+
+ item4->setFocus(true);
+ QCOMPARE(item1->property("color"), blue);
+ QCOMPARE(item2->property("color"), red);
+ QCOMPARE(item3->property("color"), blue);
+ QCOMPARE(item4->property("color"), red);
+
+ delete view;
+}
+
QTEST_MAIN(tst_qdeclarativefocusscope)
#include "tst_qdeclarativefocusscope.moc"
diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro
index efb82d1..d794005 100644
--- a/tools/qml/qml.pro
+++ b/tools/qml/qml.pro
@@ -35,7 +35,7 @@ maemo5 {
symbian {
TARGET.UID3 = 0x20021317
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
- TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+ TARGET.EPOCHEAPSIZE = 0x20000 0x4000000
TARGET.CAPABILITY = NetworkServices ReadUserData
!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
LIBS += -lsensrvclient -lsensrvutil