summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2014-10-06 11:41:58 +0200
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2014-10-30 20:23:15 +0100
commitaf73333285751daf822d4f27e2b2560400a7bc29 (patch)
tree96eafc6cd9c34cedcc3f17ca90c56409eedc0053
parent58d767c73837274f7b36458b6171e79c2c0ef82d (diff)
downloadqtquickcontrols-af73333285751daf822d4f27e2b2560400a7bc29.tar.gz
Rewrite the gallery example
A much simpler, scalable and mobile friendly UI. Some of the more complex controls, such as TextArea and TableView, are intentionally left out. They are scrollable on their own, so they wouldn't play nice inside scrollable pages. Furthermore, adding them as standlone pages would increase the amount of tabs too much. Those controls are demonstrated in the Text Editor and Table View examples, respectively. Task-number: QTBUG-41307 Change-Id: Ib3efb346e621e388087f3f14c73b3b54279db280 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
-rw-r--r--examples/quick/controls/gallery/content/Controls.qml280
-rw-r--r--examples/quick/controls/gallery/content/Styles.qml382
-rw-r--r--examples/quick/controls/gallery/gallery.pro25
-rw-r--r--examples/quick/controls/gallery/gallery.qmlproject16
-rw-r--r--examples/quick/controls/gallery/gallery.qrc12
-rw-r--r--examples/quick/controls/gallery/images/bubble.pngbin214 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/button-pressed.pngbin3094 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/button.pngbin3164 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/document-open.pngbin1550 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/document-open@2x.pngbin3355 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/document-save-as.pngbin1837 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/document-save-as@2x.pngbin4500 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/folder_new.pngbin1199 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/go-next.pngbin1219 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/go-previous.pngbin1200 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/preferences-system.pngbin2129 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/process-stop.pngbin1927 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/progress-background.pngbin456 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/progress-fill.pngbin507 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/slider-handle.pngbin3523 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/tab.pngbin9877 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/tab_selected.pngbin10184 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/textfield.pngbin3023 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/toplevel_window.pngbin3690 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/view-refresh.pngbin2024 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/images/window-new@2x.pngbin1900 -> 0 bytes
-rw-r--r--examples/quick/controls/gallery/main.cpp (renamed from examples/quick/controls/gallery/src/main.cpp)3
-rw-r--r--examples/quick/controls/gallery/main.qml84
-rw-r--r--examples/quick/controls/gallery/qml/+android/UI.js (renamed from examples/quick/controls/gallery/content/AboutDialog.qml)14
-rw-r--r--examples/quick/controls/gallery/qml/+ios/UI.js (renamed from examples/quick/controls/gallery/content/ImageViewer.qml)24
-rw-r--r--examples/quick/controls/gallery/qml/+osx/UI.js (renamed from examples/quick/controls/gallery/content/ModelView.qml)53
-rw-r--r--examples/quick/controls/gallery/qml/ButtonPage.qml128
-rw-r--r--examples/quick/controls/gallery/qml/InputPage.qml114
-rw-r--r--examples/quick/controls/gallery/qml/ProgressPage.qml90
-rw-r--r--examples/quick/controls/gallery/qml/UI.js45
-rw-r--r--examples/quick/controls/gallery/resources.qrc24
-rw-r--r--examples/quick/controls/gallery/src/src.pri2
-rw-r--r--examples/quick/controls/shared/shared.pri3
38 files changed, 459 insertions, 840 deletions
diff --git a/examples/quick/controls/gallery/content/Controls.qml b/examples/quick/controls/gallery/content/Controls.qml
deleted file mode 100644
index 54ee99b9..00000000
--- a/examples/quick/controls/gallery/content/Controls.qml
+++ /dev/null
@@ -1,280 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.2
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.1
-import QtQuick.Controls.Styles 1.1
-
-Item {
- id: flickable
- anchors.fill: parent
- enabled: enabledCheck.checked
-
- property int tabPosition: tabPositionGroup.current === r2 ? Qt.BottomEdge : Qt.TopEdge
-
- property string loremIpsum:
- "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor "+
- "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor "+
- "incididunt ut labore et dolore magna aliqua.\n Ut enim ad minim veniam, quis nostrud "+
- "exercitation ullamco laboris nisi ut aliquip ex ea commodo cosnsequat. ";
-
- ListModel {
- id: choices
- ListElement { text: "Banana" }
- ListElement { text: "Orange" }
- ListElement { text: "Apple" }
- ListElement { text: "Coconut" }
- }
-
- RowLayout {
- id: contentRow
- anchors.fill:parent
- anchors.margins: 8
- spacing: 16
- ColumnLayout {
- id: firstColumn
- Layout.minimumWidth: implicitWidth
- Layout.fillWidth: false
- RowLayout {
- id: buttonrow
- Button {
- id: button1
- text: "Button 1"
- tooltip:"This is an interesting tool tip"
- Layout.fillWidth: true
- }
- Button {
- id:button2
- text:"Button 2"
- Layout.fillWidth: true
- menu: Menu {
- MenuItem { text: "This Button" }
- MenuItem { text: "Happens To Have" }
- MenuItem { text: "A Menu Assigned" }
- }
- }
- }
- ComboBox {
- id: combo
- model: choices
- currentIndex: 2
- Layout.fillWidth: true
- }
- ComboBox {
- model: Qt.fontFamilies()
- Layout.fillWidth: true
- currentIndex: 47
- }
- ComboBox {
- id: editableCombo
- editable: true
- model: choices
- Layout.fillWidth: true
- currentIndex: 2
- onAccepted: {
- if (editableCombo.find(currentText) === -1) {
- choices.append({text: editText})
- currentIndex = editableCombo.find(editText)
- }
- }
- }
- RowLayout {
- SpinBox {
- id: t1
- Layout.fillWidth: true
- minimumValue: -50
- value: -20
- }
- SpinBox {
- id: t2
- Layout.fillWidth: true
- }
- }
- TextField {
- id: t3
- placeholderText: "This is a placeholder for a TextField"
- Layout.fillWidth: true
- }
- ProgressBar {
- // normalize value [0.0 .. 1.0]
- value: (slider.value - slider.minimumValue) / (slider.maximumValue - slider.minimumValue)
- Layout.fillWidth: true
- }
- ProgressBar {
- indeterminate: true
- Layout.fillWidth: true
- }
- Slider {
- id: slider
- value: 0.5
- Layout.fillWidth: true
- tickmarksEnabled: tickmarkCheck.checked
- stepSize: tickmarksEnabled ? 0.1 : 0
- }
- MouseArea {
- id: busyCheck
- Layout.fillWidth: true
- Layout.fillHeight: true
- hoverEnabled:true
- Layout.preferredHeight: busyIndicator.height
- BusyIndicator {
- id: busyIndicator
- running: busyCheck.containsMouse
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
- ColumnLayout {
- id: rightcol
- Layout.fillWidth: true
- anchors {
- top: parent.top
- bottom: parent.bottom
- }
-
- GroupBox {
- id: group1
- title: "CheckBox"
- Layout.fillWidth: true
- RowLayout {
- Layout.fillWidth: true
- CheckBox {
- id: frameCheckbox
- text: "Text frame"
- checked: true
- Layout.minimumWidth: 100
- }
- CheckBox {
- id: tickmarkCheck
- text: "Tickmarks"
- checked: false
- Layout.minimumWidth: 100
- }
- CheckBox {
- id: wrapCheck
- text: "Word wrap"
- checked: true
- Layout.minimumWidth: 100
- }
- }
- }
- GroupBox {
- id: group2
- title:"Tab Position"
- Layout.fillWidth: true
- RowLayout {
- ExclusiveGroup { id: tabPositionGroup }
- RadioButton {
- id: r1
- text: "Top"
- checked: true
- exclusiveGroup: tabPositionGroup
- Layout.minimumWidth: 100
- }
- RadioButton {
- id: r2
- text: "Bottom"
- exclusiveGroup: tabPositionGroup
- Layout.minimumWidth: 100
- }
- }
- }
-
- TextArea {
- id: area
- frameVisible: frameCheckbox.checked
- text: loremIpsum + loremIpsum
- textFormat: Qt.RichText
- wrapMode: wrapCheck.checked ? TextEdit.WordWrap : TextEdit.NoWrap
- Layout.fillWidth: true
- Layout.fillHeight: true
- menu: editmenu
- }
- }
- }
-
- ExclusiveGroup {
- id: textFormatGroup
-
- Action {
- id: a1
- text: "Align &Left"
- checkable: true
- Component.onCompleted: checked = true
- }
-
- Action {
- id: a2
- text: "&Center"
- checkable: true
- }
-
- Action {
- id: a3
- text: "Align &Right"
- checkable: true
- }
- }
-
- Component {
- id: editmenu
- Menu {
- MenuItem { action: cutAction }
- MenuItem { action: copyAction }
- MenuItem { action: pasteAction }
- MenuSeparator {}
- Menu {
- title: "Text &Format"
- MenuItem { action: a1 }
- MenuItem { action: a2 }
- MenuItem { action: a3 }
- MenuSeparator { }
- MenuItem { text: "Allow &Hyphenation"; checkable: true }
- }
- Menu {
- title: "Font &Style"
- MenuItem { text: "&Bold"; checkable: true }
- MenuItem { text: "&Italic"; checkable: true }
- MenuItem { text: "&Underline"; checkable: true }
- }
- }
- }
-}
diff --git a/examples/quick/controls/gallery/content/Styles.qml b/examples/quick/controls/gallery/content/Styles.qml
deleted file mode 100644
index 03be93fd..00000000
--- a/examples/quick/controls/gallery/content/Styles.qml
+++ /dev/null
@@ -1,382 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Quick Controls module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.2
-import QtQuick.Controls 1.2
-import QtQuick.Controls.Styles 1.1
-import QtQuick.Particles 2.0
-import QtQuick.Layouts 1.0
-
-Item {
- id: root
- width: 300
- height: 200
-
- property int columnWidth: 120
- GridLayout {
- rowSpacing: 12
- columnSpacing: 30
- anchors.top: parent.top
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.margins: 30
-
- Button {
- text: "Push me"
- style: ButtonStyle { }
- implicitWidth: columnWidth
- }
- Button {
- text: "Push me"
- style: ButtonStyle {
- background: BorderImage {
- source: control.pressed ? "../images/button-pressed.png" : "../images/button.png"
- border.left: 4 ; border.right: 4 ; border.top: 4 ; border.bottom: 4
- }
- }
- implicitWidth: columnWidth
- }
- Button {
- text: "Push me"
- style: buttonStyle
- implicitWidth: columnWidth
- }
-
- TextField {
- Layout.row: 1
- style: TextFieldStyle { }
- implicitWidth: columnWidth
- }
- TextField {
- style: TextFieldStyle {
- background: BorderImage {
- source: "../images/textfield.png"
- border.left: 4 ; border.right: 4 ; border.top: 4 ; border.bottom: 4
- }
- }
- implicitWidth: columnWidth
- }
- TextField {
- style: textfieldStyle
- implicitWidth: columnWidth
- }
-
- Slider {
- id: slider1
- Layout.row: 2
- value: 0.5
- implicitWidth: columnWidth
- style: SliderStyle { }
- }
- Slider {
- id: slider2
- value: 0.5
- implicitWidth: columnWidth
- style: SliderStyle {
- groove: BorderImage {
- height: 6
- border.top: 1
- border.bottom: 1
- source: "../images/progress-background.png"
- border.left: 6
- border.right: 6
- BorderImage {
- anchors.verticalCenter: parent.verticalCenter
- source: "../images/progress-fill.png"
- border.left: 5 ; border.top: 1
- border.right: 5 ; border.bottom: 1
- width: styleData.handlePosition
- height: parent.height
- }
- }
- handle: Item {
- width: 13
- height: 13
- Image {
- anchors.centerIn: parent
- source: "../images/slider-handle.png"
- }
- }
- }
- }
- Slider {
- id: slider3
- value: 0.5
- implicitWidth: columnWidth
- style: sliderStyle
- }
-
- ProgressBar {
- Layout.row: 3
- value: slider1.value
- implicitWidth: columnWidth
- style: ProgressBarStyle{ }
- }
- ProgressBar {
- value: slider2.value
- implicitWidth: columnWidth
- style: progressBarStyle
- }
- ProgressBar {
- value: slider3.value
- implicitWidth: columnWidth
- style: progressBarStyle2
- }
-
- CheckBox {
- text: "CheckBox"
- style: CheckBoxStyle{}
- Layout.row: 4
- implicitWidth: columnWidth
- }
- RadioButton {
- style: RadioButtonStyle{}
- text: "RadioButton"
- implicitWidth: columnWidth
- }
-
- ComboBox {
- model: ["Paris", "Oslo", "New York"]
- style: ComboBoxStyle{}
- implicitWidth: columnWidth
- }
-
- TabView {
- Layout.row: 5
- Layout.columnSpan: 3
- Layout.fillWidth: true
- implicitHeight: 30
- Tab { title: "One" ; Item {}}
- Tab { title: "Two" ; Item {}}
- Tab { title: "Three" ; Item {}}
- Tab { title: "Four" ; Item {}}
- style: TabViewStyle {}
- }
-
- TabView {
- Layout.row: 6
- Layout.columnSpan: 3
- Layout.fillWidth: true
- implicitHeight: 30
- Tab { title: "One" ; Item {}}
- Tab { title: "Two" ; Item {}}
- Tab { title: "Three" ; Item {}}
- Tab { title: "Four" ; Item {}}
- style: tabViewStyle
- }
- }
-
- // Style delegates:
-
- property Component buttonStyle: ButtonStyle {
- background: Rectangle {
- implicitHeight: 22
- implicitWidth: columnWidth
- color: control.pressed ? "darkGray" : control.activeFocus ? "#cdd" : "#ccc"
- antialiasing: true
- border.color: "gray"
- radius: height/2
- Rectangle {
- anchors.fill: parent
- anchors.margins: 1
- color: "transparent"
- antialiasing: true
- visible: !control.pressed
- border.color: "#aaffffff"
- radius: height/2
- }
- }
- }
-
- property Component textfieldStyle: TextFieldStyle {
- background: Rectangle {
- implicitWidth: columnWidth
- implicitHeight: 22
- color: "#f0f0f0"
- antialiasing: true
- border.color: "gray"
- radius: height/2
- Rectangle {
- anchors.fill: parent
- anchors.margins: 1
- color: "transparent"
- antialiasing: true
- border.color: "#aaffffff"
- radius: height/2
- }
- }
- }
-
- property Component sliderStyle: SliderStyle {
- handle: Rectangle {
- width: 18
- height: 18
- color: control.pressed ? "darkGray" : "lightGray"
- border.color: "gray"
- antialiasing: true
- radius: height/2
- Rectangle {
- anchors.fill: parent
- anchors.margins: 1
- color: "transparent"
- antialiasing: true
- border.color: "#eee"
- radius: height/2
- }
- }
-
- groove: Rectangle {
- height: 8
- implicitWidth: columnWidth
- implicitHeight: 22
-
- antialiasing: true
- color: "#ccc"
- border.color: "#777"
- radius: height/2
- Rectangle {
- anchors.fill: parent
- anchors.margins: 1
- color: "transparent"
- antialiasing: true
- border.color: "#66ffffff"
- radius: height/2
- }
- }
- }
-
- property Component progressBarStyle: ProgressBarStyle {
- background: BorderImage {
- source: "../images/progress-background.png"
- border.left: 2 ; border.right: 2 ; border.top: 2 ; border.bottom: 2
- }
- progress: Item {
- clip: true
- BorderImage {
- anchors.fill: parent
- anchors.rightMargin: (control.value < control.maximumValue) ? -4 : 0
- source: "../images/progress-fill.png"
- border.left: 10 ; border.right: 10
- Rectangle {
- width: 1
- color: "#a70"
- opacity: 0.8
- anchors.top: parent.top
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 1
- anchors.right: parent.right
- visible: control.value < control.maximumValue
- anchors.rightMargin: -parent.anchors.rightMargin
- }
- }
- ParticleSystem{ id: bubbles; running: visible }
- ImageParticle{
- id: fireball
- system: bubbles
- source: "../images/bubble.png"
- opacity: 0.7
- }
- Emitter{
- system: bubbles
- anchors.bottom: parent.bottom
- anchors.margins: 4
- anchors.bottomMargin: -4
- anchors.left: parent.left
- anchors.right: parent.right
- size: 4
- sizeVariation: 4
- acceleration: PointDirection{ y: -6; xVariation: 3 }
- emitRate: 6 * control.value
- lifeSpan: 3000
- }
- }
- }
-
- property Component progressBarStyle2: ProgressBarStyle {
- background: Rectangle {
- implicitWidth: columnWidth
- implicitHeight: 24
- color: "#f0f0f0"
- border.color: "gray"
- }
- progress: Rectangle {
- color: "#ccc"
- border.color: "gray"
- Rectangle {
- color: "transparent"
- border.color: "#44ffffff"
- anchors.fill: parent
- anchors.margins: 1
- }
- }
- }
-
- property Component tabViewStyle: TabViewStyle {
- tabOverlap: 16
- frameOverlap: 4
- tabsMovable: true
-
- frame: Rectangle {
- gradient: Gradient{
- GradientStop { color: "#e5e5e5" ; position: 0 }
- GradientStop { color: "#e0e0e0" ; position: 1 }
- }
- border.color: "#898989"
- Rectangle { anchors.fill: parent ; anchors.margins: 1 ; border.color: "white" ; color: "transparent" }
- }
- tab: Item {
- property int totalOverlap: tabOverlap * (control.count - 1)
- implicitWidth: Math.min ((styleData.availableWidth + totalOverlap)/control.count - 4, image.sourceSize.width)
- implicitHeight: image.sourceSize.height
- BorderImage {
- id: image
- anchors.fill: parent
- source: styleData.selected ? "../images/tab_selected.png" : "../images/tab.png"
- border.left: 30
- smooth: false
- border.right: 30
- }
- Text {
- text: styleData.title
- anchors.centerIn: parent
- }
- }
- leftCorner: Item { implicitWidth: 12 }
- }
-}
diff --git a/examples/quick/controls/gallery/gallery.pro b/examples/quick/controls/gallery/gallery.pro
index 992dd891..f13f4213 100644
--- a/examples/quick/controls/gallery/gallery.pro
+++ b/examples/quick/controls/gallery/gallery.pro
@@ -1,17 +1,20 @@
-QT += qml quick
+TEMPLATE = app
TARGET = gallery
-!no_desktop: QT += widgets
-include(src/src.pri)
-include(../shared/shared.pri)
+SOURCES += \
+ main.cpp
+
+RESOURCES += \
+ gallery.qrc
OTHER_FILES += \
main.qml \
- content/AboutDialog.qml \
- content/Controls.qml \
- content/ImageViewer.qml \
- content/ModelView.qml \
- content/Styles.qml
+ qml/ButtonPage.qml \
+ qml/InputPage.qml \
+ qml/ProgressPage.qml \
+ qml/UI.js \
+ qml/+android/UI.js \
+ qml/+ios/UI.js \
+ qml/+osx/UI.js
-RESOURCES += \
- resources.qrc
+include(../shared/shared.pri)
diff --git a/examples/quick/controls/gallery/gallery.qmlproject b/examples/quick/controls/gallery/gallery.qmlproject
deleted file mode 100644
index e5a8bf02..00000000
--- a/examples/quick/controls/gallery/gallery.qmlproject
+++ /dev/null
@@ -1,16 +0,0 @@
-import QmlProject 1.1
-
-Project {
- mainFile: "main.qml"
-
- /* Include .qml, .js, and image files from current directory and subdirectories */
- QmlFiles {
- directory: "."
- }
- JavaScriptFiles {
- directory: "."
- }
- ImageFiles {
- directory: "."
- }
-}
diff --git a/examples/quick/controls/gallery/gallery.qrc b/examples/quick/controls/gallery/gallery.qrc
new file mode 100644
index 00000000..873c8b5c
--- /dev/null
+++ b/examples/quick/controls/gallery/gallery.qrc
@@ -0,0 +1,12 @@
+<RCC>
+ <qresource prefix="/">
+ <file>main.qml</file>
+ <file>qml/ButtonPage.qml</file>
+ <file>qml/InputPage.qml</file>
+ <file>qml/ProgressPage.qml</file>
+ <file>qml/UI.js</file>
+ <file>qml/+android/UI.js</file>
+ <file>qml/+ios/UI.js</file>
+ <file>qml/+osx/UI.js</file>
+ </qresource>
+</RCC>
diff --git a/examples/quick/controls/gallery/images/bubble.png b/examples/quick/controls/gallery/images/bubble.png
deleted file mode 100644
index 62aa1efe..00000000
--- a/examples/quick/controls/gallery/images/bubble.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/button-pressed.png b/examples/quick/controls/gallery/images/button-pressed.png
deleted file mode 100644
index d64cdaa7..00000000
--- a/examples/quick/controls/gallery/images/button-pressed.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/button.png b/examples/quick/controls/gallery/images/button.png
deleted file mode 100644
index 8ab41cc8..00000000
--- a/examples/quick/controls/gallery/images/button.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/document-open.png b/examples/quick/controls/gallery/images/document-open.png
deleted file mode 100644
index f35f2583..00000000
--- a/examples/quick/controls/gallery/images/document-open.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/document-open@2x.png b/examples/quick/controls/gallery/images/document-open@2x.png
deleted file mode 100644
index 9fdbb665..00000000
--- a/examples/quick/controls/gallery/images/document-open@2x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/document-save-as.png b/examples/quick/controls/gallery/images/document-save-as.png
deleted file mode 100644
index 5c9f6b34..00000000
--- a/examples/quick/controls/gallery/images/document-save-as.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/document-save-as@2x.png b/examples/quick/controls/gallery/images/document-save-as@2x.png
deleted file mode 100644
index a15e34c9..00000000
--- a/examples/quick/controls/gallery/images/document-save-as@2x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/folder_new.png b/examples/quick/controls/gallery/images/folder_new.png
deleted file mode 100644
index 8d8bb9bd..00000000
--- a/examples/quick/controls/gallery/images/folder_new.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/go-next.png b/examples/quick/controls/gallery/images/go-next.png
deleted file mode 100644
index a68e2db7..00000000
--- a/examples/quick/controls/gallery/images/go-next.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/go-previous.png b/examples/quick/controls/gallery/images/go-previous.png
deleted file mode 100644
index c37bc041..00000000
--- a/examples/quick/controls/gallery/images/go-previous.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/preferences-system.png b/examples/quick/controls/gallery/images/preferences-system.png
deleted file mode 100644
index 6e52db7c..00000000
--- a/examples/quick/controls/gallery/images/preferences-system.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/process-stop.png b/examples/quick/controls/gallery/images/process-stop.png
deleted file mode 100644
index e7a8d172..00000000
--- a/examples/quick/controls/gallery/images/process-stop.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/progress-background.png b/examples/quick/controls/gallery/images/progress-background.png
deleted file mode 100644
index 55a069df..00000000
--- a/examples/quick/controls/gallery/images/progress-background.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/progress-fill.png b/examples/quick/controls/gallery/images/progress-fill.png
deleted file mode 100644
index b588c958..00000000
--- a/examples/quick/controls/gallery/images/progress-fill.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/slider-handle.png b/examples/quick/controls/gallery/images/slider-handle.png
deleted file mode 100644
index ac4d4a0d..00000000
--- a/examples/quick/controls/gallery/images/slider-handle.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/tab.png b/examples/quick/controls/gallery/images/tab.png
deleted file mode 100644
index 74fefab7..00000000
--- a/examples/quick/controls/gallery/images/tab.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/tab_selected.png b/examples/quick/controls/gallery/images/tab_selected.png
deleted file mode 100644
index 665400cc..00000000
--- a/examples/quick/controls/gallery/images/tab_selected.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/textfield.png b/examples/quick/controls/gallery/images/textfield.png
deleted file mode 100644
index 1d4a38ab..00000000
--- a/examples/quick/controls/gallery/images/textfield.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/toplevel_window.png b/examples/quick/controls/gallery/images/toplevel_window.png
deleted file mode 100644
index 4dc6a8ce..00000000
--- a/examples/quick/controls/gallery/images/toplevel_window.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/view-refresh.png b/examples/quick/controls/gallery/images/view-refresh.png
deleted file mode 100644
index 606ea9eb..00000000
--- a/examples/quick/controls/gallery/images/view-refresh.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/images/window-new@2x.png b/examples/quick/controls/gallery/images/window-new@2x.png
deleted file mode 100644
index 36503018..00000000
--- a/examples/quick/controls/gallery/images/window-new@2x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/controls/gallery/src/main.cpp b/examples/quick/controls/gallery/main.cpp
index 8971aa15..c456e1cb 100644
--- a/examples/quick/controls/gallery/src/main.cpp
+++ b/examples/quick/controls/gallery/main.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
@@ -41,7 +41,6 @@
#include "qtquickcontrolsapplication.h"
#include <QtQml/QQmlApplicationEngine>
#include <QtGui/QSurfaceFormat>
-#include <QtQuick/QQuickWindow>
int main(int argc, char *argv[])
{
diff --git a/examples/quick/controls/gallery/main.qml b/examples/quick/controls/gallery/main.qml
index 4d013c8b..2de810d8 100644
--- a/examples/quick/controls/gallery/main.qml
+++ b/examples/quick/controls/gallery/main.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
@@ -39,37 +39,22 @@
****************************************************************************/
import QtQuick 2.2
+import QtQuick.Layouts 1.1
+import QtQuick.Dialogs 1.1
import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.0
-import QtQuick.Dialogs 1.0
-import "content"
+import "qml/UI.js" as UI
+import "qml"
ApplicationWindow {
visible: true
title: "Qt Quick Controls Gallery"
- width: 640
- height: 420
- minimumHeight: 400
- minimumWidth: 600
-
- ImageViewer { id: imageViewer }
-
- FileDialog {
- id: fileDialog
- nameFilters: [ "Image files (*.png *.jpg)" ]
- onAccepted: imageViewer.open(fileUrl)
- }
-
- AboutDialog { id: aboutDialog }
-
- Action {
- id: openAction
- text: "&Open"
- shortcut: StandardKey.Open
- iconSource: "images/document-open.png"
- onTriggered: fileDialog.open()
- tooltip: "Open an image"
+ MessageDialog {
+ id: aboutDialog
+ icon: StandardIcon.Information
+ title: "About"
+ text: "Qt Quick Controls Gallery"
+ informativeText: "This example demonstrates most of the available Qt Quick Controls."
}
Action {
@@ -100,20 +85,15 @@ ApplicationWindow {
}
toolBar: ToolBar {
- id: toolbar
RowLayout {
- id: toolbarLayout
- spacing: 0
anchors.fill: parent
- ToolButton { action: openAction }
- ToolButton {
- Accessible.name: "Save as"
- iconSource: "images/document-save-as.png"
- tooltip: "(Pretend to) Save as..."
+ anchors.margins: spacing
+ Label {
+ text: UI.label
}
Item { Layout.fillWidth: true }
CheckBox {
- id: enabledCheck
+ id: enabler
text: "Enabled"
checked: true
}
@@ -123,7 +103,6 @@ ApplicationWindow {
menuBar: MenuBar {
Menu {
title: "&File"
- MenuItem { action: openAction }
MenuItem {
text: "E&xit"
shortcut: StandardKey.Quit
@@ -132,6 +111,7 @@ ApplicationWindow {
}
Menu {
title: "&Edit"
+ visible: tabView.currentIndex == 2
MenuItem { action: cutAction }
MenuItem { action: copyAction }
MenuItem { action: pasteAction }
@@ -146,24 +126,34 @@ ApplicationWindow {
}
TabView {
- id:frame
- enabled: enabledCheck.checked
- tabPosition: controlPage.item ? controlPage.item.tabPosition : Qt.TopEdge
+ id: tabView
+
anchors.fill: parent
- anchors.margins: Qt.platform.os === "osx" ? 12 : 2
+ anchors.margins: UI.margin
+ tabPosition: UI.tabPosition
+
+ Layout.minimumWidth: 360
+ Layout.minimumHeight: 360
+ Layout.preferredWidth: 480
+ Layout.preferredHeight: 640
Tab {
- id: controlPage
- title: "Controls"
- Controls { }
+ title: "Buttons"
+ ButtonPage {
+ enabled: enabler.checked
+ }
}
Tab {
- title: "Itemviews"
- ModelView { }
+ title: "Progress"
+ ProgressPage {
+ enabled: enabler.checked
+ }
}
Tab {
- title: "Styles"
- Styles { anchors.fill: parent }
+ title: "Input"
+ InputPage {
+ enabled: enabler.checked
+ }
}
}
}
diff --git a/examples/quick/controls/gallery/content/AboutDialog.qml b/examples/quick/controls/gallery/qml/+android/UI.js
index e4837ff7..6050d16e 100644
--- a/examples/quick/controls/gallery/content/AboutDialog.qml
+++ b/examples/quick/controls/gallery/qml/+android/UI.js
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
@@ -38,12 +38,8 @@
**
****************************************************************************/
-import QtQuick 2.2
-import QtQuick.Dialogs 1.1
+.pragma library
-MessageDialog {
- icon: StandardIcon.Information
- text: "QtQuick.Controls gallery example"
- detailedText: "This example demonstrates most of the available Qt Quick Controls."
- title: "About Gallery"
-}
+var margin = 0
+var tabPosition = Qt.BottomEdge
+var label = "Gallery"
diff --git a/examples/quick/controls/gallery/content/ImageViewer.qml b/examples/quick/controls/gallery/qml/+ios/UI.js
index dfac2e00..6050d16e 100644
--- a/examples/quick/controls/gallery/content/ImageViewer.qml
+++ b/examples/quick/controls/gallery/qml/+ios/UI.js
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
@@ -38,22 +38,8 @@
**
****************************************************************************/
-import QtQuick 2.2
-import QtQuick.Window 2.1
+.pragma library
-Window {
- id: imageViewer
- minimumWidth: viewerImage.width
- minimumHeight: viewerImage.height
- function open(source) {
- viewerImage.source = source
- width = viewerImage.implicitWidth + 20
- height = viewerImage.implicitHeight + 20
- title = source
- visible = true
- }
- Image {
- id: viewerImage
- anchors.centerIn: parent
- }
-}
+var margin = 0
+var tabPosition = Qt.BottomEdge
+var label = "Gallery"
diff --git a/examples/quick/controls/gallery/content/ModelView.qml b/examples/quick/controls/gallery/qml/+osx/UI.js
index a5d07d15..2f078ea7 100644
--- a/examples/quick/controls/gallery/content/ModelView.qml
+++ b/examples/quick/controls/gallery/qml/+osx/UI.js
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
@@ -38,51 +38,8 @@
**
****************************************************************************/
-import QtQuick 2.2
-import QtQuick.Controls 1.2
+.pragma library
-Item {
- id: root
- width: 600
- height: 300
- anchors.fill: parent
- anchors.margins: Qt.platform.os === "osx" ? 12 : 6
-
- ListModel {
- id: dummyModel
- Component.onCompleted: {
- for (var i = 0 ; i < 100 ; ++i) {
- append({"index": i, "title": "A title " + i, "imagesource" :"http://someurl.com", "credit" : "N/A"})
- }
- }
- }
-
- TableView{
- model: dummyModel
- anchors.fill: parent
-
- TableViewColumn {
- role: "index"
- title: "#"
- width: 36
- resizable: false
- movable: false
- }
- TableViewColumn {
- role: "title"
- title: "Title"
- width: 120
- }
- TableViewColumn {
- role: "credit"
- title: "Credit"
- width: 120
- }
- TableViewColumn {
- role: "imagesource"
- title: "Image source"
- width: 200
- visible: true
- }
- }
-}
+var margin = 12
+var tabPosition = Qt.TopEdge
+var label = ""
diff --git a/examples/quick/controls/gallery/qml/ButtonPage.qml b/examples/quick/controls/gallery/qml/ButtonPage.qml
new file mode 100644
index 00000000..0ed7e2d6
--- /dev/null
+++ b/examples/quick/controls/gallery/qml/ButtonPage.qml
@@ -0,0 +1,128 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 1.2
+
+ScrollView {
+ id: page
+
+ horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
+
+ Item {
+ id: content
+
+ width: Math.max(page.viewport.width, grid.implicitWidth + 2 * grid.rowSpacing)
+ height: Math.max(page.viewport.height, grid.implicitHeight + 2 * grid.columnSpacing)
+
+ GridLayout {
+ id: grid
+
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: grid.rowSpacing
+ anchors.rightMargin: grid.rowSpacing
+ anchors.topMargin: grid.columnSpacing
+
+ columns: page.width < page.height ? 1 : 2
+
+ GroupBox {
+ title: "Button"
+ Layout.fillWidth: true
+ Layout.columnSpan: grid.columns
+ RowLayout {
+ anchors.fill: parent
+ Button { text: "OK"; isDefault: true }
+ Button { text: "Cancel" }
+ Item { Layout.fillWidth: true }
+ Button {
+ text: "Attach"
+ menu: Menu {
+ MenuItem { text: "Image" }
+ MenuItem { text: "Document" }
+ }
+ }
+ }
+ }
+
+ GroupBox {
+ title: "CheckBox"
+ Layout.fillWidth: true
+ ColumnLayout {
+ anchors.fill: parent
+ CheckBox { text: "E-mail"; checked: true }
+ CheckBox { text: "Calendar"; checked: true }
+ CheckBox { text: "Contacts" }
+ }
+ }
+
+ GroupBox {
+ title: "RadioButton"
+ Layout.fillWidth: true
+ ColumnLayout {
+ anchors.fill: parent
+ ExclusiveGroup { id: radioGroup }
+ RadioButton { text: "Portrait"; exclusiveGroup: radioGroup }
+ RadioButton { text: "Landscape"; exclusiveGroup: radioGroup }
+ RadioButton { text: "Automatic"; exclusiveGroup: radioGroup; checked: true }
+ }
+ }
+
+ GroupBox {
+ title: "Switch"
+ Layout.fillWidth: true
+ Layout.columnSpan: grid.columns
+ ColumnLayout {
+ anchors.fill: parent
+ RowLayout {
+ Label { text: "Wi-Fi"; Layout.fillWidth: true }
+ Switch { checked: true }
+ }
+ RowLayout {
+ Label { text: "Bluetooth"; Layout.fillWidth: true }
+ Switch { checked: false }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/quick/controls/gallery/qml/InputPage.qml b/examples/quick/controls/gallery/qml/InputPage.qml
new file mode 100644
index 00000000..cb1878d0
--- /dev/null
+++ b/examples/quick/controls/gallery/qml/InputPage.qml
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 1.2
+
+ScrollView {
+ id: page
+
+ horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
+
+ Item {
+ id: content
+
+ width: Math.max(page.viewport.width, column.implicitWidth + 2 * column.spacing)
+ height: Math.max(page.viewport.height, column.implicitHeight + 2 * column.spacing)
+
+ ColumnLayout {
+ id: column
+
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: column.spacing
+
+ GroupBox {
+ title: "TextField"
+ Layout.fillWidth: true
+ ColumnLayout {
+ anchors.fill: parent
+ TextField { placeholderText: "..."; Layout.fillWidth: true; z: 1 }
+ TextField { placeholderText: "Password"; echoMode: TextInput.Password; Layout.fillWidth: true }
+ }
+ }
+
+ GroupBox {
+ title: "ComboBox"
+ Layout.fillWidth: true
+ ColumnLayout {
+ anchors.fill: parent
+ ComboBox {
+ model: Qt.fontFamilies()
+ Layout.fillWidth: true
+ }
+ ComboBox {
+ editable: true
+ model: ListModel {
+ id: listModel
+ ListElement { text: "Apple" }
+ ListElement { text: "Banana" }
+ ListElement { text: "Coconut" }
+ ListElement { text: "Orange" }
+ }
+ onAccepted: {
+ if (find(currentText) === -1) {
+ listModel.append({text: editText})
+ currentIndex = find(editText)
+ }
+ }
+ Layout.fillWidth: true
+ }
+ }
+ }
+
+ GroupBox {
+ title: "SpinBox"
+ Layout.fillWidth: true
+ ColumnLayout {
+ anchors.fill: parent
+ SpinBox { value: 99; Layout.fillWidth: true; z: 1 }
+ SpinBox { decimals: 2; Layout.fillWidth: true }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/quick/controls/gallery/qml/ProgressPage.qml b/examples/quick/controls/gallery/qml/ProgressPage.qml
new file mode 100644
index 00000000..a1fa596f
--- /dev/null
+++ b/examples/quick/controls/gallery/qml/ProgressPage.qml
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 1.2
+
+ScrollView {
+ id: page
+
+ horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
+
+ Item {
+ id: content
+
+ width: Math.max(page.viewport.width, column.implicitWidth + 2 * column.spacing)
+ height: Math.max(page.viewport.height, column.implicitHeight + 2 * column.spacing)
+
+ ColumnLayout {
+ id: column
+
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: column.spacing
+
+ GroupBox {
+ title: "ProgressBar"
+ Layout.fillWidth: true
+ ColumnLayout {
+ anchors.fill: parent
+ ProgressBar { indeterminate: true; Layout.fillWidth: true }
+ ProgressBar { value: slider.value; Layout.fillWidth: true }
+ }
+ }
+
+ GroupBox {
+ title: "Slider"
+ Layout.fillWidth: true
+ ColumnLayout {
+ anchors.fill: parent
+ Slider { id: slider; value: 0.5; Layout.fillWidth: true }
+ }
+ }
+
+ GroupBox {
+ title: "BusyIndicator"
+ Layout.fillWidth: true
+ BusyIndicator { running: true }
+ }
+ }
+ }
+}
diff --git a/examples/quick/controls/gallery/qml/UI.js b/examples/quick/controls/gallery/qml/UI.js
new file mode 100644
index 00000000..0286ac56
--- /dev/null
+++ b/examples/quick/controls/gallery/qml/UI.js
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+.pragma library
+
+var margin = 2
+var tabPosition = Qt.TopEdge
+var label = ""
diff --git a/examples/quick/controls/gallery/resources.qrc b/examples/quick/controls/gallery/resources.qrc
deleted file mode 100644
index 57d803b2..00000000
--- a/examples/quick/controls/gallery/resources.qrc
+++ /dev/null
@@ -1,24 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>main.qml</file>
- <file>content/AboutDialog.qml</file>
- <file>content/Controls.qml</file>
- <file>content/ImageViewer.qml</file>
- <file>content/ModelView.qml</file>
- <file>content/Styles.qml</file>
- <file>images/document-open.png</file>
- <file>images/document-open@2x.png</file>
- <file>images/document-save-as.png</file>
- <file>images/document-save-as@2x.png</file>
- <file>images/folder_new.png</file>
- <file>images/tab.png</file>
- <file>images/tab_selected.png</file>
- <file>images/bubble.png</file>
- <file>images/button-pressed.png</file>
- <file>images/button.png</file>
- <file>images/progress-background.png</file>
- <file>images/progress-fill.png</file>
- <file>images/textfield.png</file>
- <file>images/slider-handle.png</file>
- </qresource>
-</RCC>
diff --git a/examples/quick/controls/gallery/src/src.pri b/examples/quick/controls/gallery/src/src.pri
deleted file mode 100644
index 66d903ea..00000000
--- a/examples/quick/controls/gallery/src/src.pri
+++ /dev/null
@@ -1,2 +0,0 @@
-SOURCES += \
- $$PWD/main.cpp
diff --git a/examples/quick/controls/shared/shared.pri b/examples/quick/controls/shared/shared.pri
index 8ca34737..1d9e0592 100644
--- a/examples/quick/controls/shared/shared.pri
+++ b/examples/quick/controls/shared/shared.pri
@@ -1,3 +1,6 @@
+QT += quick
+!no_desktop: QT += widgets
+
INCLUDEPATH += $$PWD
SOURCES += \