From e79cf93c8b724c8eac042e68ba8dee0b9f2feee3 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 7 Oct 2009 15:02:04 +1000 Subject: Remove redundant QFxItem::activeFocusChanged(); is not used anywhere, presumedly replaced by QFxItem::focusChanged(). --- doc/src/declarative/focus.qdoc | 6 +++--- doc/src/tutorials/declarative.qdoc | 2 +- examples/examples.pro | 1 - src/declarative/fx/qfxitem.cpp | 16 ---------------- src/declarative/fx/qfxitem.h | 2 -- src/declarative/fx/qfxtextedit.cpp | 2 +- 6 files changed, 5 insertions(+), 24 deletions(-) diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc index 028b5f0..dd5dcaf 100644 --- a/doc/src/declarative/focus.qdoc +++ b/doc/src/declarative/focus.qdoc @@ -35,12 +35,12 @@ Item { \section1 Querying the Active Focus Item Whether or not an \l Item has \e {active focus} can be queried through the -read-only property \c {Item::activeFocus}. For example, here we have a \l Text +read-only property \c {Item::focus}. For example, here we have a \l Text element whose text is determined by whether or not it has \e {active focus}. \code Text { - text: activeFocus ? "I have active focus!" : "I do not have active focus" + text: focus ? "I have active focus!" : "I do not have active focus" } \endcode @@ -167,7 +167,7 @@ Conceptually \e {focus scopes} are quite simple. \o Within each \e {focus scope} one element may have \c {Item::focus} set to true. If more than one \l Item has the \c {Item::focus} property set, the first is selected and the others are unset, just like when there are no \e {focus scopes}. \o When a \e {focus scope} receives \e {active focus}, the contained element with \c {Item::focus} set (if any) also gets \e {active focus}. If this element is also a \l FocusScope, the proxying behaviour continues. Both the -\e {focus scope} and the sub-focused item will have \c {Item::activeFocus} set. +\e {focus scope} and the sub-focused item will have \c {Item::focus} set. \endlist So far the example has the second component statically selected. It is trivial diff --git a/doc/src/tutorials/declarative.qdoc b/doc/src/tutorials/declarative.qdoc index 48beabd..bbc3d15 100644 --- a/doc/src/tutorials/declarative.qdoc +++ b/doc/src/tutorials/declarative.qdoc @@ -500,7 +500,7 @@ to receive focus \endlist - The read-only property activeFocus can be used to determine whether a + The read-only property focus can be used to determine whether a component will receive key input. Any un-handled keys will be passed to the components parent, which in turn will pass keys it doesn't handle up to its own ancestors. diff --git a/examples/examples.pro b/examples/examples.pro index 7acd67b..c53bc7d 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -46,7 +46,6 @@ contains(QT_CONFIG, multimedia) { contains(QT_CONFIG, script): SUBDIRS += script contains(QT_CONFIG, phonon):!static: SUBDIRS += phonon -contains(QT_CONFIG, webkit): SUBDIRS += webkit embedded:SUBDIRS += qws !wince*:!symbian: { !contains(QT_EDITION, Console):contains(QT_BUILD_PARTS, tools):SUBDIRS += designer diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp index 4d31aaa..6a9af1b 100644 --- a/src/declarative/fx/qfxitem.cpp +++ b/src/declarative/fx/qfxitem.cpp @@ -1257,12 +1257,6 @@ QFxKeysAttached *QFxKeysAttached::qmlAttachedProperties(QObject *obj) */ /*! - \fn void QFxItem::activeFocusChanged() - - This signal is emitted when this item gains active focus. -*/ - -/*! \fn void QFxItem::baselineOffsetChanged() This signal is emitted when the baseline offset of the item @@ -2260,16 +2254,6 @@ void QFxItem::setKeepMouseGrab(bool keep) } /*! - This function emits the \e activeFocusChanged signal. - \a flag is not used. - */ -void QFxItem::activeFocusChanged(bool flag) -{ - Q_UNUSED(flag); - emit activeFocusChanged(); -} - -/*! This function emits the \e focusChanged signal. Subclasses overriding this function should call up diff --git a/src/declarative/fx/qfxitem.h b/src/declarative/fx/qfxitem.h index 30c522f..674940d 100644 --- a/src/declarative/fx/qfxitem.h +++ b/src/declarative/fx/qfxitem.h @@ -166,7 +166,6 @@ Q_SIGNALS: void stateChanged(const QString &); void focusChanged(); void wantsFocusChanged(); - void activeFocusChanged(); void parentChanged(); protected: @@ -183,7 +182,6 @@ protected: virtual void classBegin(); virtual void componentComplete(); virtual void focusChanged(bool); - virtual void activeFocusChanged(bool); virtual void keyPressEvent(QKeyEvent *event); virtual void keyReleaseEvent(QKeyEvent *event); virtual void inputMethodEvent(QInputMethodEvent *); diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp index f4c2e4c..7eb25a8 100644 --- a/src/declarative/fx/qfxtextedit.cpp +++ b/src/declarative/fx/qfxtextedit.cpp @@ -822,7 +822,7 @@ void QFxTextEdit::keyReleaseEvent(QKeyEvent *event) \overload Handles changing of the focus property. Focus is applied to the control even if the edit does not have active focus. This is because things - like KeyProxy can give the behavior of focus even when activeFocus isn't + like KeyProxy can give the behavior of focus even when hasFocus() isn't true. */ void QFxTextEdit::focusChanged(bool hasFocus) -- cgit v0.12 From f149107f3281fd537c98aaac5cba5934d55aa78a Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 8 Oct 2009 15:08:40 +1000 Subject: Clean up --- examples/declarative/animation/animation.qml | 8 ++ examples/declarative/connections/connections.qml | 11 +- examples/declarative/dynamic/dynamic.js | 26 ++-- examples/declarative/dynamic/dynamic.qml | 66 +++++++++-- examples/declarative/effects/test.qml | 73 +++++++----- examples/declarative/layouts/Button.qml | 27 ++++- examples/declarative/layouts/layouts.qml | 19 +-- examples/declarative/layouts/positioners.qml | 145 ++++++++++++++++++----- 8 files changed, 277 insertions(+), 98 deletions(-) diff --git a/examples/declarative/animation/animation.qml b/examples/declarative/animation/animation.qml index ccfe164..31c75e1 100644 --- a/examples/declarative/animation/animation.qml +++ b/examples/declarative/animation/animation.qml @@ -4,17 +4,20 @@ Rectangle { width: 400 height: 200 color: "white" + Rectangle { width: 40 height: 40 y: 80 color: "#FF0000" radius: 10 + // Animate the x property. Setting repeat to true makes the // animation repeat indefinitely, otherwise it would only run once. x: SequentialAnimation { running: true repeat: true + // Move from 0 to 360 in 500ms, using the easeInOutQuad easing function NumberAnimation { from: 0 @@ -22,10 +25,12 @@ Rectangle { easing: "easeInOutQuad" duration: 500 } + // Then pause for 200ms PauseAnimation { duration: 200 } + // Then move back to 0 in 2 seconds, using the easeInOutElastic easing function NumberAnimation { from: 360 @@ -34,16 +39,19 @@ Rectangle { duration: 2000 } } + // Alternate color between red and green color: SequentialAnimation { running: true repeat: true + ColorAnimation { property: "color" from: "#FF0000" to: "#00FF00" duration: 5000 } + ColorAnimation { property: "color" from: "#00FF00" diff --git a/examples/declarative/connections/connections.qml b/examples/declarative/connections/connections.qml index 521cc01..b693b7e 100644 --- a/examples/declarative/connections/connections.qml +++ b/examples/declarative/connections/connections.qml @@ -5,6 +5,7 @@ Rectangle { color: "blue" width: 40 height: 30 + Rectangle { id: dot color: "red" @@ -13,19 +14,19 @@ Rectangle { x: rect.width/2 y: rect.height/2 } + MouseRegion { id: mr anchors.fill: rect } + Connection { sender: mr signal: "clicked(mouse)" script: { - - color="green"; - dot.x = mouse.x-1; - dot.y = mouse.y-1; - + color = "green"; + dot.x = mouse.x-1; + dot.y = mouse.y-1; } } } diff --git a/examples/declarative/dynamic/dynamic.js b/examples/declarative/dynamic/dynamic.js index 8f1e138..8bfdba3 100644 --- a/examples/declarative/dynamic/dynamic.js +++ b/examples/declarative/dynamic/dynamic.js @@ -2,54 +2,56 @@ var dynamicObject = null; var fourthBox = null; var component = null; var started = false; + function createQml(p) { - return createQmlObject('DynRect {}',p,'DynPart.qml'); + return createQmlObject('DynRect {}', p, 'DynPart.qml'); } function destroyDynamicObject() { - if(!(dynamicObject==null)){ + if (!(dynamicObject == null)) { dynamicObject.destroy(); dynamicObject = null; } } function instantCreateWithComponent() {//Like create, but assumes instant readyness - if(dynamicObject!=null)//Already made + if (dynamicObject != null)//Already made return null; component = createComponent("dynamic.qml"); dynamicObject = component.createObject(); - if(dynamicObject == null){ + + if (dynamicObject == null) { print("error creating component"); - }else{ + } else { dynamicObject.parent = targetItem; return dynamicObject; } return null; } -function finishCreation(){ - if(component.isReady && dynamicObject == null){ +function finishCreation() { + if (component.isReady && dynamicObject == null) { dynamicObject = component.createObject(); dynamicObject.parent = targetItem; - }else if(component.isError){ + } else if (component.isError) { dynamicObject = null; print("error creating component"); print(component.errorsString()); } } -function createWithComponent(){ - if(component!=null){ +function createWithComponent() { + if (component != null) { return finishCreation(); } - if(started!=false){ + if (started != false) { finishCreation();//Remakes if destroyed return dynamicObject; } started = true; component = createComponent("dynamic.qml"); finishCreation(); - if(dynamicObject != null){ + if (dynamicObject != null) { return dynamicObject; } component.statusChanged.connect(finishCreation); diff --git a/examples/declarative/dynamic/dynamic.qml b/examples/declarative/dynamic/dynamic.qml index 6ea7ab8..66fdf87 100644 --- a/examples/declarative/dynamic/dynamic.qml +++ b/examples/declarative/dynamic/dynamic.qml @@ -1,22 +1,55 @@ import Qt 4.6 -Rectangle { id: page; width: 800; height: 800; color:"black" +Rectangle { + id: page + width: 800 + height: 800 + color: "black" Script { source: "dynamic.js" } - property bool extendStars: false; + + property bool extendStars: false + Item { id: targetItem; x: 100; y: 100; } Item { id: targetItem2; x: 0; y: 300; } - Rectangle { width: 100; height: 100; color: "green"; id: rect - MouseRegion { anchors.fill:parent; onClicked: {a = createWithComponent();}} + + Rectangle { + id: rect + width: 100 + height: 100 + color: "green" + + MouseRegion { + anchors.fill: parent + onClicked: { a = createWithComponent(); } + } } - Rectangle { width: 100; height: 100; color: "red"; id: rect2; y:100; - MouseRegion { anchors.fill:parent; onClicked: {destroyDynamicObject();}} + + Rectangle { + id: rect2 + width: 100 + height: 100 + y: 100 + color: "red" + + MouseRegion { + anchors.fill:parent + onClicked: { destroyDynamicObject(); } + } } - Rectangle { width: 100; height: 100; color: "blue"; id: rect3; y:200; - MouseRegion { anchors.fill:parent; onClicked: - { - if(fourthBox == null) { + + Rectangle { + id: rect3 + width: 100 + height: 100 + y: 200 + color: "blue" + + MouseRegion { + anchors.fill: parent + onClicked: { + if (fourthBox == null) { a = createQml(targetItem2); - if(a!=null) { + if (a != null) { a.parent = targetItem2;//BUG: this should happen automatically fourthBox = a; print(a.toStr()); @@ -31,5 +64,14 @@ Rectangle { id: page; width: 800; height: 800; color:"black" } } } - Particles { x:0; y:0; count:20; lifeSpan:500; width:100; height: if(extendStars){400;}else{300;} source:"star.png"} + + Particles { + x: 0 + y: 0 + count: 20 + lifeSpan: 500 + width: 100 + height: if (extendStars) { 400; } else { 300; } + source: "star.png" + } } diff --git a/examples/declarative/effects/test.qml b/examples/declarative/effects/test.qml index 83bfde2..73c6839 100644 --- a/examples/declarative/effects/test.qml +++ b/examples/declarative/effects/test.qml @@ -2,89 +2,108 @@ import Qt 4.6 Rectangle { color: "white" - width: 800 + width: 600 height: 600 Image { + id: blur source: "pic.jpg" effect: Blur { - blurRadius: NumberAnimation { id: blur; from: 0; to: 10; duration: 200; repeat: true } + blurRadius: NumberAnimation { + id: blurEffect + from: 0; to: 10 + duration: 200 + repeat: true + } } - MouseRegion { anchors.fill: parent; onClicked: blur.running = !blur.running } - - Text { color: "white"; text: "Blur" } + MouseRegion { anchors.fill: parent; onClicked: blurEffect.running = !blurEffect.running } } + Text { text: "Blur"; anchors.top: blur.bottom; anchors.horizontalCenter: blur.horizontalCenter } + Image { + id: grayscale source: "pic.jpg" - x: 200 - effect: Grayscale {} - Text { color: "white"; text: "Grayscale" } + effect: Grayscale {} } + Text { text: "Grayscale"; anchors.top: grayscale.bottom; anchors.horizontalCenter: grayscale.horizontalCenter } + Image { + id: colorize source: "pic.jpg" - x: 400 - effect: Colorize { color: "blue" } - Text { color: "white"; text: "Colorize" } + effect: Colorize { color: "blue" } } + Text { text: "Colorize"; anchors.top: colorize.bottom; anchors.horizontalCenter: colorize.horizontalCenter } + Image { + id: pixelize source: "pic.jpg" - y: 300 + effect: Pixelize { - pixelSize: NumberAnimation { id: pixelize; from: 0; to: 10; duration: 200; repeat: true } + pixelSize: NumberAnimation { + id: pixelizeEffect + from: 0; to: 10 + duration: 200 + repeat: true + } } - MouseRegion { anchors.fill: parent; onClicked: pixelize.running = !pixelize.running } - - Text { color: "white"; text: "Pixelize" } + MouseRegion { anchors.fill: parent; onClicked: pixelizeEffect.running = !pixelizeEffect.running } } + Text { text: "Pixelize"; anchors.top: pixelize.bottom; anchors.horizontalCenter: pixelize.horizontalCenter } Image { + id: dropShadow source: "pic.jpg" - x: 200 y: 300 + effect: DropShadow { blurRadius: 3 offset.x: 3 - offset.y: NumberAnimation { id: dropShadow; from: 0; to: 10; duration: 200; repeat: true; } + offset.y: NumberAnimation { id: dropShadowEffect; from: 0; to: 10; duration: 200; repeat: true; } } - MouseRegion { anchors.fill: parent; onClicked: dropShadow.running = !dropShadow.running } - - Text { color: "white"; text: "DropShadow" } + MouseRegion { anchors.fill: parent; onClicked: dropShadowEffect.running = !dropShadowEffect.running } } + Text { text: "Drop Shadow"; anchors.top: dropShadow.bottom; anchors.horizontalCenter: dropShadow.horizontalCenter } Image { + id: bloom source: "pic.jpg" - x: 400 y: 300 + effect: Bloom { blurRadius: 3 brightness: 128 - strength: NumberAnimation { id: bloom; from: 0; to: 1; duration: 200; repeat: true; } + strength: NumberAnimation { + id: bloomEffect + from: 0; to: 1 + duration: 200 + repeat: true + } } - MouseRegion { anchors.fill: parent; onClicked: bloom.running = !bloom.running } - - Text { color: "white"; text: "Bloom" } + MouseRegion { anchors.fill: parent; onClicked: bloomEffect.running = !bloomEffect.running } } + Text { text: "Bloom"; anchors.top: bloom.bottom; anchors.horizontalCenter: bloom.horizontalCenter } + Text { x: 100; y: 250 - text: "Clicking Blur, Pixelize or DropShadow will \ntoggle animation." + text: "Clicking Blur, Pixelize, Drop Shadow or Bloom will \ntoggle animation." color: "black" } diff --git a/examples/declarative/layouts/Button.qml b/examples/declarative/layouts/Button.qml index 6c2fd8d..186512b 100644 --- a/examples/declarative/layouts/Button.qml +++ b/examples/declarative/layouts/Button.qml @@ -1,20 +1,35 @@ import Qt 4.6 -Rectangle { border.color: "black"; color: "steelblue"; radius: 5; width: pix.width + text.width + 13; height: pix.height + 10; id: page +Rectangle { + id: page + border.color: "black" + color: "steelblue" + radius: 5 + width: pix.width + text.width + 13 + height: pix.height + 10 + property string text property string icon signal clicked + Image { id: pix; x: 5; y:5; source: parent.icon} + Text { id: text; text: page.text; color: "white"; x:pix.width+pix.x+3; anchors.verticalCenter: pix.verticalCenter;} - MouseRegion{ id:mr; anchors.fill: parent; onClicked: {parent.focus = true; page.clicked()}} + + MouseRegion { + id: mr + anchors.fill: parent + onClicked: { parent.focus = true; page.clicked() } + } states: - State{ name:"pressed"; when:mr.pressed - PropertyChanges {target:text; x: 5} - PropertyChanges {target:pix; x:text.x+text.width + 3} + State { + name: "pressed"; when: mr.pressed + PropertyChanges { target:text; x: 5 } + PropertyChanges { target:pix; x:text.x+text.width + 3 } } transitions: Transition{ - NumberAnimation{ properties:"x,left"; easing:"easeInOutQuad"; duration:200 } + NumberAnimation { properties:"x,left"; easing:"easeInOutQuad"; duration:200 } } } diff --git a/examples/declarative/layouts/layouts.qml b/examples/declarative/layouts/layouts.qml index b54a7f3..accd969 100644 --- a/examples/declarative/layouts/layouts.qml +++ b/examples/declarative/layouts/layouts.qml @@ -1,20 +1,25 @@ import Qt 4.6 -Item { id: resizable - width:400; height:400; - GraphicsObjectContainer{ +Item { + id: resizable + width:400 + height:400 + + GraphicsObjectContainer { anchors.fill:parent - QGraphicsWidget{ + + QGraphicsWidget { size.width:parent.width size.height:parent.height - layout: QGraphicsLinearLayout{ - LayoutItem{ + + layout: QGraphicsLinearLayout { + LayoutItem { minimumSize: "100x100" maximumSize: "300x300" preferredSize: "100x100" Rectangle { color: "yellow"; anchors.fill: parent } } - LayoutItem{ + LayoutItem { minimumSize: "100x100" maximumSize: "400x400" preferredSize: "200x200" diff --git a/examples/declarative/layouts/positioners.qml b/examples/declarative/layouts/positioners.qml index fe28105..90efde2 100644 --- a/examples/declarative/layouts/positioners.qml +++ b/examples/declarative/layouts/positioners.qml @@ -1,43 +1,130 @@ import Qt 4.6 -Rectangle { width: 420; height: 420; id:page; color:"white" - Column { id: layout1; y:0; //width: 100; height:250; - move: Transition{ NumberAnimation {properties: "y"; easing: "easeOutBounce" }} - add: Transition{ NumberAnimation { properties: "y"; from: 500; duration:500; easing: "easeOutQuad"}} - remove: Transition { NumberAnimation { properties:"y"; to: 500; duration:500; easing: "easeInQuad"}} - Rectangle { color: "red"; width: 100; height: 50; border.color: "black"; radius: 15 } - Rectangle { id: blueV1; color: "lightsteelblue"; width: 100; height: 50; border.color: "black"; radius: 15 - //opacity: Behavior{ NumberAnimation {}} + +Rectangle { + id: page + width: 420 + height: 420 + color: "white" + + Column { + id: layout1 + y: 0 + move: Transition { + NumberAnimation { + properties: "y"; easing: "easeOutBounce" + } } - Rectangle { color: "green"; width: 100; height: 50; border.color: "black"; radius: 15 } - Rectangle { id: blueV2; color: "lightsteelblue"; width: 100; height: 50; border.color: "black"; radius: 15 - //opacity: Behavior{ NumberAnimation {}} + add: Transition { + NumberAnimation { + properties: "y"; from: 500; duration:500; easing: "easeOutQuad" + } } + remove: Transition { + NumberAnimation { + properties:"y"; to: 500; duration:500; easing: "easeInQuad" + } + } + Rectangle { color: "red"; width: 100; height: 50; border.color: "black"; radius: 15 } + Rectangle { id: blueV1; color: "lightsteelblue"; width: 100; height: 50; border.color: "black"; radius: 15 } + Rectangle { color: "green"; width: 100; height: 50; border.color: "black"; radius: 15 } + Rectangle { id: blueV2; color: "lightsteelblue"; width: 100; height: 50; border.color: "black"; radius: 15 } Rectangle { color: "orange"; width: 100; height: 50; border.color: "black"; radius: 15 } } - Row { id: layout2; y:300; - move: Transition{ NumberAnimation {properties: "x"; easing: "easeOutBounce" }} - add: Transition{ NumberAnimation { properties: "x"; from: 500; duration:500; easing: "easeOutQuad"} - NumberAnimation { properties: "opacity"; from: 0; duration: 500;}} - remove: Transition { NumberAnimation { properties: "x"; to: 500; duration:500; easing: "easeInQuad"} - NumberAnimation { properties: "opacity"; from: 1; duration: 500}} + + Row { + id: layout2 + y: 300 + move: Transition { + NumberAnimation { + properties: "x"; easing: "easeOutBounce" + } + } + add: Transition { + NumberAnimation { + properties: "x"; from: 500; duration:500; easing: "easeOutQuad" + } + NumberAnimation { + properties: "opacity"; from: 0; duration: 500; + } + } + remove: Transition { + NumberAnimation { + properties: "x"; to: 500; duration:500; easing: "easeInQuad" + } + NumberAnimation { + properties: "opacity"; from: 1; duration: 500 + } + } Rectangle { color: "red"; width: 50; height: 100; border.color: "black"; radius: 15 } Rectangle { id: blueH1; color: "lightsteelblue"; width: 50; height: 100; border.color: "black"; radius: 15 } Rectangle { color: "green"; width: 50; height: 100; border.color: "black"; radius: 15 } Rectangle { id: blueH2; color: "lightsteelblue"; width: 50; height: 100; border.color: "black"; radius: 15 } Rectangle { color: "orange"; width: 50; height: 100; border.color: "black"; radius: 15 } } - Button { text: "Remove"; icon: "del.png"; x: 135; y:90; - onClicked: {blueH2.opacity=0; blueH1.opacity=0; blueV1.opacity=0; blueV2.opacity=0; blueG1.opacity=0; blueG2.opacity=0; blueG3.opacity=0;} - } - Button { text: "Add"; icon: "add.png"; x: 145; y:140; - onClicked: {blueH2.opacity=1; blueH1.opacity=1; blueV1.opacity=1; blueV2.opacity=1; blueG1.opacity=1; blueG2.opacity=1; blueG3.opacity=1;} - } - Grid { x:260; y:0; columns:3 - remove: Transition { NumberAnimation{ properties: "opacity"; from: 1; to: 0; duration: 500} - NumberAnimation{properties: "x,y"; easing: "easeOutBounce"} } - move: Transition { NumberAnimation{ properties: "x,y"; easing: "easeOutBounce" }} - add: Transition { NumberAnimation{ properties: "opacity"; from: 0; to: 1; duration: 500} - NumberAnimation{properties: "x,y"; easing: "easeOutBounce"} } + + Button { + text: "Remove" + icon: "del.png" + x: 135 + y: 90 + + onClicked: { + blueH2.opacity = 0 + blueH1.opacity = 0 + blueV1.opacity = 0 + blueV2.opacity = 0 + blueG1.opacity = 0 + blueG2.opacity = 0 + blueG3.opacity = 0 + } + } + + Button { + text: "Add" + icon: "add.png" + x: 145 + y: 140 + + onClicked: { + blueH2.opacity = 1 + blueH1.opacity = 1 + blueV1.opacity = 1 + blueV2.opacity = 1 + blueG1.opacity = 1 + blueG2.opacity = 1 + blueG3.opacity = 1 + } + } + + Grid { + x: 260 + y: 0 + columns: 3 + + remove: Transition { + NumberAnimation { + properties: "opacity"; from: 1; to: 0; duration: 500 + } + NumberAnimation { + properties: "x,y"; easing: "easeOutBounce" + } + } + + move: Transition { + NumberAnimation { + properties: "x,y"; easing: "easeOutBounce" + } + } + + add: Transition { + NumberAnimation { + properties: "opacity"; from: 0; to: 1; duration: 500 + } + NumberAnimation { + properties: "x,y"; easing: "easeOutBounce" + } + } + Rectangle { color: "red"; width: 50; height: 100; border.color: "black"; radius: 15 } Rectangle { id: blueG1; color: "lightsteelblue"; width: 50; height: 100; border.color: "black"; radius: 15 } Rectangle { color: "green"; width: 50; height: 100; border.color: "black"; radius: 15 } -- cgit v0.12 From e795864872095d2179a3639403343ade3daf61c7 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 8 Oct 2009 15:09:39 +1000 Subject: Add command line options. --- tools/qmldebugger/main.cpp | 49 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/tools/qmldebugger/main.cpp b/tools/qmldebugger/main.cpp index 7fabfb7..ccd3761 100644 --- a/tools/qmldebugger/main.cpp +++ b/tools/qmldebugger/main.cpp @@ -23,9 +23,15 @@ Q_OBJECT public: Shell(QWidget * = 0); -private slots: + void setHost(const QString &host); + void setPort(quint16 port); + void showEngineTab(); + +public slots: void connectToHost(); void disconnectFromHost(); + +private slots: void connectionStateChanged(); private: @@ -38,6 +44,7 @@ private: QPushButton *m_disconnectButton; EnginePane *m_enginePane; + QTabWidget *m_tabs; }; Shell::Shell(QWidget *parent) @@ -71,19 +78,34 @@ Shell::Shell(QWidget *parent) m_disconnectButton->setEnabled(false); connectLayout->addWidget(m_disconnectButton); - QTabWidget *tabs = new QTabWidget(this); - layout->addWidget(tabs); + m_tabs = new QTabWidget(this); + layout->addWidget(m_tabs); CanvasFrameRate *cfr = new CanvasFrameRate(&client, this); - tabs->addTab(cfr, tr("Frame Rate")); + m_tabs->addTab(cfr, tr("Frame Rate")); m_enginePane = new EnginePane(&client, this); - tabs->addTab(m_enginePane, tr("QML Engine")); + m_tabs->addTab(m_enginePane, tr("QML Engine")); QObject::connect(&client, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(connectionStateChanged())); connectionStateChanged(); } +void Shell::setHost(const QString &host) +{ + m_host->setText(host); +} + +void Shell::setPort(quint16 port) +{ + m_port->setValue(port); +} + +void Shell::showEngineTab() +{ + m_tabs->setCurrentWidget(m_enginePane); +} + void Shell::connectionStateChanged() { switch (client.state()) { @@ -132,9 +154,24 @@ int main(int argc, char ** argv) { QApplication app(argc, argv); + QStringList args = app.arguments(); + Shell shell; - shell.show(); + if (args.contains("--engine")) + shell.showEngineTab(); + + if (args.count() > 1 && args.at(1).contains(':')) { + QStringList hostAndPort = args.at(1).split(':'); + bool ok = false; + quint16 port = hostAndPort[1].toInt(&ok); + if (ok) { + shell.setHost(hostAndPort[0]); + shell.setPort(port); + shell.connectToHost(); + } + } + shell.show(); return app.exec(); } -- cgit v0.12 From 05e4f1eaeb3f916bcf845ae0d7e85d283e9ca1bd Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 8 Oct 2009 16:09:16 +1000 Subject: Remove redundant support/ files. --- examples/declarative/support/contact.cpp | 81 ------------- examples/declarative/support/contact.h | 140 ----------------------- examples/declarative/support/contactmodel.cpp | 158 -------------------------- examples/declarative/support/contactmodel.h | 55 --------- examples/declarative/support/support.pro | 12 -- 5 files changed, 446 deletions(-) delete mode 100644 examples/declarative/support/contact.cpp delete mode 100644 examples/declarative/support/contact.h delete mode 100644 examples/declarative/support/contactmodel.cpp delete mode 100644 examples/declarative/support/contactmodel.h delete mode 100644 examples/declarative/support/support.pro diff --git a/examples/declarative/support/contact.cpp b/examples/declarative/support/contact.cpp deleted file mode 100644 index 9ffeb97..0000000 --- a/examples/declarative/support/contact.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. -** -** This file is part of the $MODULE$ of the Qt Toolkit. -** -** $TROLLTECH_DUAL_LICENSE$ -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#include "contact.h" - -QML_DEFINE_TYPE(0,0,0,0,Contact,Contact); -Contact::Contact() : QObject(0) -{ - m_firstName = "John"; - m_lastName = "Smith"; - m_portraitFile = "contact.png"; - m_company = "Trollkia"; - m_emails << "smith@trollkia.com" << "john45@gmail.com"; - - m_numbers << new PhoneNumber; - m_numbers << new PhoneNumber; - m_numbers << new PhoneNumber; - - m_numbers.at(0)->setType(PhoneNumber::HomePhone); - m_numbers.at(0)->setNumber("35412451"); - - m_numbers.at(1)->setType(PhoneNumber::BusinessPhone); - m_numbers.at(1)->setNumber("33424994"); - - m_numbers.at(2)->setType(PhoneNumber::MobilePhone); - m_numbers.at(2)->setNumber("0424655137"); - - m_addresses << new Address; - m_addresses << new Address; - m_addresses << new Address; - m_addresses.at(0)->setNumber(13); - m_addresses.at(0)->setStreet("Blackhill Cr"); - m_addresses.at(0)->setCountry("Australia"); - m_addresses.at(1)->setNumber(116); - m_addresses.at(1)->setStreet("Sandankerveien"); - m_addresses.at(1)->setCountry("Norway"); - m_addresses.at(2)->setNumber(92); - m_addresses.at(2)->setStreet("Elizibeth St"); - m_addresses.at(2)->setCountry("Australia"); -} - -void Contact::addNumber(PhoneNumber *newNumber) -{ - m_numbers << newNumber; - emit numbersChanged(); -} - -void Contact::addAddress(Address *newAddress) -{ - m_addresses << newAddress; - emit addressesChanged(); -} - -void Contact::addEmail(QString &newEmail) -{ - - m_emails << newEmail; - emit emailsChanged(); -} - -QML_DEFINE_TYPE(0,0,0,0,Address,Address); -Address::Address() -: _number(0) -{ -} - -QML_DEFINE_TYPE(0,0,0,0,PhoneNumber, PhoneNumber); -PhoneNumber::PhoneNumber() -: _type(HomePhone) -{ -} diff --git a/examples/declarative/support/contact.h b/examples/declarative/support/contact.h deleted file mode 100644 index 7b25869..0000000 --- a/examples/declarative/support/contact.h +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. -** -** This file is part of the $MODULE$ of the Qt Toolkit. -** -** $TROLLTECH_DUAL_LICENSE$ -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#ifndef CONTACT_H -#define CONTACT_H - -#include -#include - -class Address : public QObject -{ - Q_OBJECT -public: - Address(); - - Q_PROPERTY(int number READ number WRITE setNumber NOTIFY changed); - Q_PROPERTY(QString street READ street WRITE setStreet NOTIFY changed); - Q_PROPERTY(QString country READ country WRITE setCountry NOTIFY changed); - - int number() const { return _number; } - void setNumber(int n) { _number = n; emit changed(); } - - QString street() const { return _street; } - void setStreet(const QString &s) { _street = s; emit changed(); } - - QString country() const { return _country; } - void setCountry(const QString &c) { _country = c; emit changed(); } - -signals: - void changed(); - -private: - int _number; - QString _street; - QString _country; -}; -QML_DECLARE_TYPE(Address); - -class PhoneNumber : public QObject -{ - Q_OBJECT - Q_ENUMS(PhoneType) -public: - PhoneNumber(); - - enum PhoneType { - HomePhone, - BusinessPhone, - MobilePhone - }; - - Q_PROPERTY(QString number READ number WRITE setNumber NOTIFY changed); - Q_PROPERTY(PhoneType type READ type WRITE setType NOTIFY changed); - - QString number() const { return _number; } - void setNumber(QString n) { _number = n; emit changed(); } - - PhoneType type() const { return _type; } - void setType(PhoneType type) { _type = type; emit changed(); } - -signals: - void changed(); - -private: - QString _number; - PhoneType _type; -}; -QML_DECLARE_TYPE(PhoneNumber); - -class Contact : public QObject -{ - Q_OBJECT -public: - Contact(); - - Q_PROPERTY(QString firstName READ firstName WRITE setFirstName NOTIFY nameChanged); - QString firstName() const { return m_firstName; } - - Q_PROPERTY(QString lastName READ lastName WRITE setLastName NOTIFY nameChanged); - QString lastName() const { return m_lastName; } - - Q_PROPERTY(QString portraitFile READ portraitFile WRITE setPortraitFile NOTIFY portraitChanged); - QString portraitFile() const { return m_portraitFile; } - - Q_PROPERTY(QString company READ company WRITE setCompany NOTIFY companyChanged); - QString company() const { return m_company; } - - Q_PROPERTY(QStringList emails READ emails WRITE setEmails NOTIFY emailsChanged); - QStringList emails() const { return m_emails; } - - Q_PROPERTY(QList
* addresses READ addresses); - QList
* addresses() { return &m_addresses; } - - Q_PROPERTY(QList* numbers READ numbers); - QList* numbers() { return &m_numbers; } - - - void addEmail(QString&); - void addAddress(Address*); - void addNumber(PhoneNumber*); - -public slots: - void setFirstName(const QString &name) { m_firstName = name; emit nameChanged(); } - void setLastName(const QString &name) { m_lastName = name; emit nameChanged(); } - void setPortraitFile(const QString &portraitFile) { m_portraitFile = portraitFile; emit portraitChanged(); } - void setCompany(const QString &company) { m_company = company; emit companyChanged(); } - void setEmails(const QStringList &emails) { m_emails = emails; emit emailsChanged(); } - -signals: - void nameChanged(); - void portraitChanged(); - void companyChanged(); - void emailsChanged(); - void numbersChanged(); - void addressesChanged(); - -private: - QString m_firstName; - QString m_lastName; - QString m_portraitFile; - - QString m_company; - - QList
m_addresses; - QListm_numbers; - QStringList m_emails; -}; -QML_DECLARE_TYPE(Contact); - -#endif diff --git a/examples/declarative/support/contactmodel.cpp b/examples/declarative/support/contactmodel.cpp deleted file mode 100644 index ff71b9c..0000000 --- a/examples/declarative/support/contactmodel.cpp +++ /dev/null @@ -1,158 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. -** -** This file is part of the $MODULE$ of the Qt Toolkit. -** -** $TROLLTECH_DUAL_LICENSE$ -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#include "contactmodel.h" - -ContactModel::ContactModel(QObject *parent) : QListModelInterface(parent) -{ - QFile f("../contacts/contacts.txt"); - f.open(QIODevice::ReadOnly); - QTextStream ts(&f); - QString text = ts.readLine(); - while(!text.isEmpty()) { - Contact *c = new Contact; - QStringList list = text.split(" "); - c->setFirstName(list[0]); - c->setLastName(list[1]); - for (int i = 2; i < list.count(); ++i) - c->addEmail(list[i]); - //contactList.append(c); - insertContact(c); - - text = ts.readLine(); - } - f.close(); -} - -ContactModel::~ContactModel() -{ - while (!contactList.isEmpty()) { - Contact *c = contactList.takeFirst(); - delete c; - } -} - -int ContactModel::count() const -{ - return contactList.count(); -} - -QHash ContactModel::data(int index, const QList &roles) const -{ - QHash returnHash; - - for (int i = 0; i < roles.size(); ++i) { - int role = roles.at(i); - QVariant info; - switch(role) { - case PortraitRole: - info = "contact.png"; - break; - case FirstNameRole: - info = contactList.at(index)->firstName(); - break; - case LastNameRole: - info = contactList.at(index)->lastName(); - break; - case CompanyRole: - info = contactList.at(index)->company(); - break; - case EmailsRole: - info = contactList.at(index)->emails(); - break; - case AddressesRole: - //returns QVariant BOOL - info = QVariant::fromValue(contactList.at(index)->addresses()); - break; - case NumbersRole: - info = QVariant::fromValue(contactList.at(index)->numbers()); - break; - default: - break; - } - returnHash.insert(role, info); - } - - return returnHash; -} - -QString ContactModel::toString(int role) const -{ - switch(role) { - case PortraitRole: - return "portrait"; - case FirstNameRole: - return "firstName"; - case LastNameRole: - return "lastName"; - case CompanyRole: - return "company"; - case EmailsRole: - return "emails"; - case AddressesRole: - return "addresses"; - case NumbersRole: - return "numbers"; - default: - return ""; - } -} - -QList ContactModel::roles() const -{ - return QList() << PortraitRole << FirstNameRole << LastNameRole << CompanyRole << EmailsRole << AddressesRole << NumbersRole; -} - -void ContactModel::deleteContact(int index) -{ - delete contactList.takeAt(index); - emit itemsRemoved(index, 1); -} - -int ContactModel::insertContact(Contact *contact) -{ - int index = 0; - QString fullName = contact->lastName(); - index = findIndex(fullName); - contactList.insert(index, contact); - emit itemsInserted(index, 1); - return index; -} - - -//search - binary search algorithm lastname only - -int ContactModel::findIndex(QString &searchName) const -{ - int start = 0; - int end = contactList.size()-1; - int middle = 0; - QString middleString; - - while (start <= end) - { - middle = (start+end)/2; - middleString = contactList.at(middle)->lastName(); - if (isAfter(searchName, middleString) < 0) start = middle+1; - else if( isAfter(middleString, searchName) < 0) end = middle-1; - else return middle; - } - return start; -} - -int ContactModel::isAfter(QString &name1, QString &name2) const -{ - //if c1 is after c2 alphabetically, return positive - int compString = QString::compare(name1, name2, Qt::CaseInsensitive); - return -compString; -} diff --git a/examples/declarative/support/contactmodel.h b/examples/declarative/support/contactmodel.h deleted file mode 100644 index e262358..0000000 --- a/examples/declarative/support/contactmodel.h +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. -** -** This file is part of the $MODULE$ of the Qt Toolkit. -** -** $TROLLTECH_DUAL_LICENSE$ -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#ifndef _CONTACTMODEL_H_ -#define _CONTACTMODEL_H_ - -#include -#include "contact.h" - -class ContactModel : public QListModelInterface -{ - Q_OBJECT -public: - ContactModel(QObject *parent = 0); - ~ContactModel(); - - enum Roles { - PortraitRole, - FirstNameRole, - LastNameRole, - CompanyRole, - EmailsRole, - AddressesRole, - NumbersRole - }; - - int count() const; - - QHash data(int index, const QList &roles) const; - QList roles() const; - - - QString toString(int role) const; - - void deleteContact(int index); - int insertContact(Contact *contact); - - int isAfter(QString &name1, QString &name2) const; - int findIndex(QString &searchName) const; - -private: - QList contactList; -}; - -#endif diff --git a/examples/declarative/support/support.pro b/examples/declarative/support/support.pro deleted file mode 100644 index 1da1a28..0000000 --- a/examples/declarative/support/support.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = lib -TARGET = QtFxSupport -DEPENDPATH += . -INCLUDEPATH += . -MOC_DIR = .moc -OBJECTS_DIR = .obj -DESTDIR = ../../lib -QT += script declarative - -HEADERS += contact.h contactmodel.h -SOURCES += contact.cpp contactmodel.cpp - -- cgit v0.12 From 8e56f62a7155ec8f8e8af07100675fd6185bf481 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 9 Oct 2009 11:25:28 +1000 Subject: Remove some warnings. --- src/declarative/qml/qmlxmlhttprequest.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/declarative/qml/qmlxmlhttprequest.cpp b/src/declarative/qml/qmlxmlhttprequest.cpp index 65c5b16..0bc927c 100644 --- a/src/declarative/qml/qmlxmlhttprequest.cpp +++ b/src/declarative/qml/qmlxmlhttprequest.cpp @@ -1190,7 +1190,7 @@ static QScriptValue qmlxmlhttprequest_open(QScriptContext *context, QScriptEngin if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object")); if (context->argumentCount() < 2 || context->argumentCount() > 5) - return context->throwError(QScriptContext::SyntaxError, "Incorrect argument count"); + return context->throwError(QScriptContext::SyntaxError, QLatin1String("Incorrect argument count")); // Argument 0 - Method QString method = context->argument(0).toString().toUpper(); @@ -1198,7 +1198,7 @@ static QScriptValue qmlxmlhttprequest_open(QScriptContext *context, QScriptEngin method != QLatin1String("PUT") && method != QLatin1String("HEAD") && method != QLatin1String("POST")) - return context->throwError(QScriptContext::SyntaxError, "Unsupported method"); + return context->throwError(QScriptContext::SyntaxError, QLatin1String("Unsupported method")); // Argument 1 - URL @@ -1209,12 +1209,12 @@ static QScriptValue qmlxmlhttprequest_open(QScriptContext *context, QScriptEngin if (ctxt) url = ctxt->resolvedUrl(url); else - return context->throwError(QScriptContext::SyntaxError, "Relative URLs not supported"); + return context->throwError(QScriptContext::SyntaxError, QLatin1String("Relative URLs not supported")); } // Argument 2 - async (optional) if (context->argumentCount() > 2 && !context->argument(2).toBoolean()) - return context->throwError(QScriptContext::SyntaxError, "Synchronous call not supported"); + return context->throwError(QScriptContext::SyntaxError, QLatin1String("Synchronous call not supported")); // Argument 3/4 - user/pass (optional) @@ -1242,12 +1242,12 @@ static QScriptValue qmlxmlhttprequest_setRequestHeader(QScriptContext *context, if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object")); if (context->argumentCount() != 2) - return context->throwError(QScriptContext::SyntaxError, "Incorrect argument count"); + return context->throwError(QScriptContext::SyntaxError, QLatin1String("Incorrect argument count")); if (request->readyState() != QmlXMLHttpRequest::Opened || request->sendFlag()) - return context->throwError(INVALID_STATE_ERR, "Invalid state"); + return context->throwError(INVALID_STATE_ERR, QLatin1String("Invalid state")); QString name = context->argument(0).toString(); @@ -1289,10 +1289,10 @@ static QScriptValue qmlxmlhttprequest_send(QScriptContext *context, QScriptEngin if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object")); if (request->readyState() != QmlXMLHttpRequest::Opened) - return context->throwError(INVALID_STATE_ERR, "Invalid state"); + return context->throwError(INVALID_STATE_ERR, QLatin1String("Invalid state")); if (request->sendFlag()) - return context->throwError(INVALID_STATE_ERR, "Invalid state"); + return context->throwError(INVALID_STATE_ERR, QLatin1String("Invalid state")); QByteArray data; if (context->argumentCount() > 0) @@ -1324,7 +1324,7 @@ static QScriptValue qmlxmlhttprequest_getResponseHeader(QScriptContext *context, if (request->readyState() != QmlXMLHttpRequest::Loading && request->readyState() != QmlXMLHttpRequest::Done && request->readyState() != QmlXMLHttpRequest::HeadersReceived) - return context->throwError(INVALID_STATE_ERR, "Invalid state"); + return context->throwError(INVALID_STATE_ERR, QLatin1String("Invalid state")); QString headerName = context->argument(0).toString(); @@ -1342,7 +1342,7 @@ static QScriptValue qmlxmlhttprequest_getAllResponseHeaders(QScriptContext *cont if (request->readyState() != QmlXMLHttpRequest::Loading && request->readyState() != QmlXMLHttpRequest::Done && request->readyState() != QmlXMLHttpRequest::HeadersReceived) - return context->throwError(INVALID_STATE_ERR, "Invalid state"); + return context->throwError(INVALID_STATE_ERR, QLatin1String("Invalid state")); return QScriptValue(request->headers()); } @@ -1363,7 +1363,7 @@ static QScriptValue qmlxmlhttprequest_status(QScriptContext *context, QScriptEng if (request->readyState() == QmlXMLHttpRequest::Unsent || request->readyState() == QmlXMLHttpRequest::Opened) - return context->throwError(INVALID_STATE_ERR, "Invalid state"); + return context->throwError(INVALID_STATE_ERR, QLatin1String("Invalid state")); if (request->errorFlag()) return QScriptValue(0); @@ -1378,7 +1378,7 @@ static QScriptValue qmlxmlhttprequest_statusText(QScriptContext *context, QScrip if (request->readyState() == QmlXMLHttpRequest::Unsent || request->readyState() == QmlXMLHttpRequest::Opened) - return context->throwError(INVALID_STATE_ERR, "Invalid state"); + return context->throwError(INVALID_STATE_ERR, QLatin1String("Invalid state")); if (request->errorFlag()) return QScriptValue(0); -- cgit v0.12 From 8cefc95e3d91cb16ef6a7b16c18ef1e23a3911a9 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 9 Oct 2009 12:43:43 +1000 Subject: Add missing NOTIFY --- doc/src/declarative/qmlmodels.qdoc | 2 +- src/declarative/fx/qfxborderimage.cpp | 4 ++-- src/declarative/fx/qfxborderimage.h | 7 ++++--- src/declarative/fx/qfxgridview.cpp | 4 ++-- src/declarative/fx/qfxgridview.h | 7 ++++--- src/declarative/fx/qfxlistview.cpp | 1 + src/declarative/fx/qfxlistview.h | 5 +++-- src/declarative/fx/qfxpositioners.cpp | 1 + src/declarative/fx/qfxpositioners.h | 3 ++- 9 files changed, 20 insertions(+), 14 deletions(-) diff --git a/doc/src/declarative/qmlmodels.qdoc b/doc/src/declarative/qmlmodels.qdoc index eca81cd..d0a5464 100644 --- a/doc/src/declarative/qmlmodels.qdoc +++ b/doc/src/declarative/qmlmodels.qdoc @@ -63,7 +63,7 @@ There are a number of QML elements that operate using data models: \o ListView \o GridView \o PathView -\o \l {qml-repeater}{Repeater} +\o \l Repeater \endlist QML supports several types of data model, which may be provided by QML diff --git a/src/declarative/fx/qfxborderimage.cpp b/src/declarative/fx/qfxborderimage.cpp index 6616912..8f98a11 100644 --- a/src/declarative/fx/qfxborderimage.cpp +++ b/src/declarative/fx/qfxborderimage.cpp @@ -273,7 +273,7 @@ void QFxBorderImage::setHorizontalTileMode(TileMode t) Q_D(QFxBorderImage); if (t != d->horizontalTileMode) { d->horizontalTileMode = t; - emit tileModeChanged(); + emit horizontalTileModeChanged(); update(); } } @@ -289,7 +289,7 @@ void QFxBorderImage::setVerticalTileMode(TileMode t) Q_D(QFxBorderImage); if (t != d->verticalTileMode) { d->verticalTileMode = t; - emit tileModeChanged(); + emit verticalTileModeChanged(); update(); } } diff --git a/src/declarative/fx/qfxborderimage.h b/src/declarative/fx/qfxborderimage.h index eae9bd1..5bc1067 100644 --- a/src/declarative/fx/qfxborderimage.h +++ b/src/declarative/fx/qfxborderimage.h @@ -59,8 +59,8 @@ class Q_DECLARATIVE_EXPORT QFxBorderImage : public QFxImageBase Q_ENUMS(TileMode) Q_PROPERTY(QFxScaleGrid *border READ border CONSTANT) - Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY tileModeChanged) - Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY tileModeChanged) + Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged) + Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged) public: QFxBorderImage(QFxItem *parent=0); @@ -80,7 +80,8 @@ public: void setSource(const QUrl &url); Q_SIGNALS: - void tileModeChanged(); + void horizontalTileModeChanged(); + void verticalTileModeChanged(); protected: QFxBorderImage(QFxBorderImagePrivate &dd, QFxItem *parent); diff --git a/src/declarative/fx/qfxgridview.cpp b/src/declarative/fx/qfxgridview.cpp index a8b27f4..2ed704e 100644 --- a/src/declarative/fx/qfxgridview.cpp +++ b/src/declarative/fx/qfxgridview.cpp @@ -1000,7 +1000,7 @@ void QFxGridView::setCellWidth(int cellWidth) if (cellWidth != d->cellWidth && cellWidth > 0) { d->cellWidth = qMax(1, cellWidth); d->updateGrid(); - emit cellSizeChanged(); + emit cellWidthChanged(); d->layout(); } } @@ -1017,7 +1017,7 @@ void QFxGridView::setCellHeight(int cellHeight) if (cellHeight != d->cellHeight && cellHeight > 0) { d->cellHeight = qMax(1, cellHeight); d->updateGrid(); - emit cellSizeChanged(); + emit cellHeightChanged(); d->layout(); } } diff --git a/src/declarative/fx/qfxgridview.h b/src/declarative/fx/qfxgridview.h index 08a7565..7f30f03 100644 --- a/src/declarative/fx/qfxgridview.h +++ b/src/declarative/fx/qfxgridview.h @@ -67,8 +67,8 @@ class Q_DECLARATIVE_EXPORT QFxGridView : public QFxFlickable Q_PROPERTY(Flow flow READ flow WRITE setFlow) Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) - Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellSizeChanged) - Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellSizeChanged) + Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) + Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) Q_CLASSINFO("DefaultProperty", "data") public: @@ -121,7 +121,8 @@ public Q_SLOTS: Q_SIGNALS: void countChanged(); void currentIndexChanged(); - void cellSizeChanged(); + void cellWidthChanged(); + void cellHeightChanged(); protected: virtual void viewportMoved(); diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp index 1247021..aa8ccfd 100644 --- a/src/declarative/fx/qfxlistview.cpp +++ b/src/declarative/fx/qfxlistview.cpp @@ -1180,6 +1180,7 @@ void QFxListView::setOrientation(Qt::Orientation orientation) setViewportHeight(-1); d->clear(); refill(); + emit orientationChanged(); d->updateCurrent(d->currentIndex); } } diff --git a/src/declarative/fx/qfxlistview.h b/src/declarative/fx/qfxlistview.h index 3cff422..5a83604 100644 --- a/src/declarative/fx/qfxlistview.h +++ b/src/declarative/fx/qfxlistview.h @@ -72,7 +72,7 @@ class Q_DECLARATIVE_EXPORT QFxListView : public QFxFlickable Q_PROPERTY(bool strictlyEnforceHighlightRange READ strictlyEnforceHighlightRange WRITE setStrictlyEnforceHighlightRange) Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) - Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation) + Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) Q_PROPERTY(QString sectionExpression READ sectionExpression WRITE setSectionExpression NOTIFY sectionExpressionChanged) @@ -106,7 +106,7 @@ public: bool strictlyEnforceHighlightRange() const; void setStrictlyEnforceHighlightRange(bool strict); - + qreal preferredHighlightBegin() const; void setPreferredHighlightBegin(qreal); @@ -144,6 +144,7 @@ public Q_SLOTS: Q_SIGNALS: void countChanged(); void spacingChanged(); + void orientationChanged(); void currentIndexChanged(); void currentSectionChanged(); void sectionExpressionChanged(); diff --git a/src/declarative/fx/qfxpositioners.cpp b/src/declarative/fx/qfxpositioners.cpp index e4500aa..f8e7213 100644 --- a/src/declarative/fx/qfxpositioners.cpp +++ b/src/declarative/fx/qfxpositioners.cpp @@ -97,6 +97,7 @@ void QFxBasePositioner::setSpacing(int s) return; d->_spacing = s; prePositioning(); + emit spacingChanged(); } QmlTransition *QFxBasePositioner::move() const diff --git a/src/declarative/fx/qfxpositioners.h b/src/declarative/fx/qfxpositioners.h index 89a61d7..d62da08 100644 --- a/src/declarative/fx/qfxpositioners.h +++ b/src/declarative/fx/qfxpositioners.h @@ -59,7 +59,7 @@ class Q_DECLARATIVE_EXPORT QFxBasePositioner : public QFxItem { Q_OBJECT - Q_PROPERTY(int spacing READ spacing WRITE setSpacing) + Q_PROPERTY(int spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) Q_PROPERTY(QmlTransition *move READ move WRITE setMove) Q_PROPERTY(QmlTransition *add READ add WRITE setAdd) Q_PROPERTY(QmlTransition *remove READ remove WRITE setRemove) @@ -93,6 +93,7 @@ protected: Q_SIGNALS: void layoutItemChanged(); + void spacingChanged(); protected Q_SLOTS: virtual void doPositioning()=0; -- cgit v0.12 From 04511e3dbbcdf40489852babbf4753e0f744c26f Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 9 Oct 2009 14:25:22 +1000 Subject: Improve qdoc generated QML documentation. --- doc/src/declarative/elements.qdoc | 2 +- tools/qdoc3/config.h | 4 ++++ tools/qdoc3/cppcodemarker.cpp | 12 ++++++------ tools/qdoc3/doc.cpp | 4 ++++ tools/qdoc3/helpprojectwriter.cpp | 12 ++++++++++-- tools/qdoc3/node.cpp | 4 +++- tools/qdoc3/node.h | 2 ++ tools/qdoc3/test/qml.qdocconf | 5 ++++- 8 files changed, 34 insertions(+), 11 deletions(-) diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index cb30a6e..98c4ee1 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -40,7 +40,7 @@ ****************************************************************************/ /*! -\page elements.html +\page qmlelements.html \target elements \title QML Elements diff --git a/tools/qdoc3/config.h b/tools/qdoc3/config.h index 07cdb59..725129a 100644 --- a/tools/qdoc3/config.h +++ b/tools/qdoc3/config.h @@ -162,6 +162,10 @@ class Config #define CONFIG_FILEEXTENSIONS "fileextensions" +#ifdef QDOC_QML +#define CONFIG_QMLONLY "qmlonly" +#endif + QT_END_NAMESPACE #endif diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index ed3d150..1062f9c 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -1109,15 +1109,15 @@ QList
CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, if (qmlClassNode) { if (style == Summary) { FastSection qmlproperties(qmlClassNode, - "QML Properties", + "Properties", "property", "properties"); FastSection qmlsignals(qmlClassNode, - "QML Signals", + "Signals", "signal", "signals"); FastSection qmlmethods(qmlClassNode, - "QML Methods", + "Methods", "method", "methods"); @@ -1146,9 +1146,9 @@ QList
CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, append(sections,qmlmethods); } else if (style == Detailed) { - FastSection qmlproperties(qmlClassNode,"QML Property Documentation"); - FastSection qmlsignals(qmlClassNode,"QML Signal Documentation"); - FastSection qmlmethods(qmlClassNode,"QML Method Documentation"); + FastSection qmlproperties(qmlClassNode, "Property Documentation"); + FastSection qmlsignals(qmlClassNode,"Signal Documentation"); + FastSection qmlmethods(qmlClassNode,"Method Documentation"); NodeList::ConstIterator c = qmlClassNode->childNodes().begin(); while (c != qmlClassNode->childNodes().end()) { if ((*c)->subType() == Node::QmlPropertyGroup) { diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp index 748390f..f4931b8 100644 --- a/tools/qdoc3/doc.cpp +++ b/tools/qdoc3/doc.cpp @@ -2841,6 +2841,10 @@ void Doc::initialize(const Config& config) DocParser::sourceDirs = config.getStringList(CONFIG_SOURCEDIRS); DocParser::quoting = config.getBool(CONFIG_QUOTINGINFORMATION); +#ifdef QDOC_QML + QmlClassNode::qmlOnly = config.getBool(CONFIG_QMLONLY); +#endif + QStringMap reverseAliasMap; QSet commands = config.subVars(CONFIG_ALIAS); diff --git a/tools/qdoc3/helpprojectwriter.cpp b/tools/qdoc3/helpprojectwriter.cpp index 4973387..52f54c0 100644 --- a/tools/qdoc3/helpprojectwriter.cpp +++ b/tools/qdoc3/helpprojectwriter.cpp @@ -187,8 +187,16 @@ QStringList HelpProjectWriter::keywordDetails(const Node *node) const details << node->parent()->name()+"::"+node->name(); } else if (node->type() == Node::Fake) { const FakeNode *fake = static_cast(node); - details << fake->fullTitle(); - details << fake->fullTitle(); +#ifdef QDOC_QML + if (fake->subType() == Node::QmlClass) { + details << (QmlClassNode::qmlOnly ? fake->name() : fake->fullTitle()); + details << "QML." + fake->name(); + } else +#endif + { + details << fake->fullTitle(); + details << fake->fullTitle(); + } } else { details << node->name(); details << node->name(); diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp index d547d20..42b73d9 100644 --- a/tools/qdoc3/node.cpp +++ b/tools/qdoc3/node.cpp @@ -1057,6 +1057,8 @@ bool TargetNode::isInnerNode() const } #ifdef QDOC_QML +bool QmlClassNode::qmlOnly = false; + /*! Constructor for the Qml class node. */ @@ -1065,7 +1067,7 @@ QmlClassNode::QmlClassNode(InnerNode *parent, const ClassNode* cn) : FakeNode(parent, name, QmlClass), cnode(cn) { - setTitle("QML " + name + " Element Reference"); + setTitle((qmlOnly ? "" : "QML ") + name + " Element Reference"); } /*! diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h index 09f38d2..dfe882c 100644 --- a/tools/qdoc3/node.h +++ b/tools/qdoc3/node.h @@ -364,6 +364,8 @@ class QmlClassNode : public FakeNode const ClassNode* classNode() const { return cnode; } virtual QString fileBase() const; + static bool qmlOnly; + private: const ClassNode* cnode; }; diff --git a/tools/qdoc3/test/qml.qdocconf b/tools/qdoc3/test/qml.qdocconf index 3a7d76a..3b5d8dc 100644 --- a/tools/qdoc3/test/qml.qdocconf +++ b/tools/qdoc3/test/qml.qdocconf @@ -7,6 +7,7 @@ include(qt-defines.qdocconf) project = Qml description = Qml Reference Documentation url = http://doc.qtsoftware.com/4.6 +qmlonly = true edition.Console.modules = QtCore QtDBus QtNetwork QtScript QtSql QtXml \ QtXmlPatterns QtTest @@ -72,6 +73,8 @@ HTML.postheader = "  " \ "\n" \ "
" \ "" \ - "Home" \ + "Home ·" \ + " " \ + "Elements" \ "
" -- cgit v0.12