summaryrefslogtreecommitdiffstats
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)
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 54ee99b9d..000000000
--- 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 03be93fd1..000000000
--- 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 992dd8911..f13f42135 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 e5a8bf02c..000000000
--- 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 000000000..873c8b5ca
--- /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 62aa1efe5..000000000
--- 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 d64cdaa78..000000000
--- 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 8ab41cc80..000000000
--- 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 f35f25835..000000000
--- 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 9fdbb6657..000000000
--- 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 5c9f6b343..000000000
--- 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 a15e34c92..000000000
--- 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 8d8bb9bd7..000000000
--- 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 a68e2db77..000000000
--- 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 c37bc0414..000000000
--- 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 6e52db7cf..000000000
--- 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 e7a8d1722..000000000
--- 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 55a069dfc..000000000
--- 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 b588c9586..000000000
--- 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 ac4d4a0d9..000000000
--- 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 74fefab78..000000000
--- 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 665400ccf..000000000
--- 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 1d4a38ab3..000000000
--- 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 4dc6a8cee..000000000
--- 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 606ea9eba..000000000
--- 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 36503018e..000000000
--- 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 8971aa153..c456e1cb6 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 4d013c8b8..2de810d8d 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 e4837ff76..6050d16ec 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 dfac2e006..6050d16ec 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 a5d07d155..2f078ea7f 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 000000000..0ed7e2d6a
--- /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 000000000..cb1878d02
--- /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 000000000..a1fa596f7
--- /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 000000000..0286ac56a
--- /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 57d803b22..000000000
--- 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 66d903eac..000000000
--- 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 8ca347371..1d9e0592f 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 += \