From 5f11d2125b9cc37768fb8174870ced5934cdacf2 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 3 Feb 2010 21:42:07 +1000 Subject: Focus focusScope from focusing for focusOnPress Task-number: QTBUG-6739 --- src/declarative/graphicsitems/qmlgraphicstextedit.cpp | 11 ++++++++++- src/declarative/graphicsitems/qmlgraphicstextinput.cpp | 10 ++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/declarative/graphicsitems/qmlgraphicstextedit.cpp b/src/declarative/graphicsitems/qmlgraphicstextedit.cpp index 6e14d3a..c3495b3 100644 --- a/src/declarative/graphicsitems/qmlgraphicstextedit.cpp +++ b/src/declarative/graphicsitems/qmlgraphicstextedit.cpp @@ -784,8 +784,17 @@ Handles the given mouse \a event. void QmlGraphicsTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event) { Q_D(QmlGraphicsTextEdit); - if (d->focusOnPress) + if (d->focusOnPress){ + QGraphicsItem *p = parentItem();//###Is there a better way to find my focus scope? + while(p) { + if(p->flags() & QGraphicsItem::ItemIsFocusScope){ + p->setFocus(); + break; + } + p = p->parentItem(); + } setFocus(true); + } d->control->processEvent(event, QPointF(0, 0)); if (!event->isAccepted()) QmlGraphicsPaintedItem::mousePressEvent(event); diff --git a/src/declarative/graphicsitems/qmlgraphicstextinput.cpp b/src/declarative/graphicsitems/qmlgraphicstextinput.cpp index 6068e93..cfb93f6 100644 --- a/src/declarative/graphicsitems/qmlgraphicstextinput.cpp +++ b/src/declarative/graphicsitems/qmlgraphicstextinput.cpp @@ -647,9 +647,15 @@ void QmlGraphicsTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) { Q_D(QmlGraphicsTextInput); if(d->focusOnPress){ + QGraphicsItem *p = parentItem();//###Is there a better way to find my focus scope? + while(p) { + if(p->flags() & QGraphicsItem::ItemIsFocusScope){ + p->setFocus(); + break; + } + p = p->parentItem(); + } setFocus(true); - setCursorVisible(true); - d->focused = true; } d->control->processEvent(event); } -- cgit v0.12 From a7ab90d5dc7b7ad318360f951d0b3fbb39bfd25d Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 3 Feb 2010 14:35:55 +0100 Subject: doc: Converted the basic types page to use \qmlbasictype The changes to qdoc3 to support this will be in the 4.7 master branch. --- doc/src/declarative/basictypes.qdoc | 430 +++++++++++++++++++++--------------- 1 file changed, 257 insertions(+), 173 deletions(-) diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc index 0551443..de5a959 100644 --- a/doc/src/declarative/basictypes.qdoc +++ b/doc/src/declarative/basictypes.qdoc @@ -40,218 +40,302 @@ ****************************************************************************/ /*! - \page basicqmltypes.html - \title Common QML Types + \page qmlbasictypes.html + \title QML Basic Types - QML uses a range of property types, which you will see - referenced throughout the element documentation. Almost all of them are - exactly what you would expect. + QML uses a set of property types, which are primitive within QML. + These basic types are referenced throughout the documentation of the + QML elements. Almost all of them are exactly what you would expect. - \target basicqmlint - \section1 int + \annotatedlist qmlbasictypes +*/ + +/*! + \qmlbasictype int + \ingroup qmlbasictypes + + \brief An integer is a whole number, e.g. 0, 10, or -20. + + An integer is a whole number, e.g. 0, 10, or -20. The possible \c + int values range from around -2000000000 to around 2000000000, + although most elements will only accept a reduced range (which they + mention in their documentation). + + Example: + \qml + Item { width: 100; height: 200 } + \endqml +*/ + +/*! + \qmlbasictype bool + \ingroup qmlbasictypes + + \brief A boolean is a binary true/false value. + + A boolean is a binary true/false value. + + Example: + \qml + Item { focus: true; clip: false } + \endqml + +*/ + +/*! + \qmlbasictype real + \ingroup qmlbasictypes + + \brief A real number has a decimal point, e.g. 1.2 or -29.8. + + A real number has a decimal point, e.g. 1.2 or -29.8. + + Example: + \qml + Item { width: 100.45; height: 150.82 } + \endqml + + \note In QML all reals are stored in single precision, \l + {http://en.wikipedia.org/wiki/IEEE_754} {IEEE floating point} + format. + +*/ + +/*! + \qmlbasictype string + \ingroup qmlbasictypes + + \brief A string is a free form text in quotes, e.g. "Hello world!". + + A string is a free form text in quotes, e.g. "Hello world!". + + Example: + \qml + Text { text: "Hello world!" } + \endqml + +*/ + +/*! + \qmlbasictype url + \ingroup qmlbasictypes + + \brief A URL is a resource locator, like a file name. + + A URL is a resource locator, like a file name. It can be either + absolute, e.g. "http://qtsoftware.com", or relative, e.g. + "pics/logo.png". A relative URL is resolved relative to the URL of + the component where the URL is converted from a JavaScript string + expression to a url property value. + + Example: + \qml + Image { source: "pics/logo.png" } + \endqml + + \raw HTML + \endraw - An integer or \c int is a whole numbers like 0, 10 or -20. The possible \c int - values range from around -2000000000 to around 2000000000, although most - elements will only accept a reduced range (which they mention in their - documentation). +*/ + +/*! + \qmlbasictype color + \ingroup qmlbasictypes + + \brief A color is a standard color name in quotes. + + A color is a standard color name in quotes. It is normally specified + as an \l {http://www.w3.org/TR/SVG/types.html#ColorKeywords} {SVG + color name}. These names include colors like "red", "green" and + "lightsteelblue". - Example: - \qml - Item { width: 100; height: 200 } - \endqml + If the color you want isn't part of this list, colors can also be + specified in hexidecimal triplets or quads that take the form \c + "#RRGGBB" and \c "#AARRGGBB" respectively. For example, the color + red corresponds to a triplet of \c "#FF0000" and a slightly + transparent blue to a quad of \c "#800000FF". - \target basicqmlbool - \section1 bool + Example: + \qml + Rectangle { color: "steelblue" } + Rectangle { color: "#FF0000" } + Rectangle { color: "#800000FF" } + \endqml + +*/ + +/*! + \qmlbasictype point + \ingroup qmlbasictypes - A boolean or \c bool is a binary true/false value. + \brief A point is specified as "x,y". - Example: - \qml - Item { focus: true; clip: false } - \endqml + A point is specified as "x,y". - \target basicqmlreal - \section1 real + Example: + \qml + Widget { pos: "0,20" } + \endqml - A \c real is a number - either a whole number like an \c int, or a fractional number - like 1.2 or -29.8. +*/ - Example: - \qml - Item { width: 100.45; height: 150.82 } - \endqml +/*! + \qmlbasictype size + \ingroup qmlbasictypes - \note In QML all reals are stored in single precision, \l {http://en.wikipedia.org/wiki/IEEE_754}{IEEE floating point} format. + \brief A size is specified as "width x height". - \target basicqmlstring - \section1 string + A size is specified as "width x height". - A string is a free form text, like "Hello world!". + Example: + \qml + Widget { size: "150x50" } + \endqml - Example: - \qml - Text { text: "Hello world!" } - \endqml +*/ - \target basicqmlurl - \section1 url +/*! + \qmlbasictype rect + \ingroup qmlbasictypes - A URL is a resource locator, like a file name. It can be either absolute, like "http://qtsoftware.com", - or relative, like "pics/logo.png". A relative URL is resolved relative to the URL of the component where - the URL is converted from a JavaScript string expression to a url property value. + \brief A rect is specified as "x, y, width x height". - Example: - \qml - Image { source: "pics/logo.png" } - \endqml + A rect is specified as "x, y, width x height". - \raw HTML - \endraw + Example: + \qml + Widget { geometry: "50,50,100x100" } + \endqml - \target basicqmlcolor - \section1 color +*/ - A \c color is most commonly specified as an \l {http://www.w3.org/TR/SVG/types.html#ColorKeywords}{SVG color name}. These names include colors like - "red", "green" and "lightsteelblue". +/*! + \qmlbasictype date + \ingroup qmlbasictypes - If the color you want isn't part of this list, colors can also be specified - in hexidecimal triplets or quads that take the form \c "#RRGGBB" and - \c "#AARRGGBB" respectively. For example, the color red corresponds to a - triplet of \c "#FF0000" and a slightly transparent blue to a quad of - \c "#800000FF". + \brief A date is specified as "YYYY-MM-DD". - Example: - \qml - Rectangle { color: "steelblue" } - Rectangle { color: "#FF0000" } - Rectangle { color: "#800000FF" } - \endqml + A date is specified as "YYYY-MM-DD". - \target basicqmlpoint - \section1 point + Example: + \qml + DatePicker { minDate: "2000-01-01"; maxDate: "2020-12-31" } + \endqml - A \c point is specified in \c "x,y" format. - - Example: - \qml - Widget { pos: "0,20" } - \endqml +*/ - \target basicqmlsize - \section1 size +/*! + \qmlbasictype time + \ingroup qmlbasictypes - A \c size is specified in \c "widthxheight" format. + \brief A time is specified as "hh:mm:ss". - Example: - \qml - Widget { size: "150x50" } - \endqml + A time is specified as "hh:mm:ss". - \target basicqmlrectangle - \section1 rect + Example: + \qml + TimePicker { time: "14:22:15" } + \endqml - A \c rect is specified in \c "x,y,widthxheight" format. + */ - Example: - \qml - Widget { geometry: "50,50,100x100" } - \endqml +/*! + \qmlbasictype font + \ingroup qmlbasictypes - \target basicqmldate - \section1 date + \brief A font type has the properties of a QFont. - A \c date is specified in \c "YYYY-MM-DD" format. + A font type has the properties of a QFont. The properties are: - Example: - \qml - DatePicker { minDate: "2000-01-01"; maxDate: "2020-12-31" } - \endqml + \list + \o \c string font.family + \o \c bool font.bold + \o \c bool font.italic + \o \c bool font.underline + \o \c real font.pointSize + \o \c int font.pixelSize + \endlist - \target basicqmltime - \section1 time + Example: + \qml + Text { font.family: "Helvetica"; font.pointSize: 13; font.bold: true } + \endqml + +*/ + +/*! + \qmlbasictype action + \ingroup qmlbasictypes + + \brief The action type has all the properties of QAction. + + The action type has all the properties of QAction. The properties + are: + + \list + \o \c slot action.trigger - invoke the action + \o \c bool action.enabled - true if the action is enabled + \o \c string action.text - the text associated with the action + \endlist + + Actions are used like this: + + \qml + MouseRegion { onClicked: MyItem.myaction.trigger() } + State { name: "enabled"; when: MyItem.myaction.enabled == true } + Text { text: MyItem.someaction.text } + \endqml + +*/ + +/*! + \qmlbasictype list + \ingroup qmlbasictypes + + \brief A list of objects. + + A list of objects. While not technically a basic type, QML also + supports lists of object types. When used from QML, the engine + automatically appends each value to the list. + + For example, the \l Item class contains a list property named + children that can be used like this: + + \qml + Item { + children: [ + Item { id: child1 }, + Rectangle { id: child2 }, + Text { id: child3 } + ] + } + \endqml + \c Child1, \c Child2 and \c Child3 will all be added to the children list + in the order in which they appear. + +*/ + +/*! + \qmlbasictype vector3d + \ingroup qmlbasictypes - A \c time is specified in \c "hh:mm:ss" format. + \brief A vector3d is specified as "x,y,z". - Example: - \qml - TimePicker { time: "14:22:15" } - \endqml + A vector3d is specified as "x,y,z". - \target basicqmlfont - \section1 font + \qml + Rotation { angle: 60; axis: "0,1,0" } + \endqml - The \c font type has the following properties of a QFont: - \list - \o \c string font.family - \o \c bool font.bold - \o \c bool font.italic - \o \c bool font.underline - \o \c real font.pointSize - \o \c int font.pixelSize - \endlist - - Example: - \qml - Text { font.family: "Helvetica"; font.pointSize: 13; font.bold: true } - \endqml - - \target basicqmlaction - \section1 action - - The action type has all the properties of QAction, in particular: - \list - \o \c slot action.trigger - invoke the action - \o \c bool action.enabled - true if the action is enabled - \o \c string action.text - the text associated with the action - \endlist + or with the \c{Qt.vector3d()} helper function: - Actions are used like this: - - \qml - MouseRegion { onClicked: MyItem.myaction.trigger() } - State { name: "enabled"; when: MyItem.myaction.enabled == true } - Text { text: MyItem.someaction.text } - \endqml - - \target basicqmllist - \section1 list - - While not technically a basic type, QML also supports lists of object - types. When used from QML, the engine automatically appends each value to the - list. + \qml + Rotation { angle: 60; axis: Qt.vector3d(0, 1, 0) } + \endqml - For example, the \l Item class has a children list property - that can be used like this: - \qml - Item { - children: [ - Item { id: child1 }, - Rectangle { id: child2 }, - Text { id: child3 } - ] - } - \endqml - \c Child1, \c Child2 and \c Child3 will all be added to the children list - in the order in which they appear. - - \target basicqmlvector3d - \section1 vector3d + or as separate \c x, \c y, and \c z components: - A \c vector3d is specified in \c "x,y,z" format: - - \qml - Rotation { angle: 60; axis: "0,1,0" } - \endqml - - or with the \c{Qt.vector3d()} helper function: - - \qml - Rotation { angle: 60; axis: Qt.vector3d(0, 1, 0) } - \endqml - - or as separate \c x, \c y, and \c z components: - - \qml - Rotation { angle: 60; axis.x: 0; axis.y: 1; axis.z: 0 } - \endqml + \qml + Rotation { angle: 60; axis.x: 0; axis.y: 1; axis.z: 0 } + \endqml */ -- cgit v0.12 From ea3cc91feedc14f4f967768c3e337d69423856ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Wed, 3 Feb 2010 17:16:45 +0100 Subject: doc: There is no easeNone, it is called easeLinear Reviewed-by: dt --- src/declarative/util/qmlanimation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index 63044bc..74f5b3a 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -1762,7 +1762,7 @@ void QmlPropertyAnimation::setTo(const QVariant &t) \table \row - \o \c easeNone + \o \c easeLinear \o Easing curve for a linear (t) function: velocity is constant. \o \inlineimage qeasingcurve-linear.png \row -- cgit v0.12 From 37ca31b22426ac746641b9ff22d9df4ff71850c1 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 3 Feb 2010 23:06:14 +1000 Subject: Augment documentation Document automatic signal handlers and QmlViewer.Screen. --- doc/src/declarative/extending.qdoc | 11 +++++++++++ doc/src/declarative/qmlviewer.qdoc | 21 +++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc index 42b054f..3b9c7f3 100644 --- a/doc/src/declarative/extending.qdoc +++ b/doc/src/declarative/extending.qdoc @@ -825,6 +825,17 @@ Here are three examples of signal declarations: } \endcode +Adding a signal to an item automatically adds a signal handler to it. +The signal hander is named on, with the first letter of the +signal name being upper cased. The above example item would now have the +following signal handlers: + +\list + \o onClicked + \o onHovered + \o onPerformAction +\endlist + \section1 Adding new methods New methods can be added to an existing type. These new methods are available diff --git a/doc/src/declarative/qmlviewer.qdoc b/doc/src/declarative/qmlviewer.qdoc index df96535..6a107ce 100644 --- a/doc/src/declarative/qmlviewer.qdoc +++ b/doc/src/declarative/qmlviewer.qdoc @@ -75,4 +75,25 @@ \endcode Any QML can be used in the dummy data files. You could even animate the fictional data! + + \section1 Screen Orientation + + A special piece of dummy data which is integrated into the viewer is + a simple orientation property. The orientation can be set via the + settings menu in the application, or by pressing Ctrl+T to toggle it. + + To use this from within your QML file, import QmlViewer 1.0 and create a + Screen object. This object has a property, orientation, which can be either + Screen.Lanscape or Screen.Portrait and which can be bound to in your + application. An example is below: + +\code + import QmlViewer 1.0 as QmlViewer + + Item { + QmlViewer.Screen { id: qmlviewerScreen } + state: (qmlviewerScreen.orientation == QmlViewer.Screen.Landscape) ? 'landscape' : '' + } +\endcode + */ -- cgit v0.12 From 0a10f00d1ca93e30982b662e2d35841dab5d7bbb Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 4 Feb 2010 04:14:31 +1000 Subject: Document margins property --- src/declarative/graphicsitems/qmlgraphicsitem.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/declarative/graphicsitems/qmlgraphicsitem.cpp b/src/declarative/graphicsitems/qmlgraphicsitem.cpp index f26496e..b03f359 100644 --- a/src/declarative/graphicsitems/qmlgraphicsitem.cpp +++ b/src/declarative/graphicsitems/qmlgraphicsitem.cpp @@ -2161,6 +2161,7 @@ QmlGraphicsAnchorLine QmlGraphicsItem::baseline() const \qmlproperty Item Item::anchors.fill \qmlproperty Item Item::anchors.centerIn + \qmlproperty real Item::anchors.margins \qmlproperty real Item::anchors.topMargin \qmlproperty real Item::anchors.bottomMargin \qmlproperty real Item::anchors.leftMargin @@ -2173,6 +2174,7 @@ QmlGraphicsAnchorLine QmlGraphicsItem::baseline() const relationship with other items. Margins apply to top, bottom, left, right, and fill anchors. + The margins property can be used to set all of the various margins at once, to the same value. Offsets apply for horizontal center, vertical center, and baseline anchors. -- cgit v0.12