diff options
Diffstat (limited to 'basicsuite/enterprise-gallery/main.qml')
-rw-r--r-- | basicsuite/enterprise-gallery/main.qml | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/basicsuite/enterprise-gallery/main.qml b/basicsuite/enterprise-gallery/main.qml new file mode 100644 index 0000000..f1f2e17 --- /dev/null +++ b/basicsuite/enterprise-gallery/main.qml @@ -0,0 +1,254 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtQuick Enterprise Controls Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtGraphicalEffects 1.0 +import QtQuick.Controls 1.0 +import QtQuick.Controls.Styles 1.0 +import QtQuick.Controls.Private 1.0 +import QtQuick.Dialogs 1.0 +import QtQuick.Enterprise.Controls 1.0 +import QtQuick.Enterprise.Controls.Styles 1.0 +import QtQuick.Window 2.1 + +Rectangle { + id: root + visible: true + width: 480 + height: 800 + + color: "#161616" + //title: "QtQuick Enterprise Controls Demo" + + function toPixels(percentage) { + return percentage * Math.min(root.width, root.height); + } + + property bool isScreenPortrait: height > width + property color fontColor: "white" + readonly property color lightBackgroundColor: "#ccc" + readonly property color darkBackgroundColor: "#161616" + property real customizerPropertySpacing: 10 + property real colorPickerRowSpacing: 8 + + property Component circularGauge: CircularGaugeView {} + + property Component dial: ControlView { + darkBackground: false + + control: Dial { + id: dial + width: root.toPixels(0.3) + height: width + + /*! + Determines whether the dial animates its rotation to the new value when + a single click or touch is received on the dial. + */ + property bool animate: customizerItem.animate + + Behavior on value { + enabled: dial.animate && !dial.pressed + NumberAnimation { + duration: 300 + easing.type: Easing.OutSine + } + } + + Text { + text: "Volume" + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: dial.bottom + anchors.topMargin: 10 + font.pixelSize: root.toPixels(0.045) + color: "#4e4e4e" + styleColor: "#ffffff" + style: Text.Raised + } + } + + customizer: Column { + spacing: customizerPropertySpacing + + property alias animate: animateCheckBox.checked + + CustomizerLabel { + text: "Animate" + color: "black" + } + + CustomizerCheckBox { + id: animateCheckBox + } + } + } + + property Component delayButton: ControlView { + darkBackground: false + + control: DelayButton { + text: "Alarm" + anchors.centerIn: parent + width: toPixels(0.3) + height: width + } + } + + property Component gauge: ControlView { + id: gaugeView + control: Gauge { + id: gauge + width: orientation === Qt.Vertical ? root.toPixels(0.15) : gaugeView.controlBounds.width * 0.65 + height: orientation === Qt.Vertical ? root.toPixels(0.65) : gaugeView.controlBounds.height * 0.15 + anchors.centerIn: parent + + minimumValue: 0 + value: customizerItem.value + maximumValue: 100 + orientation: customizerItem.orientationFlag ? Qt.Vertical : Qt.Horizontal + tickmarkAlignment: orientation === Qt.Vertical + ? (customizerItem.alignFlag ? Qt.AlignLeft : Qt.AlignRight) + : (customizerItem.alignFlag ? Qt.AlignTop : Qt.AlignBottom) + } + + customizer: Column { + spacing: customizerPropertySpacing + + property alias value: valueSlider.value + property alias orientationFlag: orientationCheckBox.checked + property alias alignFlag: alignCheckBox.checked + + CustomizerLabel { + text: "Value" + } + + CustomizerSlider { + id: valueSlider + minimumValue: 0 + value: 50 + maximumValue: 100 + } + + CustomizerLabel { + text: "Vertical orientation" + } + + CustomizerCheckBox { + id: orientationCheckBox + checked: true + } + + CustomizerLabel { + text: controlItem.orientation === Qt.Vertical ? "Left align" : "Top align" + } + + CustomizerCheckBox { + id: alignCheckBox + checked: true + } + } + } + + property Component toggleButton: ControlView { + darkBackground: false + + control: ToggleButton { + text: checked ? "On" : "Off" + width: toPixels(0.3) + height: width + anchors.centerIn: parent + } + } + + property Component pieMenu: PieMenuControlView {} + + FontLoader { + id: openSans + Component.onCompleted: { + // QTBUG-35909 + if (Qt.platform.os === "ios") + name = "Open Sans" + else + source = "fonts/OpenSans-Regular.ttf" + } + } + + property var componentMap: { + "CircularGauge": circularGauge, + "DelayButton": delayButton, + "Dial": dial, + "Gauge": gauge, + "PieMenu": pieMenu, + "ToggleButton": toggleButton + } + + StackView { + id: stackView + anchors.fill: parent + + initialItem: ListView { + model: ListModel { + ListElement { + title: "CircularGauge" + } + ListElement { + title: "DelayButton" + } + ListElement { + title: "Dial" + } + ListElement { + title: "Gauge" + } + //ListElement { + // title: "PieMenu" + //} + ListElement { + title: "ToggleButton" + } + } + + delegate: Button { + width: stackView.width + height: root.height * 0.125 + text: title + + Image { + source: "images/icon-go.png" + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: 30 + } + + style: BlackButtonStyle { + fontColor: root.fontColor + } + + onClicked: { + if (stackView.depth == 1) { + // Only push the control view if we haven't already pushed it... + stackView.push({item: componentMap[title]}); + stackView.currentItem.forceActiveFocus(); + } + } + } + } + } +} |