From 953d3fbe53e77261c57612aad35ffb34cde95ecb Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 7 May 2009 09:03:59 +1000 Subject: namespaces doc --- doc/src/declarative/components.qdoc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/src/declarative/components.qdoc b/doc/src/declarative/components.qdoc index 6564375..3b37c45 100644 --- a/doc/src/declarative/components.qdoc +++ b/doc/src/declarative/components.qdoc @@ -78,15 +78,15 @@ MyButton { label: "Reset"; onClicked: resetData() } \section1 Placing .qml Files -Component files should be placed in specific locations in order to be found by the Qml engine: +When one component refers to a another, the second must be found either in the same directory +as the first, or in a directory imported using the \c import statement: -\list -\o the run directory -\o the run directory + "/qml" -\o the directory of the Qml you are running -\o the directory of the Qml you are running + "/qml" -\endlist +\code +import "library" +\endcode + +\section1 Namespaces -In the future library-like directories will be defined (in the meantime the first two options above effectively serve this purpose). +Namespaces for QML will be supported in Qt 4.6. */ -- cgit v0.12 From 3df1b31051a908d165d9ea18d0d18c36a4748408 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 7 May 2009 09:05:37 +1000 Subject: default QGV --- src/declarative/canvas/qsimplecanvas.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/canvas/qsimplecanvas.cpp b/src/declarative/canvas/qsimplecanvas.cpp index 1911b35..ce02a4c 100644 --- a/src/declarative/canvas/qsimplecanvas.cpp +++ b/src/declarative/canvas/qsimplecanvas.cpp @@ -556,7 +556,7 @@ QSimpleCanvas::QSimpleCanvas(CanvasMode mode, QWidget *parent) QSimpleCanvas::QSimpleCanvas(QWidget *parent) : QWidget(parent), d(new QSimpleCanvasPrivate(this)) { - d->init(useGraphicsView()?GraphicsView:SimpleCanvas); + d->init(useGraphicsView()?SimpleCanvas:GraphicsView); } void QSimpleCanvasPrivate::init(QSimpleCanvas::CanvasMode mode) -- cgit v0.12 From 76408fe44b1b28fbe20c1ada0f1a7f728c1483d1 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 7 May 2009 09:55:24 +1000 Subject: default to QGV --- doc/src/declarative/examples.qdoc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/doc/src/declarative/examples.qdoc b/doc/src/declarative/examples.qdoc index fa9f05b..5ffcbf6 100644 --- a/doc/src/declarative/examples.qdoc +++ b/doc/src/declarative/examples.qdoc @@ -27,9 +27,4 @@ to be instructive on specific elements. Finally, check out the \l {tutorial} to learn a little more about writing your own QML-based applications. - -\note When running applications that only use the Fluid UI atoms under the -software rasterizer, a simple canvas backend is used by default. To use -Graphics View instead, set \c QML_USE_GRAPHICSVIEW=1. - */ -- cgit v0.12 From 627f9b09896a1933dd55e1157a06bdec84c7d70c Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 7 May 2009 09:55:41 +1000 Subject: white background no good in web page, go gray --- doc/src/declarative/tutorial1.qdoc | 4 ++-- doc/src/declarative/tutorial2.qdoc | 2 +- doc/src/declarative/tutorial3.qdoc | 2 +- doc/src/images/declarative-tutorial1.png | Bin 3416 -> 3025 bytes doc/src/images/declarative-tutorial2.png | Bin 3145 -> 3050 bytes doc/src/images/declarative-tutorial3_animation.gif | Bin 42486 -> 38111 bytes .../tutorials/helloworld/t1/tutorial1.qml | 2 +- .../tutorials/helloworld/t2/tutorial2.qml | 2 +- .../tutorials/helloworld/t3/tutorial3.qml | 2 +- 9 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/src/declarative/tutorial1.qdoc b/doc/src/declarative/tutorial1.qdoc index c2e3e22..6bb5012 100644 --- a/doc/src/declarative/tutorial1.qdoc +++ b/doc/src/declarative/tutorial1.qdoc @@ -14,7 +14,7 @@ Rect { id: Page width: 480 height: 200 - color: "white" + color: "LightGrey" Text { id: HelloText text: "Hello world!" @@ -35,7 +35,7 @@ Rect { id: Page width: 480 height: 200 - color: "white" + color: "LightGrey" } \endcode diff --git a/doc/src/declarative/tutorial2.qdoc b/doc/src/declarative/tutorial2.qdoc index 54f1828..1535c42 100644 --- a/doc/src/declarative/tutorial2.qdoc +++ b/doc/src/declarative/tutorial2.qdoc @@ -37,7 +37,7 @@ Rect { id: Page width: 480 height: 200 - color: "white" + color: "LightGrey" Text { id: HelloText text: "Hello world!" diff --git a/doc/src/declarative/tutorial3.qdoc b/doc/src/declarative/tutorial3.qdoc index 3ac22a1..0b97e63 100644 --- a/doc/src/declarative/tutorial3.qdoc +++ b/doc/src/declarative/tutorial3.qdoc @@ -16,7 +16,7 @@ Rect { id: Page width: 480 height: 200 - color: "white" + color: "LightGrey" Text { id: HelloText text: "Hello world!" diff --git a/doc/src/images/declarative-tutorial1.png b/doc/src/images/declarative-tutorial1.png index a936054..ea0000f 100644 Binary files a/doc/src/images/declarative-tutorial1.png and b/doc/src/images/declarative-tutorial1.png differ diff --git a/doc/src/images/declarative-tutorial2.png b/doc/src/images/declarative-tutorial2.png index 7871589..0538451 100644 Binary files a/doc/src/images/declarative-tutorial2.png and b/doc/src/images/declarative-tutorial2.png differ diff --git a/doc/src/images/declarative-tutorial3_animation.gif b/doc/src/images/declarative-tutorial3_animation.gif index 0465e61..d2d4c63 100644 Binary files a/doc/src/images/declarative-tutorial3_animation.gif and b/doc/src/images/declarative-tutorial3_animation.gif differ diff --git a/examples/declarative/tutorials/helloworld/t1/tutorial1.qml b/examples/declarative/tutorials/helloworld/t1/tutorial1.qml index ec29f4f..4e53b8e 100644 --- a/examples/declarative/tutorials/helloworld/t1/tutorial1.qml +++ b/examples/declarative/tutorials/helloworld/t1/tutorial1.qml @@ -2,7 +2,7 @@ Rect { id: Page width: 480 height: 200 - color: "white" + color: "LightGrey" Text { id: HelloText text: "Hello world!" diff --git a/examples/declarative/tutorials/helloworld/t2/tutorial2.qml b/examples/declarative/tutorials/helloworld/t2/tutorial2.qml index 4630435..6c7e68e 100644 --- a/examples/declarative/tutorials/helloworld/t2/tutorial2.qml +++ b/examples/declarative/tutorials/helloworld/t2/tutorial2.qml @@ -2,7 +2,7 @@ Rect { id: Page width: 480 height: 200 - color: "white" + color: "LightGrey" Text { id: HelloText text: "Hello world!" diff --git a/examples/declarative/tutorials/helloworld/t3/tutorial3.qml b/examples/declarative/tutorials/helloworld/t3/tutorial3.qml index 3ca7a2f..bd89ecf 100644 --- a/examples/declarative/tutorials/helloworld/t3/tutorial3.qml +++ b/examples/declarative/tutorials/helloworld/t3/tutorial3.qml @@ -2,7 +2,7 @@ Rect { id: Page width: 480 height: 200 - color: "white" + color: "LightGrey" Text { id: HelloText text: "Hello world!" -- cgit v0.12 From 5a99adc119c798276c5a14fbf3da250afeb3640a Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 7 May 2009 11:21:53 +1000 Subject: Remove phonebrowser demo. Flickr is better. --- .../phonebrowser/content/LikeOMeter.qml | 32 ------ .../phonebrowser/content/MediaButton.qml | 37 ------- .../phonebrowser/content/PhoneInfoContainer.qml | 110 ------------------- .../phonebrowser/content/PhonesPathView.qml | 120 --------------------- .../declarative/phonebrowser/content/ScrollBar.qml | 37 ------- demos/declarative/phonebrowser/content/Star.qml | 43 -------- .../phonebrowser/content/pics/background.png | Bin 60504 -> 0 bytes .../phonebrowser/content/pics/button-pressed.png | Bin 571 -> 0 bytes .../phonebrowser/content/pics/button.png | Bin 564 -> 0 bytes .../phonebrowser/content/pics/ghns_star.png | Bin 891 -> 0 bytes .../phonebrowser/content/pics/reflection.png | Bin 4839 -> 0 bytes .../phonebrowser/content/pics/shadow-bottom.png | Bin 656 -> 0 bytes .../phonebrowser/content/pics/shadow-corner.png | Bin 405 -> 0 bytes .../content/pics/shadow-right-screen.png | Bin 227 -> 0 bytes .../phonebrowser/content/pics/shadow-right.png | Bin 635 -> 0 bytes .../phonebrowser/dummydata/PhonesModel.qml | 99 ----------------- demos/declarative/phonebrowser/phonebrowser.qml | 59 ---------- 17 files changed, 537 deletions(-) delete mode 100644 demos/declarative/phonebrowser/content/LikeOMeter.qml delete mode 100644 demos/declarative/phonebrowser/content/MediaButton.qml delete mode 100644 demos/declarative/phonebrowser/content/PhoneInfoContainer.qml delete mode 100644 demos/declarative/phonebrowser/content/PhonesPathView.qml delete mode 100644 demos/declarative/phonebrowser/content/ScrollBar.qml delete mode 100644 demos/declarative/phonebrowser/content/Star.qml delete mode 100644 demos/declarative/phonebrowser/content/pics/background.png delete mode 100644 demos/declarative/phonebrowser/content/pics/button-pressed.png delete mode 100644 demos/declarative/phonebrowser/content/pics/button.png delete mode 100644 demos/declarative/phonebrowser/content/pics/ghns_star.png delete mode 100644 demos/declarative/phonebrowser/content/pics/reflection.png delete mode 100644 demos/declarative/phonebrowser/content/pics/shadow-bottom.png delete mode 100644 demos/declarative/phonebrowser/content/pics/shadow-corner.png delete mode 100644 demos/declarative/phonebrowser/content/pics/shadow-right-screen.png delete mode 100644 demos/declarative/phonebrowser/content/pics/shadow-right.png delete mode 100644 demos/declarative/phonebrowser/dummydata/PhonesModel.qml delete mode 100644 demos/declarative/phonebrowser/phonebrowser.qml diff --git a/demos/declarative/phonebrowser/content/LikeOMeter.qml b/demos/declarative/phonebrowser/content/LikeOMeter.qml deleted file mode 100644 index d928f48..0000000 --- a/demos/declarative/phonebrowser/content/LikeOMeter.qml +++ /dev/null @@ -1,32 +0,0 @@ -Item { - property var rating : 2 - - id: Container - HorizontalLayout { - Star { - rating: 0 - onClicked: { Container.rating = rating } - on: Container.rating >= 0 - } - Star { - rating: 1 - onClicked: { Container.rating = rating } - on: Container.rating >= 1 - } - Star { - rating: 2 - onClicked: { Container.rating = rating } - on: Container.rating >= 2 - } - Star { - rating: 3 - onClicked: { Container.rating = rating } - on: Container.rating >= 3 - } - Star { - rating: 4 - onClicked: { Container.rating = rating } - on: Container.rating >= 4 - } - } -} diff --git a/demos/declarative/phonebrowser/content/MediaButton.qml b/demos/declarative/phonebrowser/content/MediaButton.qml deleted file mode 100644 index cad36bd..0000000 --- a/demos/declarative/phonebrowser/content/MediaButton.qml +++ /dev/null @@ -1,37 +0,0 @@ -Item { - property var text - signal clicked - - id: Container - Image { - id: Image - source: "pics/button.png" - } - Image { - id: Pressed - source: "pics/button-pressed.png" - opacity: 0 - } - MouseRegion { - id: MouseRegion - anchors.fill: Image - onClicked: { Container.clicked.emit(); } - } - Text { - font.bold: true - color: "white" - anchors.centeredIn: Image - text: Container.text - } - width: Image.width - states: [ - State { - name: "Pressed" - when: MouseRegion.pressed == true - SetProperties { - target: Pressed - opacity: 1 - } - } - ] -} diff --git a/demos/declarative/phonebrowser/content/PhoneInfoContainer.qml b/demos/declarative/phonebrowser/content/PhoneInfoContainer.qml deleted file mode 100644 index ea20d4e..0000000 --- a/demos/declarative/phonebrowser/content/PhoneInfoContainer.qml +++ /dev/null @@ -1,110 +0,0 @@ -Flipable { - id: Container - - property var frontContainer : ContainerFront - property var flickableArea : Flickable - property var phoneTitle : "N/A" - property var phoneDescription : "..." - property var phoneSpecifications : "" - property var phoneUrl : "" - property var rating : 2 - signal closed - - axis: Axis { startX: Container.width / 2; endX: Container.width / 2; endY: 1 } - - front: Item { - id: ContainerFront; anchors.fill: Container - - Rect { - anchors.fill: parent - color: "black"; opacity: 0.4 - pen.color: "white"; pen.width: 2 - } - - MediaButton { - id: BackButton; x: 630; y: 400; text: "Back" - onClicked: { Container.closed.emit() } - } - - MediaButton { - id: MoreButton; x: 530; y: 400; text: "More..." - onClicked: { Container.state='Back' } - } - - Text { - id: TitleText - style: Raised; styleColor: "black" - color: "white" - x: 420; y: 30; width: parent.width - text: Container.phoneTitle; font.size: 22 - } - - LikeOMeter { x: 420; y: 75; rating: Container.rating } - - Flickable { - id: Flickable - x: 420; width: 280; height: 260; y: 120; clip: true - viewportWidth: 280; viewportHeight: DescriptionText.height - - Text { - id: DescriptionText - wrap: true - color: "white" - width: parent.width - text: Container.phoneDescription - font.size: 12 - } - } - - Text { - color: "white"; width: 300; x: 50; y: 300 - text: Container.phoneSpecifications - } - - ScrollBar { - id: ScrollBar - x: 720; y: Flickable.y; width: 7 - height: Flickable.height; opacity: 0 - flickableArea: Flickable; clip: true - } - } - - back: Item { - anchors.fill: Container - - Rect { - anchors.fill: parent - color: "black" - opacity: 0.4 - pen.color: "white" - pen.width: 2 - } - - Flickable { - width: Container.width-20 - height: Container.height-20 - x: 10; y: 10; clip: true - viewportWidth: UrlView.width - viewportHeight: UrlView.height - - WebView { id: UrlView; url: Container.phoneUrl; idealWidth: parent.width } - } - - MediaButton { - id: BackButton2; x: 630; y: 400; text: "Back"; onClicked: { Container.state='' } - } - } - - states: [ - State { - name: "Back" - SetProperty { target: Container; property: "rotation"; value: 180 } - } - ] - - transitions: [ - Transition { - NumericAnimation { easing: "easeInOutQuad"; properties: "rotation"; duration: 500 } - } - ] -} diff --git a/demos/declarative/phonebrowser/content/PhonesPathView.qml b/demos/declarative/phonebrowser/content/PhonesPathView.qml deleted file mode 100644 index acef6c3..0000000 --- a/demos/declarative/phonebrowser/content/PhonesPathView.qml +++ /dev/null @@ -1,120 +0,0 @@ -PathView { - id: Container; pathItemCount: 6 - - path: Path { - startX: -50; startY: 40; - - PathAttribute { name: "scale"; value: 0.2 } - - PathCubic { - x: 400; y: 220 - control1X: 140; control1Y: 40 - control2X: 210; control2Y: 220 - } - - PathAttribute { name: "scale"; value: 1.2 } - PathAttribute { name: "z"; value: 1 } - - PathCubic { - x: 850; y: 40 - control2X: 660; control2Y: 40 - control1X: 590; control1Y: 220 - } - - PathAttribute { name: "scale"; value: 0.2 } - } - - delegate: Component { - id: PhoneDelegate - - Item { - id: Wrapper; width: 320; height: 200 - scale: Wrapper.PathView.scale; z: Wrapper.PathView.z - - Connection { - sender: PhoneInfoContainer; signal: "closed()" - script: { if (Wrapper.state == 'Details') Wrapper.state = '' } - } - - Script { - function phoneClicked() { - if (MainWindow.minimized == true) { - MainWindow.minimized = false; - } else { - PhoneInfoContainer.phoneTitle = title; - PhoneInfoContainer.flickableArea.yPosition = 0; - PhoneInfoContainer.phoneDescription = description; - PhoneInfoContainer.phoneSpecifications = specifications; - PhoneInfoContainer.phoneUrl = url; - PhoneInfoContainer.rating = rating; - Wrapper.state = "Details"; - } - } - } - - Rect { - id: Dvd; anchors.fill: parent; color: "white" - - Item { - x: (parent.width-width)/2 - y: (parent.height-height)/2 - width: Thumb.width*Thumb.scale - height: Thumb.height*Thumb.scale - - Image { - id: Thumb; source: thumb - scale: 0.95*Math.min(Dvd.height/height,Dvd.width/width) - } - } - - Image { source: "pics/shadow-right.png"; x: Dvd.width; height: Dvd.height } - Image { source: "pics/shadow-bottom.png"; y: Dvd.height; width: Dvd.width } - - Image { - id: Corner - source: "pics/shadow-corner.png" - x: Dvd.width; y: Dvd.height - } - } - - MouseRegion { anchors.fill: Wrapper; onClicked: { phoneClicked() } } - - states: [ - State { - name: "Details" - ParentChange { target: Wrapper; parent: PhoneInfoContainer.frontContainer } - SetProperties { target: Wrapper; x: 50; y: 60; scale: 1 } - SetProperties { target: PhoneInfoContainer; y: 20 } - SetProperties { target: Container; y: "-480" } - SetProperties { target: CloseButton; opacity: 0 } - SetProperties { target: CategoryText; y: "-50" } - }, - - State { - name: "Stacked" - when: MainWindow.minimized == true - ParentChange { target: Wrapper; parent: Stack } - SetProperties {target: Wrapper; x: 0; y: 0; scale: 0.2 } - SetProperties { target: CloseButton; opacity: 0 } - SetProperties { target: CategoryText; y: "-50" } - } - ] - - transitions: [ - Transition { - fromState: ""; toState: "Details,Stacked" - ParentChangeAction { } - NumericAnimation { properties: "x,y,scale,opacity"; duration: 500; easing: "easeInOutQuad" } - }, - - Transition { - fromState: "Details,Stacked" - toState: "" - ParentChangeAction { } - NumericAnimation { properties: "x,y,scale,opacity"; duration: 500; easing: "easeInOutQuad" } - } - ] - - } - } -} diff --git a/demos/declarative/phonebrowser/content/ScrollBar.qml b/demos/declarative/phonebrowser/content/ScrollBar.qml deleted file mode 100644 index e65f92f..0000000 --- a/demos/declarative/phonebrowser/content/ScrollBar.qml +++ /dev/null @@ -1,37 +0,0 @@ -Item { - property var flickableArea - - id: Container - Rect { - radius: 5 - color: "black" - opacity: 0.3 - pen.color: "white" - pen.width: 2 - x: 0 - y: flickableArea.pageYPosition * Container.height - width: parent.width - height: flickableArea.pageHeight * Container.height - } - states: [ - State { - name: "show" - when: flickableArea.moving - SetProperties { - target: Container - opacity: 1 - } - } - ] - transitions: [ - Transition { - fromState: "*" - toState: "*" - NumericAnimation { - target: Container - properties: "opacity" - duration: 400 - } - } - ] -} diff --git a/demos/declarative/phonebrowser/content/Star.qml b/demos/declarative/phonebrowser/content/Star.qml deleted file mode 100644 index cdbb28b..0000000 --- a/demos/declarative/phonebrowser/content/Star.qml +++ /dev/null @@ -1,43 +0,0 @@ -Item { - property var rating - property var on - signal clicked - - id: Container - width: 24 - height: 24 - - Image { - id: Image - source: "pics/ghns_star.png" - x: 6 - y: 7 - opacity: 0.4 - scale: 0.5 - } - MouseRegion { - anchors.fill: Container - onClicked: { Container.clicked.emit() } - } - states: [ - State { - name: "on" - when: Container.on == true - SetProperties { - target: Image - opacity: 1 - scale: 1 - x: 1 - y: 0 - } - } - ] - transitions: [ - Transition { - NumericAnimation { - properties: "opacity,scale,x,y" - easing: "easeOutBounce" - } - } - ] -} diff --git a/demos/declarative/phonebrowser/content/pics/background.png b/demos/declarative/phonebrowser/content/pics/background.png deleted file mode 100644 index 5b37072..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/background.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/content/pics/button-pressed.png b/demos/declarative/phonebrowser/content/pics/button-pressed.png deleted file mode 100644 index e434d32..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/button-pressed.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/content/pics/button.png b/demos/declarative/phonebrowser/content/pics/button.png deleted file mode 100644 index 56a63ce..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/button.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/content/pics/ghns_star.png b/demos/declarative/phonebrowser/content/pics/ghns_star.png deleted file mode 100644 index 4ad43cc..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/ghns_star.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/content/pics/reflection.png b/demos/declarative/phonebrowser/content/pics/reflection.png deleted file mode 100644 index c143a48..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/reflection.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/content/pics/shadow-bottom.png b/demos/declarative/phonebrowser/content/pics/shadow-bottom.png deleted file mode 100644 index 523f6e7..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/shadow-bottom.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/content/pics/shadow-corner.png b/demos/declarative/phonebrowser/content/pics/shadow-corner.png deleted file mode 100644 index ef8c856..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/shadow-corner.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/content/pics/shadow-right-screen.png b/demos/declarative/phonebrowser/content/pics/shadow-right-screen.png deleted file mode 100644 index 9856c4f..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/shadow-right-screen.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/content/pics/shadow-right.png b/demos/declarative/phonebrowser/content/pics/shadow-right.png deleted file mode 100644 index f534a35..0000000 Binary files a/demos/declarative/phonebrowser/content/pics/shadow-right.png and /dev/null differ diff --git a/demos/declarative/phonebrowser/dummydata/PhonesModel.qml b/demos/declarative/phonebrowser/dummydata/PhonesModel.qml deleted file mode 100644 index 8d9ed97..0000000 --- a/demos/declarative/phonebrowser/dummydata/PhonesModel.qml +++ /dev/null @@ -1,99 +0,0 @@ -ListModel { - id: "PhonesModel" - - ListElement { - title: "Nokia N97" - thumb: "http://www.forum.nokia.com/devices/pics/N97_main.jpg" - description: "The Nokia N97 is a S60 5th Edition mobile computer with a large 3,5?, bright nHD (640 x 360 pixels and 16:9 aspect ratio) TFT color display with resistive touch screen and tactile feedback. The device provides excellent user experience for internet and entertainment by combining qwerty keyboard with touch UI and Home screen functionality. Use the N97 to connect to mobile broadband using WLAN or HSDPA (3.5G). Find directions and locations with the integrated A-GPS and included maps. Additional features include game titles with N-Gage, a 5 mega pixel camera with dual LED flash and automatic geotagging of images and videos." - specifications: "\ -
Resolution 360 x 640 \ -
Color Depth 24 bit \ -
Device Size 117.2 x 55.3 x 15.9 mm \ -
Volume 88 cc \ -
Weight 150 g \ -
" - url: "http://www.forum.nokia.com/devices/N97" - rating: 5 - } - ListElement { - title: "Nokia 5800 XpressMusic" - thumb: "http://www.forum.nokia.com/devices/pics/5800_main.jpg" - description: "The Nokia 5800 XpressMusic is a S60 5th Edition device with a resistive touch screen and tactile feedback. The device has a large 3,2?, bright nHD (640 x 360 pixels and 16:9 aspect ratio) color display. The device has variety of input methods: stylus, plectrum and finger touch support for text input and UI control (alphanumeric keypad, full and mini qwerty keyboard, handwriting recognition). Use the Nokia 5800 XpressMusic to connect to mobile broadband using WLAN or HSDPA (3.5G). Find directions and locations with the integrated A-GPS and included maps. Additional features include a 3.2 megapixel camera with dual LED flash, Bluetooth 2.0 +EDR, and USB 2.0 High-Speed. Supported WCDMA frequencies depend on the region where the device is available." - specifications: " \ -
Resolution 360 x 640 \ -
Color Depth 24 bit \ -
Device Size 111 x 51.7 x 15.5 mm \ -
Volume 83 cc \ -
Weight 109 g \ -
" - url: "http://www.forum.nokia.com/devices/5800_XpressMusic" - rating: 5 - } - ListElement { - title: "E75" - thumb: "http://www.forum.nokia.com/devices/pics/E75_main.jpg" - description: "The Nokia E75 is a GSM/WCDMA dual-mode business smartphone supporting WCDMA/HSDPA, EGSM, and WLAN. The device features a side slider qwerty keyboard for optimal email experience. Enjoy videos, music, and graphics on the 2.4? QVGA display and orientation sensor. Find directions and locations with the integrated A-GPS and included maps. Take photos with a 3.2-megapixel autofocus camera. Additional features include USB charging with simultaneous data transfer, Bluetooth 2.0 +EDR, and USB 2.0 High-Speed. Supported WCDMA frequencies depend on the region where the device is available." - specifications: " \ -
Resolution 240 x 320 \ -
Color Depth 24 bit \ -
Device Size 111.8 x 501 x 14.4 mm \ -
Volume 69 cc \ -
Weight 139 g \ -
" - url: "http://www.forum.nokia.com/devices/E75" - rating: 5 - } - ListElement { - title: "Nokia N810" - thumb: "http://www.forum.nokia.com/devices/pics/n810_main.jpg" - description: "The Nokia N810 features include Voice-over-IP (VoIP) Internet and video calling, Instant Messaging, an integrated slide-out QWERTY keyboard and touch screen. The N810 lets you stay connected on the go with WLAN or Bluetooth 2.0 +EDR and a Bluetooth enabled mobile phone. The hi-resolution 4.13\", 800 x 480 screen and the integrated web cam add to the internet experience. Use the Nokia N810 to play music and videos with the built-in stereo speakers or use the 3.5mm stereo plug with headphones. The Nokia N810 also has an integrated GPS receiver which allows you to pinpoint your position and find points-of-interests using pre-loaded maps." - specifications: " \ -
Resolution 800 x 480 \ -
Color Depth 16 bit \ -
Device Size 128 x 72 x 14 mm \ -
Weight 225 g \ -
" - url: "http://www.forum.nokia.com/devices/N810" - rating: 5 - } - ListElement { - title: "Nokia 6260 slide" - thumb: "http://www.forum.nokia.com/devices/pics/6260slide_main.jpg" - description: "The Nokia 6260 slide is a Series 40 6th Edition phone, supporting quad-band GSM 850/900/1800/1900, triple-band WCDMA 900/1900/2100 and WLAN. Other key features include integrated A-GPS with included maps, a 5.0 megapixel camera with LED flash and Carl Zeiss optics, WebKit Open Source Browser, Flash Lite 3.0, Bluetooth 2.1 + EDR and MIDP Java 2.1 with additional Java APIs. Supported WCDMA frequencies depend on the region where the device is available." - specifications: "\ -
Resolution 320 x 480 \ -
Color Depth 24 bit \ -
Device Size 99.4 x 46.5 x 15.4 mm \ -
Volume 64.5 cc \ -
Weight 114 g \ -
" - url: "http://www.forum.nokia.com/devices/6260_slide" - rating: 5 - } - ListElement { - title: "Nokia 2330 classic" - thumb: "http://www.forum.nokia.com/devices/pics/2330_main.jpg" - description: "The Nokia 2330 classic is a Dual-band GPRS phone for EGSM 900/1800 or GSM 850/1900 (for some markets) that includes a VGA camera, Stereo FM radio with recording feature, Bluetooth 2.0, Mail on Ovi and MIDP 2.1 APIs for application creation." - specifications: "\ -
Resolution 128 x 160 \ -
Color Depth 16 bit \ -
Device Size 107 x 46 x 13.8 mm\ -
Weight 80 g\ -
" - url: "http://www.forum.nokia.com/devices/2330_classic" - rating: 5 - } - ListElement { - title: "Nokia 2355" - thumb: "http://www.forum.nokia.com/devices/pics/2355_main.jpg" - description: "The Nokia 2355 CDMA phone features a 64K color display, FM radio, integrated flashlight, WAP 2.0 browsing, MMS, Java(tm) and Brew. It's stylishly polished fold design will keep you in the spotlight." - specifications: " \ -
Resolution 128 x 128 \ -
Color Depth 16 bit \ -
Device Size 81 x 43 x 22 mm \ -
Weight 78 g \ -
" - url: "http://www.forum.nokia.com/devices/2355" - rating: 5 - } -} diff --git a/demos/declarative/phonebrowser/phonebrowser.qml b/demos/declarative/phonebrowser/phonebrowser.qml deleted file mode 100644 index ce74367..0000000 --- a/demos/declarative/phonebrowser/phonebrowser.qml +++ /dev/null @@ -1,59 +0,0 @@ -import "content" - -Item { - id: MainWindow; width: 800; height: 480 - - property var minimized : false - - Item { - id: Background - - Image { source: "content/pics/background.png"; opaque: true } - - Rect { - id: Menu; x: -150; width: 150; height: 480; color: "#232323" - - Text { - id: IconText; x: 40; y: 110 - font.bold: true; font.size: 9; text: "Nokia Devices" - color: "white"; style: Raised; styleColor: "black" - } - - Image { - source: "content/pics/shadow-right-screen.png" - x: 150; height: 480; tile: true - } - } - - PhonesPathView { id: PhonesPathView; model: PhonesModel; y: 60; width: 800; height: 360 } - PhoneInfoContainer { id: PhoneInfoContainer; width: 750; x: 25; y: 500; height: 440 } - - MediaButton { - id: CloseButton; x: 680; y: 440; text: "Close" - onClicked: { MainWindow.minimized = true } - } - - states: [ - State { - name: "Minimized" - when: MainWindow.minimized == true - SetProperties { target: Background; x: 75 } - SetProperties { target: Menu; x: -75 } - } - ] - - transitions: [ - Transition { - fromState: "*"; toState: "*" - NumericAnimation { properties: "x,y,size"; duration: 500; easing: "easeInOutQuad" } - } - ] - } - - Text { - id: CategoryText; x: 300; y: 15; text: "Nokia Devices" - font.size: 22; color: "white"; style: Raised; styleColor: "black" - } - - Item { id: Stack; x: 45; y: 50 } -} -- cgit v0.12 From 2dd06e645cb6e1ffca1274864a62418a2ebe6504 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 7 May 2009 11:32:07 +1000 Subject: doc --- doc/src/declarative/components.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/declarative/components.qdoc b/doc/src/declarative/components.qdoc index 3b37c45..d7a4ba6 100644 --- a/doc/src/declarative/components.qdoc +++ b/doc/src/declarative/components.qdoc @@ -13,8 +13,8 @@ Writing and using components allows you to: \endlist Components are placed in \e .qml files, allowing \e to then be used as a tag -elsewhere. For example, if you have a Slider.qml file, you can then use \c {Slider \{\}} to -place a slider. +elsewhere. For example, if you have a Slider.qml file, you can then use \c {Slider { ... }} to +make a slider, just as if it was a built-in type. Components may be collected into \l {qmlmodules}{modules}. -- cgit v0.12 From 990e4215926c5fd2327e379f6ef872b8274a7f67 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 7 May 2009 11:32:17 +1000 Subject: Fix QmlXmlListModel on property changes, on empty results. Tags in flickr demo. --- demos/declarative/flickr/content/ImageDetails.qml | 5 +++ demos/declarative/flickr/flickr.qml | 13 ++++--- src/declarative/extra/qmlxmllistmodel.cpp | 42 ++++++++++++++++++----- src/declarative/extra/qmlxmllistmodel.h | 2 +- 4 files changed, 48 insertions(+), 14 deletions(-) diff --git a/demos/declarative/flickr/content/ImageDetails.qml b/demos/declarative/flickr/content/ImageDetails.qml index 7b16831..d721983 100644 --- a/demos/declarative/flickr/content/ImageDetails.qml +++ b/demos/declarative/flickr/content/ImageDetails.qml @@ -6,6 +6,7 @@ Flipable { property var fullScreenArea: BigImage property string photoTitle: "" property string photoDescription: "" + property string photoTags: "" property int photoWidth property int photoHeight property string photoType @@ -58,6 +59,10 @@ Flipable { text: "Author: " + Container.photoAuthor } Text { id: Date; color: "white"; width: 300; x: 220; anchors.top: Author.bottom text: "Published: " + Container.photoDate } + Text { id: TagsLabel; color: "white"; x: 220; anchors.top: Date.bottom; + text: Container.photoTags == "" ? "" : "Tags: " } + Text { id: Tags; color: "white"; width: parent.width-x-20; anchors.left: TagsLabel.right; anchors.top: Date.bottom; elide: "ElideRight" + text: Container.photoTags == "" ? "" : Container.photoTags } ScrollBar { id: ScrollBar; x: 720; y: Flickable.y; width: 7; height: Flickable.height; opacity: 0; flickableArea: Flickable; clip: true } diff --git a/demos/declarative/flickr/flickr.qml b/demos/declarative/flickr/flickr.qml index 0ff539d..676e51b 100644 --- a/demos/declarative/flickr/flickr.qml +++ b/demos/declarative/flickr/flickr.qml @@ -8,7 +8,8 @@ Item { resources: [ XmlListModel { id: FeedModel - source: "http://api.flickr.com/services/feeds/photos_public.gne?format=rss2" + property string tags : "" + source: "http://api.flickr.com/services/feeds/photos_public.gne?"+(tags ? "tags="+tags+"&" : "")+"format=rss2" query: "doc($src)/rss/channel/item" namespaceDeclarations: "declare namespace media=\"http://search.yahoo.com/mrss/\";" @@ -16,6 +17,7 @@ Item { Role { name: "imagePath"; query: "media:thumbnail/@url/string()" } Role { name: "url"; query: "media:content/@url/string()" } Role { name: "description"; query: "description/string()"; isCData: true } + Role { name: "tags"; query: "media:category/string()" } Role { name: "photoWidth"; query: "media:content/@width/string()" } Role { name: "photoHeight"; query: "media:content/@height/string()" } Role { name: "photoType"; query: "media:content/@type/string()" } @@ -44,6 +46,7 @@ Item { ImageDetails.flickableArea.yPosition = 0; ImageDetails.fullScreenArea.source = ""; ImageDetails.photoDescription = description; + ImageDetails.photoTags = tags; ImageDetails.photoWidth = photoWidth; ImageDetails.photoHeight = photoHeight; ImageDetails.photoType = photoType; @@ -134,7 +137,7 @@ Item { } PathAttribute { name: "scale"; value: 1 } - PathAttribute { name: "angle"; value: 45 } + PathAttribute { name: "angle"; value: -45 } } } @@ -151,7 +154,7 @@ Item { text: "Update" anchors.right: CloseButton.left; anchors.rightMargin: 5 anchors.top: CloseButton.top - onClicked: { FeedModel.fetch(); } + onClicked: { FeedModel.reload(); } } states: [ @@ -172,7 +175,9 @@ Item { } Text { - id: CategoryText; anchors.horizontalCenter: parent.horizontalCenter; y: 15; text: "Flickr - Uploads from everyone" + id: CategoryText; anchors.horizontalCenter: parent.horizontalCenter; y: 15; + text: "Flickr - " + + (FeedModel.tags=="" ? "Uploads from everyone" : "Recent Uploads tagged " + FeedModel.tags) font.size: 16; font.bold: true; color: "white"; style: "Raised"; styleColor: "black" } } diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp index af72ecc..bba817d 100644 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ b/src/declarative/extra/qmlxmllistmodel.cpp @@ -90,8 +90,9 @@ class QmlXmlListModelPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QmlXmlListModel) public: - QmlXmlListModelPrivate() : size(-1), highestRole(Qt::UserRole), reply(0), roleObjects(this) {} + QmlXmlListModelPrivate() : isClassComplete(false), size(-1), highestRole(Qt::UserRole), reply(0), roleObjects(this) {} + bool isClassComplete; QString src; QString query; QString namespaces; @@ -204,7 +205,10 @@ QString QmlXmlListModel::source() const void QmlXmlListModel::setSource(const QString &src) { Q_D(QmlXmlListModel); - d->src = src; + if (d->src != src) { + d->src = src; + reload(); + } } QString QmlXmlListModel::query() const @@ -216,7 +220,10 @@ QString QmlXmlListModel::query() const void QmlXmlListModel::setQuery(const QString &query) { Q_D(QmlXmlListModel); - d->query = query; + if (d->query != query) { + d->query = query; + reload(); + } } QString QmlXmlListModel::namespaceDeclarations() const @@ -228,29 +235,44 @@ QString QmlXmlListModel::namespaceDeclarations() const void QmlXmlListModel::setNamespaceDeclarations(const QString &declarations) { Q_D(QmlXmlListModel); - d->namespaces = declarations; + if (d->namespaces != declarations) { + d->namespaces = declarations; + reload(); + } } void QmlXmlListModel::classComplete() { - fetch(); + Q_D(QmlXmlListModel); + d->isClassComplete = true; + reload(); } -void QmlXmlListModel::fetch() +void QmlXmlListModel::reload() { Q_D(QmlXmlListModel); + if (!d->isClassComplete) + return; + //clear existing data d->size = 0; int count = d->data.count(); d->data.clear(); - emit itemsRemoved(0, count); + if (count > 0) + emit itemsRemoved(0, count); if (d->src.isEmpty()) { - qWarning() << "Can't fetch empty src string"; + qWarning() << "Can't load empty src string"; return; } + if (d->reply) { + d->reply->abort(); + d->reply->deleteLater(); + d->reply = 0; + } + QNetworkRequest req((QUrl(d->src))); req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); @@ -316,7 +338,9 @@ void QmlXmlListModel::doQuery(QByteArray &rawData) d->xml = xml; d->size = count; - emit itemsInserted(0, count); + + if (count > 0) + emit itemsInserted(0, count); } void QmlXmlListModel::doSubquery(int index) const diff --git a/src/declarative/extra/qmlxmllistmodel.h b/src/declarative/extra/qmlxmllistmodel.h index acc54a9..2e932cb 100644 --- a/src/declarative/extra/qmlxmllistmodel.h +++ b/src/declarative/extra/qmlxmllistmodel.h @@ -118,7 +118,7 @@ public: virtual void classComplete(); public Q_SLOTS: - void fetch(); + void reload(); protected: void doQuery(QByteArray &rawData); -- cgit v0.12 From 6f0a647810e5d826116590dd64aa5ddd87e61aad Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 7 May 2009 11:56:07 +1000 Subject: Layouts should only modify items in their direction of operation --- src/declarative/fx/qfxlayouts.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/declarative/fx/qfxlayouts.cpp b/src/declarative/fx/qfxlayouts.cpp index 85b198e..e95998b 100644 --- a/src/declarative/fx/qfxlayouts.cpp +++ b/src/declarative/fx/qfxlayouts.cpp @@ -361,7 +361,12 @@ void QFxBaseLayout::preLayout() if (item->isVisible()){ if (!d->_animated.contains(item)){ setMovingItem(item); - item->setPos(QPointF(item->x()+d->_margin, item->y()+d->_margin)); + QPointF p(item->x(), item->y()); + if(d->aut & Horizontal) + p.setX(p.x() + d->_margin); + if(d->aut & Vertical) + p.setY(p.y() + d->_margin); + item->setPos(p); setMovingItem(0); } width = qMax(width, item->x() + item->width()); -- cgit v0.12 From d2dbe01664c1adb8d1848b566621dbe4470f184b Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Thu, 7 May 2009 13:40:12 +1000 Subject: Use VisualModel --- demos/declarative/flickr/flickr2.qml | 274 +++++++++++++++++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 demos/declarative/flickr/flickr2.qml diff --git a/demos/declarative/flickr/flickr2.qml b/demos/declarative/flickr/flickr2.qml new file mode 100644 index 0000000..4875fa4 --- /dev/null +++ b/demos/declarative/flickr/flickr2.qml @@ -0,0 +1,274 @@ +import "content" + +Item { + id: MainWindow; width: 800; height: 450 + + property bool showPathView : false + + VisualModel { + id: MyVisualModel + model: + XmlListModel { + id: FeedModel + property string tags : "" + source: "http://api.flickr.com/services/feeds/photos_public.gne?"+(tags ? "tags="+tags+"&" : "")+"format=rss2" + query: "doc($src)/rss/channel/item" + namespaceDeclarations: "declare namespace media=\"http://search.yahoo.com/mrss/\";" + + Role { name: "title"; query: "title/string()" } + Role { name: "imagePath"; query: "media:thumbnail/@url/string()" } + Role { name: "url"; query: "media:content/@url/string()" } + Role { name: "description"; query: "description/string()"; isCData: true } + Role { name: "tags"; query: "media:category/string()" } + Role { name: "photoWidth"; query: "media:content/@width/string()" } + Role { name: "photoHeight"; query: "media:content/@height/string()" } + Role { name: "photoType"; query: "media:content/@type/string()" } + Role { name: "photoAuthor"; query: "author/string()" } + Role { name: "photoDate"; query: "pubDate/string()" } + } + + delegate: Package { + Item { + id: Wrapper; width: 85; height: 85 + scale: Wrapper.PathView.scale; z: Wrapper.PathView.z + + transform: [ + Rotation3D { id: Rotation; axis.startX: 30; axis.endX: 30; axis.endY: 60; angle: Wrapper.PathView.angle } + ] + + Connection { + sender: ImageDetails; signal: "closed()" + script: { if (Wrapper.state == 'Details') Wrapper.state = '' } + } + + Script { + function photoClicked() { + ImageDetails.photoTitle = title; + ImageDetails.flickableArea.yPosition = 0; + ImageDetails.fullScreenArea.source = ""; + ImageDetails.photoDescription = description; + ImageDetails.photoTags = tags; + ImageDetails.photoWidth = photoWidth; + ImageDetails.photoHeight = photoHeight; + ImageDetails.photoType = photoType; + ImageDetails.photoAuthor = photoAuthor; + ImageDetails.photoDate = photoDate; + ImageDetails.photoUrl = url; + ImageDetails.rating = 0; + Wrapper.state = "Details"; + } + } + + Rect { + id: WhiteRect; anchors.fill: parent; color: "white"; radius: 5 + + Loading { x: 26; y: 26; visible: Thumb.status } + Image { id: Thumb; source: imagePath; x: 5; y: 5 } + + Item { + id: Shadows + Image { source: "content/pics/shadow-right.png"; x: WhiteRect.width; height: WhiteRect.height } + Image { source: "content/pics/shadow-bottom.png"; y: WhiteRect.height; width: WhiteRect.width } + Image { id: Corner; source: "content/pics/shadow-corner.png"; x: WhiteRect.width; y: WhiteRect.height } + } + } + + MouseRegion { anchors.fill: Wrapper; onClicked: { photoClicked() } } + + states: [ + State { + name: "Details" + SetProperties { target: ImageDetails; z: 2 } + ParentChange { target: Wrapper; parent: ImageDetails.frontContainer } + SetProperties { target: Wrapper; x: 45; y: 35; scale: 1; z: 1000 } + SetProperties { target: Rotation; angle: 0 } + SetProperties { target: Shadows; opacity: 0 } + SetProperties { target: ImageDetails; y: 20 } + SetProperties { target: PhotoGridView; y: "-480" } + SetProperties { target: PhotoPathView; y: "-480" } + SetProperties { target: CloseButton; opacity: 0 } + SetProperties { target: FetchButton; opacity: 0 } + SetProperties { target: CategoryText; y: "-50" } + } + ] + + transitions: [ + Transition { + fromState: "*"; toState: "Details" + ParentChangeAction { } + NumericAnimation { properties: "x,y,scale,opacity,angle"; duration: 500; easing: "easeInOutQuad" } + }, + Transition { + fromState: "Details"; toState: "*" + SequentialAnimation { + ParentChangeAction { } + NumericAnimation { properties: "x,y,scale,opacity,angle"; duration: 500; easing: "easeInOutQuad" } + SetPropertyAction { filter: Wrapper; properties: "z" } + } + } + ] + } + + Item { + Package.name: "rightBox" + id: RightBox; x: 200; width: 85; height: 85 + } + + Item { + Package.name: "leftBox" + id: LeftBox; width: 85; height: 85 + } + + Item { + id: MyItem + states: [ + State { + name: "left" + when: MainWindow.showPathView == true + SetProperty { + target: Wrapper + property: "moveToParent" + value: LeftBox + } + }, + State { + name: "right" + when: MainWindow.showPathView == false + SetProperty { + target: Wrapper + property: "moveToParent" + value: RightBox + } + } + ] + transitions: [ + Transition { + fromState: "*" + toState: "*" + SequentialAnimation { + SetPropertyAction { + target: Wrapper + property: "moveToParent" + value: Bounce + } + ParallelAnimation { + NumericAnimation { + target: Wrapper + properties: "x" + to: 0 + duration: 250 + } + NumericAnimation { + target: Wrapper + properties: "y" + to: 0 + easing: "easeInQuad" + duration: 250 + } + } + SetPropertyAction { + target: Wrapper + property: "moveToParent" + } + ParallelAnimation { + NumericAnimation { + target: Wrapper + properties: "x" + to: 0 + duration: 250 + } + NumericAnimation { + target: Wrapper + properties: "y" + to: 0 + easing: "easeOutQuad" + duration: 250 + } + } + } + } + ] + state: "right" + } + + } + } + + + Item { + id: Background + + Image { source: "content/pics/background.png"; opaque: true } + + GridView { + id: PhotoGridView; model: MyVisualModel.parts.leftBox + cellWidth: 105; cellHeight: 105; x:32; y: 80; width: 800; height: 330; z: 1 + } + + PathView { + id: PhotoPathView; model: MyVisualModel.parts.rightBox + y: 80; width: 800; height: 330; z: 1 + path: Path { + startX: -50; startY: 40; + + PathAttribute { name: "scale"; value: 1 } + PathAttribute { name: "angle"; value: -45 } + + PathCubic { + x: 400; y: 220 + control1X: 140; control1Y: 40 + control2X: 210; control2Y: 220 + } + + PathAttribute { name: "scale"; value: 1.2 } + PathAttribute { name: "z"; value: 1 } + PathAttribute { name: "angle"; value: 0 } + + PathCubic { + x: 850; y: 40 + control2X: 660; control2Y: 40 + control1X: 590; control1Y: 220 + } + + PathAttribute { name: "scale"; value: 1 } + PathAttribute { name: "angle"; value: -45 } + } + + } + + ImageDetails { id: ImageDetails; width: 750; x: 25; y: 500; height: 410 } + + MediaButton { + id: CloseButton; x: 680; y: 410; text: "View Mode" + onClicked: { if (MainWindow.showPathView == true) MainWindow.showPathView = false; else MainWindow.showPathView = true } + } + + MediaButton { + id: FetchButton + text: "Update" + anchors.right: CloseButton.left; anchors.rightMargin: 5 + anchors.top: CloseButton.top + onClicked: { FeedModel.reload(); } + } + + states: [ + State { + name: "PathView" + } + ] + + transitions: [ + Transition { + fromState: "*"; toState: "*" + NumericAnimation { properties: "y"; duration: 650; easing: "easeOutBounce(amplitude:0.1)" } + } + ] + } + + Text { + id: CategoryText; anchors.horizontalCenter: parent.horizontalCenter; y: 15; + text: "Flickr - " + + (FeedModel.tags=="" ? "Uploads from everyone" : "Recent Uploads tagged " + FeedModel.tags) + font.size: 16; font.bold: true; color: "white"; style: "Raised"; styleColor: "black" + } +} -- cgit v0.12