diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2009-05-07 02:50:29 (GMT) |
---|---|---|
committer | Michael Brasser <michael.brasser@nokia.com> | 2009-05-07 02:50:29 (GMT) |
commit | efc88aff5538d9dfff4f2abcd21d575815488c45 (patch) | |
tree | 0d1c0623053eb4a83a804fea6dbc31cf222cafce | |
parent | e5a34bec3ee024d07bce6db52cd19d4a8e36696b (diff) | |
parent | 8abba3d2ec7f6520d87271a5b74ae7b021629784 (diff) | |
download | Qt-efc88aff5538d9dfff4f2abcd21d575815488c45.zip Qt-efc88aff5538d9dfff4f2abcd21d575815488c45.tar.gz Qt-efc88aff5538d9dfff4f2abcd21d575815488c45.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
34 files changed, 86 insertions, 579 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: "<b>Author:</b> " + Container.photoAuthor } Text { id: Date; color: "white"; width: 300; x: 220; anchors.top: Author.bottom text: "<b>Published:</b> " + Container.photoDate } + Text { id: TagsLabel; color: "white"; x: 220; anchors.top: Date.bottom; + text: Container.photoTags == "" ? "" : "<b>Tags:</b> " } + 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..83fd845 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; @@ -74,8 +77,9 @@ Item { states: [ State { name: "Details" + SetProperties { target: ImageDetails; z: 2 } ParentChange { target: Wrapper; parent: ImageDetails.frontContainer } - SetProperties { target: Wrapper; x: 45; y: 35; scale: 1 } + 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 } @@ -89,11 +93,20 @@ Item { transitions: [ Transition { - fromState: "*"; toState: "*" + 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" } + } } ] + } } ] @@ -105,12 +118,12 @@ Item { GridView { id: PhotoGridView; model: FeedModel; delegate: PhotoDelegate - cellWidth: 105; cellHeight: 105; x:32; y: 80; width: 800; height: 330 + cellWidth: 105; cellHeight: 105; x:32; y: 80; width: 800; height: 330; z: 1 } PathView { id: PhotoPathView; model: FeedModel; delegate: PhotoDelegate - y: -380; width: 800; height: 330; pathItemCount: 10 + y: -380; width: 800; height: 330; pathItemCount: 10; z: 1 path: Path { startX: -50; startY: 40; @@ -134,7 +147,7 @@ Item { } PathAttribute { name: "scale"; value: 1 } - PathAttribute { name: "angle"; value: 45 } + PathAttribute { name: "angle"; value: -45 } } } @@ -151,7 +164,7 @@ Item { text: "Update" anchors.right: CloseButton.left; anchors.rightMargin: 5 anchors.top: CloseButton.top - onClicked: { FeedModel.fetch(); } + onClicked: { FeedModel.reload(); } } states: [ @@ -172,7 +185,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/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 Binary files differdeleted file mode 100644 index 5b37072..0000000 --- a/demos/declarative/phonebrowser/content/pics/background.png +++ /dev/null diff --git a/demos/declarative/phonebrowser/content/pics/button-pressed.png b/demos/declarative/phonebrowser/content/pics/button-pressed.png Binary files differdeleted file mode 100644 index e434d32..0000000 --- a/demos/declarative/phonebrowser/content/pics/button-pressed.png +++ /dev/null diff --git a/demos/declarative/phonebrowser/content/pics/button.png b/demos/declarative/phonebrowser/content/pics/button.png Binary files differdeleted file mode 100644 index 56a63ce..0000000 --- a/demos/declarative/phonebrowser/content/pics/button.png +++ /dev/null diff --git a/demos/declarative/phonebrowser/content/pics/ghns_star.png b/demos/declarative/phonebrowser/content/pics/ghns_star.png Binary files differdeleted file mode 100644 index 4ad43cc..0000000 --- a/demos/declarative/phonebrowser/content/pics/ghns_star.png +++ /dev/null diff --git a/demos/declarative/phonebrowser/content/pics/reflection.png b/demos/declarative/phonebrowser/content/pics/reflection.png Binary files differdeleted file mode 100644 index c143a48..0000000 --- a/demos/declarative/phonebrowser/content/pics/reflection.png +++ /dev/null diff --git a/demos/declarative/phonebrowser/content/pics/shadow-bottom.png b/demos/declarative/phonebrowser/content/pics/shadow-bottom.png Binary files differdeleted file mode 100644 index 523f6e7..0000000 --- a/demos/declarative/phonebrowser/content/pics/shadow-bottom.png +++ /dev/null diff --git a/demos/declarative/phonebrowser/content/pics/shadow-corner.png b/demos/declarative/phonebrowser/content/pics/shadow-corner.png Binary files differdeleted file mode 100644 index ef8c856..0000000 --- a/demos/declarative/phonebrowser/content/pics/shadow-corner.png +++ /dev/null diff --git a/demos/declarative/phonebrowser/content/pics/shadow-right-screen.png b/demos/declarative/phonebrowser/content/pics/shadow-right-screen.png Binary files differdeleted file mode 100644 index 9856c4f..0000000 --- a/demos/declarative/phonebrowser/content/pics/shadow-right-screen.png +++ /dev/null diff --git a/demos/declarative/phonebrowser/content/pics/shadow-right.png b/demos/declarative/phonebrowser/content/pics/shadow-right.png Binary files differdeleted file mode 100644 index f534a35..0000000 --- a/demos/declarative/phonebrowser/content/pics/shadow-right.png +++ /dev/null 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: "<table width=300>\ - <tr><td width=50%>Resolution <td width=50%>360 x 640 \ - <tr><td>Color Depth <td>24 bit \ - <tr><td>Device Size <td>117.2 x 55.3 x 15.9 mm \ - <tr><td>Volume <td>88 cc \ - <tr><td>Weight <td>150 g \ - </table>" - 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: " <table width=300> \ - <tr><td width=50%>Resolution <td width=50%>360 x 640 \ - <tr><td>Color Depth <td>24 bit \ - <tr><td>Device Size <td>111 x 51.7 x 15.5 mm \ - <tr><td>Volume <td>83 cc \ - <tr><td>Weight <td>109 g \ - </table>" - 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: "<table width=300> \ - <tr><td width=50%>Resolution <td width=50%>240 x 320 \ - <tr><td>Color Depth <td>24 bit \ - <tr><td>Device Size <td>111.8 x 501 x 14.4 mm \ - <tr><td>Volume <td>69 cc \ - <tr><td>Weight <td>139 g \ - </table>" - 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: "<table width=300> \ - <tr><td width=50%>Resolution <td width=50%>800 x 480 \ - <tr><td>Color Depth <td>16 bit \ - <tr><td>Device Size <td>128 x 72 x 14 mm \ - <tr><td>Weight <td>225 g \ - </table>" - 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: "<table width=300>\ - <tr><td width=50%>Resolution <td width=50%>320 x 480 \ - <tr><td>Color Depth <td>24 bit \ - <tr><td>Device Size <td>99.4 x 46.5 x 15.4 mm \ - <tr><td>Volume <td>64.5 cc \ - <tr><td>Weight <td>114 g \ - </table>" - 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: "<table width=300>\ - <tr><td width=50%>Resolution <td width=50%>128 x 160 \ - <tr><td>Color Depth <td>16 bit \ - <tr><td>Device Size <td>107 x 46 x 13.8 mm\ - <tr><td>Weight <td>80 g\ - </table>" - 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: "<table width=300> \ - <tr><td width=50%>Resolution <td width=50%>128 x 128 \ - <tr><td>Color Depth <td>16 bit \ - <tr><td>Device Size <td>81 x 43 x 22 mm \ - <tr><td>Weight <td>78 g \ - </table>" - 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 } -} diff --git a/doc/src/declarative/components.qdoc b/doc/src/declarative/components.qdoc index 6564375..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 <Name>.qml files, allowing \e <Name> 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}. @@ -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. */ 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. - */ 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 Binary files differindex a936054..ea0000f 100644 --- a/doc/src/images/declarative-tutorial1.png +++ b/doc/src/images/declarative-tutorial1.png diff --git a/doc/src/images/declarative-tutorial2.png b/doc/src/images/declarative-tutorial2.png Binary files differindex 7871589..0538451 100644 --- a/doc/src/images/declarative-tutorial2.png +++ b/doc/src/images/declarative-tutorial2.png diff --git a/doc/src/images/declarative-tutorial3_animation.gif b/doc/src/images/declarative-tutorial3_animation.gif Binary files differindex 0465e61..d2d4c63 100644 --- a/doc/src/images/declarative-tutorial3_animation.gif +++ b/doc/src/images/declarative-tutorial3_animation.gif 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!" 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) 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); 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()); |