Add Material style
Change-Id: I93662a53b42858a5b65154c5ede334182e738dde Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
This commit is contained in:
parent
aad982d60f
commit
fe483bcaa4
|
@ -92,3 +92,4 @@ android-build
|
|||
app_process
|
||||
qtc-debugging-helper
|
||||
android-*.so-deployment-settings.json
|
||||
*.directory
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import QtQuick.Window 2.2
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.ApplicationWindow {
|
||||
id: window
|
||||
|
||||
color: Material.backgroundColor
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.BusyIndicator {
|
||||
id: control
|
||||
|
||||
implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding
|
||||
implicitHeight: contentItem.implicitHeight + topPadding + bottomPadding
|
||||
|
||||
padding: 6
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: ProgressRing {
|
||||
id: ring
|
||||
x: control.leftPadding + (control.availableWidth - width) / 2
|
||||
y: control.topPadding + (control.availableHeight - height) / 2
|
||||
implicitWidth: 48
|
||||
implicitHeight: 48
|
||||
width: size
|
||||
height: size
|
||||
opacity: control.running ? 1 : 0
|
||||
color: control.Material.accentColor
|
||||
|
||||
readonly property real size: Math.min(control.availableWidth, control.availableHeight)
|
||||
|
||||
Behavior on opacity { OpacityAnimator { duration: 250 } }
|
||||
|
||||
RingAnimator {
|
||||
target: ring
|
||||
running: control.visible && control.running
|
||||
}
|
||||
}
|
||||
//! [contentItem]
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
import QtGraphicalEffects 1.0
|
||||
|
||||
T.Button {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
label ? label.implicitWidth + leftPadding + rightPadding : 0)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
label ? label.implicitHeight + topPadding + bottomPadding : 0)
|
||||
|
||||
padding: 6
|
||||
leftPadding: 8
|
||||
rightPadding: 8
|
||||
|
||||
//! [label]
|
||||
label: Text {
|
||||
x: control.leftPadding
|
||||
y: control.topPadding
|
||||
width: control.availableWidth
|
||||
height: control.availableHeight
|
||||
|
||||
text: control.text
|
||||
color: control.Material.primaryTextColor
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
//! [label]
|
||||
|
||||
//! [background]
|
||||
background: Rectangle {
|
||||
implicitWidth: 36
|
||||
implicitHeight: 36
|
||||
|
||||
radius: 2
|
||||
color: !control.enabled ? control.Material.raisedButtonDisabledColor :
|
||||
(control.pressed ? control.Material.raisedButtonPressColor :
|
||||
(control.activeFocus ? control.Material.raisedButtonHoverColor : control.Material.raisedButtonColor))
|
||||
|
||||
Behavior on color {
|
||||
ColorAnimation {
|
||||
duration: 400
|
||||
}
|
||||
}
|
||||
|
||||
layer.enabled: control.enabled
|
||||
layer.effect: DropShadow {
|
||||
verticalOffset: 1
|
||||
color: control.Material.dropShadowColor
|
||||
samples: control.pressed ? 15 : 9
|
||||
spread: 0.5
|
||||
|
||||
// TODO: Doesn't work because of QTBUG-49072
|
||||
Behavior on radius {
|
||||
NumberAnimation { duration: 1000 }
|
||||
}
|
||||
}
|
||||
}
|
||||
//! [background]
|
||||
}
|
|
@ -0,0 +1,194 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.CheckBox {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
(label ? label.implicitWidth : 0) +
|
||||
(indicator ? indicator.implicitWidth : 0) +
|
||||
(label && indicator ? spacing : 0) + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
Math.max(label ? label.implicitHeight : 0,
|
||||
indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding)
|
||||
|
||||
padding: 6
|
||||
spacing: 6
|
||||
|
||||
//! [indicator]
|
||||
indicator: Rectangle {
|
||||
id: indicatorItem
|
||||
x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
|
||||
y: control.topPadding + (control.availableHeight - height) / 2
|
||||
implicitWidth: 20
|
||||
implicitHeight: 20
|
||||
border.color: control.Material.secondaryTextColor
|
||||
radius: 2
|
||||
|
||||
Component.onCompleted: {
|
||||
color = control.checked || control.pressed ? control.Material.accentColor : "transparent";
|
||||
border.width = control.checked || control.pressed ? 0 : 2;
|
||||
}
|
||||
|
||||
Ripple {
|
||||
width: parent.width
|
||||
height: width
|
||||
control: control
|
||||
colored: control.checked
|
||||
opacity: control.pressed ? 1 : 0
|
||||
}
|
||||
|
||||
// TODO: This needs to be transparent
|
||||
Image {
|
||||
id: checkImage
|
||||
x: (parent.width - width) / 2
|
||||
y: (parent.height - height) / 2
|
||||
source: "qrc:/images/check.png"
|
||||
fillMode: Image.PreserveAspectFit
|
||||
|
||||
Component.onCompleted: {
|
||||
width = control.checked || control.pressed ? 16 : 0;
|
||||
height = control.checked || control.pressed ? 16 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: control
|
||||
onCheckedChanged: {
|
||||
pressScaleAnimation.start();
|
||||
if (control.checked)
|
||||
checkedAnimation.start();
|
||||
else
|
||||
uncheckedAnimation.start();
|
||||
}
|
||||
}
|
||||
|
||||
SequentialAnimation {
|
||||
id: pressScaleAnimation
|
||||
|
||||
NumberAnimation {
|
||||
target: indicatorItem
|
||||
property: "scale"
|
||||
// Go down 2 pixels in size.
|
||||
to: 1 - 2 / indicatorItem.width
|
||||
duration: 120
|
||||
}
|
||||
NumberAnimation {
|
||||
target: indicatorItem
|
||||
property: "scale"
|
||||
to: 1
|
||||
duration: 120
|
||||
}
|
||||
}
|
||||
|
||||
SequentialAnimation {
|
||||
id: checkedAnimation
|
||||
|
||||
PropertyAction {
|
||||
target: indicatorItem.border
|
||||
property: "color"
|
||||
value: control.Material.accentColor
|
||||
}
|
||||
NumberAnimation {
|
||||
target: indicatorItem.border
|
||||
property: "width"
|
||||
from: 2
|
||||
to: indicatorItem.width / 2
|
||||
easing.type: Easing.OutCubic
|
||||
duration: 100
|
||||
}
|
||||
NumberAnimation {
|
||||
target: checkImage
|
||||
properties: "width, height"
|
||||
from: 0
|
||||
to: 16
|
||||
duration: 100
|
||||
}
|
||||
}
|
||||
|
||||
SequentialAnimation {
|
||||
id: uncheckedAnimation
|
||||
|
||||
PropertyAction {
|
||||
target: indicatorItem.border
|
||||
property: "color"
|
||||
value: control.Material.secondaryTextColor
|
||||
}
|
||||
NumberAnimation {
|
||||
target: checkImage
|
||||
properties: "width, height"
|
||||
from: 16
|
||||
to: 0
|
||||
duration: 100
|
||||
}
|
||||
NumberAnimation {
|
||||
target: indicatorItem.border
|
||||
property: "width"
|
||||
from: indicatorItem.width / 2
|
||||
to: 2
|
||||
easing.type: Easing.OutCubic
|
||||
duration: 100
|
||||
}
|
||||
PropertyAction {
|
||||
target: indicatorItem
|
||||
property: "color"
|
||||
value: "transparent"
|
||||
}
|
||||
}
|
||||
}
|
||||
//! [indicator]
|
||||
|
||||
//! [label]
|
||||
label: Text {
|
||||
x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing)
|
||||
y: control.topPadding
|
||||
width: control.availableWidth - indicator.width - control.spacing
|
||||
height: control.availableHeight
|
||||
|
||||
text: control.text
|
||||
font: control.font
|
||||
color: control.enabled ? control.Material.primaryTextColor : control.Material.hintTextColor
|
||||
elide: Text.ElideRight
|
||||
visible: control.text
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
//! [label]
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.Dial {
|
||||
id: control
|
||||
|
||||
implicitWidth: 100
|
||||
implicitHeight: 100
|
||||
|
||||
//! [background]
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
radius: width / 2
|
||||
|
||||
border.color: control.enabled ? control.Material.accentColor : control.Material.hintTextColor
|
||||
}
|
||||
//! [background]
|
||||
|
||||
//! [handle]
|
||||
handle: Rectangle {
|
||||
id: handleItem
|
||||
|
||||
x: background.width / 2 - handle.width / 2
|
||||
y: background.height / 2 - handle.height / 2
|
||||
transform: [
|
||||
Translate {
|
||||
y: -background.height * 0.35
|
||||
},
|
||||
Rotation {
|
||||
angle: control.angle
|
||||
origin.x: handle.width / 2
|
||||
origin.y: handle.height / 2
|
||||
}
|
||||
]
|
||||
implicitWidth: 14
|
||||
implicitHeight: 14
|
||||
radius: width / 2
|
||||
color: control.enabled ? control.Material.accentColor : control.Material.hintTextColor
|
||||
}
|
||||
//! [handle]
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.Drawer {
|
||||
id: control
|
||||
|
||||
width: parent ? parent.width : 0 // TODO: Window.width
|
||||
height: parent ? parent.height : 0 // TODO: Window.height
|
||||
|
||||
//! [background]
|
||||
background: Rectangle {
|
||||
color: control.Material.drawerBackgroundColor
|
||||
opacity: position * 0.75
|
||||
}
|
||||
//! [background]
|
||||
|
||||
// TODO: make this a proper transition
|
||||
animation: SmoothedAnimation {
|
||||
velocity: 5
|
||||
}
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.Frame {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
|
||||
|
||||
contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
|
||||
contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
|
||||
|
||||
padding: 6
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: Item { }
|
||||
//! [contentItem]
|
||||
|
||||
//! [frame]
|
||||
frame: Rectangle {
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
|
||||
radius: 3
|
||||
color: "transparent"
|
||||
border.color: control.Material.frameColor
|
||||
}
|
||||
//! [frame]
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.GroupBox {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
|
||||
|
||||
contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
|
||||
contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
|
||||
|
||||
spacing: 6
|
||||
padding: 6
|
||||
topPadding: 6 + (label && title ? label.implicitHeight + spacing : 0)
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: Item {}
|
||||
//! [contentItem]
|
||||
|
||||
//! [label]
|
||||
label: Text {
|
||||
x: control.leftPadding
|
||||
width: control.availableWidth
|
||||
|
||||
text: control.title
|
||||
font: control.font
|
||||
color: control.enabled ? control.Material.primaryTextColor : control.Material.hintTextColor
|
||||
elide: Text.ElideRight
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
//! [label]
|
||||
|
||||
//! [frame]
|
||||
frame: Rectangle {
|
||||
y: control.topPadding - control.padding
|
||||
width: parent.width
|
||||
height: parent.height - control.topPadding + control.padding
|
||||
|
||||
radius: 3
|
||||
color: "transparent"
|
||||
border.color: control.Material.frameColor
|
||||
}
|
||||
//! [frame]
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.Label {
|
||||
id: control
|
||||
|
||||
color: Material.primaryTextColor
|
||||
linkColor: Material.accentColor
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.PageIndicator {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
contentItem.implicitWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
contentItem.implicitHeight + topPadding + bottomPadding)
|
||||
|
||||
padding: 6
|
||||
spacing: 6
|
||||
|
||||
//! [delegate]
|
||||
delegate: Rectangle {
|
||||
implicitWidth: 8
|
||||
implicitHeight: 8
|
||||
|
||||
radius: width / 2
|
||||
color: control.Material.primaryTextColor
|
||||
|
||||
opacity: index === currentIndex ? 0.95 : pressed ? 0.7 : 0.45
|
||||
Behavior on opacity { OpacityAnimator { duration: 100 } }
|
||||
}
|
||||
//! [delegate]
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: Row {
|
||||
spacing: control.spacing
|
||||
|
||||
Repeater {
|
||||
model: control.count
|
||||
delegate: control.delegate
|
||||
}
|
||||
}
|
||||
//! [contentItem]
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.ProgressBar {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
indicator ? indicator.implicitWidth : 0) + leftPadding + rightPadding
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding
|
||||
|
||||
padding: 6
|
||||
|
||||
//! [indicator]
|
||||
indicator: Item {
|
||||
x: control.leftPadding
|
||||
y: control.topPadding
|
||||
width: control.availableWidth
|
||||
height: control.availableHeight
|
||||
|
||||
scale: control.mirrored ? -1 : 1
|
||||
|
||||
Repeater {
|
||||
model: indeterminate ? 2 : 1
|
||||
|
||||
Rectangle {
|
||||
property real offset: indeterminate ? 0 : control.position
|
||||
|
||||
x: (indeterminate ? offset * parent.width : 0)
|
||||
y: (parent.height - height) / 2
|
||||
width: offset * (parent.width - x)
|
||||
height: 6
|
||||
|
||||
color: control.Material.accentColor
|
||||
|
||||
SequentialAnimation on offset {
|
||||
loops: Animation.Infinite
|
||||
running: indeterminate && visible
|
||||
PauseAnimation { duration: index ? 520 : 0 }
|
||||
NumberAnimation {
|
||||
easing.type: Easing.OutCubic
|
||||
duration: 1240
|
||||
from: 0
|
||||
to: 1
|
||||
}
|
||||
PauseAnimation { duration: index ? 0 : 520 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//! [indicator]
|
||||
|
||||
//! [background]
|
||||
background: Rectangle {
|
||||
implicitWidth: 200
|
||||
implicitHeight: 6
|
||||
x: control.leftPadding
|
||||
y: control.topPadding + (control.availableHeight - height) / 2
|
||||
width: control.availableWidth
|
||||
height: 6
|
||||
|
||||
color: Qt.rgba(control.Material.accentColor.r, control.Material.accentColor.g, control.Material.accentColor.b, 0.25)
|
||||
}
|
||||
//! [background]
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.RadioButton {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
(label ? label.implicitWidth : 0) +
|
||||
(indicator ? indicator.implicitWidth : 0) +
|
||||
(label && indicator ? spacing : 0) + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
Math.max(label ? label.implicitHeight : 0,
|
||||
indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding)
|
||||
|
||||
padding: 6
|
||||
spacing: 6
|
||||
|
||||
//! [indicator]
|
||||
indicator: Rectangle {
|
||||
x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
|
||||
y: control.topPadding + (control.availableHeight - height) / 2
|
||||
implicitWidth: 20
|
||||
implicitHeight: 20
|
||||
radius: width / 2
|
||||
border.width: 2
|
||||
border.color: control.checked || control.pressed ? control.Material.accentColor : control.Material.secondaryTextColor
|
||||
color: "transparent"
|
||||
|
||||
Ripple {
|
||||
width: parent.width
|
||||
height: width
|
||||
control: control
|
||||
colored: control.checked
|
||||
opacity: control.pressed ? 1 : 0
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
x: (parent.width - width) / 2
|
||||
y: (parent.height - height) / 2
|
||||
width: 10
|
||||
height: 10
|
||||
radius: width / 2
|
||||
color: parent.border.color
|
||||
visible: control.checked || control.pressed
|
||||
}
|
||||
}
|
||||
//! [indicator]
|
||||
|
||||
//! [label]
|
||||
label: Text {
|
||||
x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing)
|
||||
y: control.topPadding
|
||||
width: control.availableWidth - indicator.width - control.spacing
|
||||
height: control.availableHeight
|
||||
|
||||
text: control.text
|
||||
font: control.font
|
||||
color: control.enabled ? control.Material.primaryTextColor : control.Material.hintTextColor
|
||||
elide: Text.ElideRight
|
||||
visible: control.text
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
//! [label]
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.RangeSlider {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
Math.max(track ? track.implicitWidth : 0,
|
||||
first.handle ? first.handle.implicitWidth : 0,
|
||||
second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
Math.max(track ? track.implicitHeight : 0,
|
||||
first.handle ? first.handle.implicitHeight : 0,
|
||||
second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding)
|
||||
|
||||
padding: 6
|
||||
|
||||
//! [firstHandle]
|
||||
first.handle: SliderHandle {
|
||||
x: control.leftPadding + (horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
|
||||
y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
|
||||
value: first.value
|
||||
handleHasFocus: activeFocus
|
||||
handlePressed: first.pressed
|
||||
}
|
||||
//! [firstHandle]
|
||||
|
||||
//! [secondHandle]
|
||||
second.handle: SliderHandle {
|
||||
x: control.leftPadding + (horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
|
||||
y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
|
||||
value: second.value
|
||||
handleHasFocus: activeFocus
|
||||
handlePressed: second.pressed
|
||||
}
|
||||
//! [secondHandle]
|
||||
|
||||
//! [track]
|
||||
track: Rectangle {
|
||||
x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2)
|
||||
y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0)
|
||||
implicitWidth: horizontal ? 200 : 1
|
||||
implicitHeight: horizontal ? 1 : 200
|
||||
width: horizontal ? control.availableWidth : implicitWidth
|
||||
height: horizontal ? implicitHeight : control.availableHeight
|
||||
color: control.Material.primaryTextColor
|
||||
scale: horizontal && control.mirrored ? -1 : 1
|
||||
|
||||
readonly property bool horizontal: control.orientation === Qt.Horizontal
|
||||
|
||||
Rectangle {
|
||||
x: parent.horizontal ? control.first.position * parent.width : -1
|
||||
y: parent.horizontal ? -1 : control.second.visualPosition * parent.height + 3
|
||||
width: parent.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 3 : 3
|
||||
height: parent.horizontal ? 3 : control.second.position * parent.height - control.first.position * parent.height - 3
|
||||
|
||||
color: control.Material.accentColor
|
||||
}
|
||||
}
|
||||
//! [track]
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
Rectangle {
|
||||
property Item control
|
||||
property bool colored: false
|
||||
|
||||
radius: width / 2
|
||||
scale: 2.5
|
||||
color: colored ? control.Material.checkBoxCheckedRippleColor : control.Material.checkBoxUncheckedRippleColor
|
||||
|
||||
Behavior on opacity {
|
||||
NumberAnimation {}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.ScrollBar {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
handle.implicitWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
handle.implicitHeight + topPadding + bottomPadding)
|
||||
|
||||
padding: 2
|
||||
|
||||
//! [handle]
|
||||
handle: Rectangle {
|
||||
id: handle
|
||||
|
||||
implicitWidth: 4
|
||||
implicitHeight: 4
|
||||
|
||||
color: control.pressed ? control.Material.scrollBarPressedColor : control.Material.scrollBarColor
|
||||
visible: control.size < 1.0
|
||||
opacity: 0.0
|
||||
|
||||
readonly property bool horizontal: control.orientation === Qt.Horizontal
|
||||
x: control.leftPadding + (horizontal ? control.position * control.width : 0)
|
||||
y: control.topPadding + (horizontal ? 0 : control.position * control.height)
|
||||
width: horizontal ? control.size * control.availableWidth : implicitWidth
|
||||
height: horizontal ? implicitHeight : control.size * control.availableHeight
|
||||
|
||||
states: State {
|
||||
name: "active"
|
||||
when: control.active
|
||||
PropertyChanges { target: handle; opacity: 0.75 }
|
||||
}
|
||||
|
||||
transitions: Transition {
|
||||
from: "active"
|
||||
SequentialAnimation {
|
||||
PauseAnimation { duration: 450 }
|
||||
NumberAnimation { target: handle; duration: 200; property: "opacity"; to: 0.0 }
|
||||
}
|
||||
}
|
||||
}
|
||||
//! [handle]
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.ScrollIndicator {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
indicator.implicitWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
indicator.implicitHeight + topPadding + bottomPadding)
|
||||
|
||||
padding: 2
|
||||
|
||||
//! [indicator]
|
||||
indicator: Rectangle {
|
||||
id: indicator
|
||||
|
||||
implicitWidth: 4
|
||||
implicitHeight: 4
|
||||
|
||||
color: control.Material.scrollBarColor
|
||||
visible: control.size < 1.0
|
||||
opacity: 0.0
|
||||
|
||||
readonly property bool horizontal: control.orientation === Qt.Horizontal
|
||||
x: control.leftPadding + (horizontal ? control.position * control.width : 0)
|
||||
y: control.topPadding + (horizontal ? 0 : control.position * control.height)
|
||||
width: horizontal ? control.size * control.availableWidth : implicitWidth
|
||||
height: horizontal ? implicitHeight : control.size * control.availableHeight
|
||||
|
||||
states: State {
|
||||
name: "active"
|
||||
when: control.active
|
||||
PropertyChanges { target: indicator; opacity: 0.75 }
|
||||
}
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
from: "active"
|
||||
SequentialAnimation {
|
||||
PauseAnimation { duration: 450 }
|
||||
NumberAnimation { target: indicator; duration: 200; property: "opacity"; to: 0.0 }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
//! [indicator]
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.Slider {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
Math.max(track ? track.implicitWidth : 0,
|
||||
handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
Math.max(track ? track.implicitHeight : 0,
|
||||
handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
|
||||
|
||||
padding: 6
|
||||
|
||||
//! [handle]
|
||||
handle: SliderHandle {
|
||||
x: control.leftPadding + (horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
|
||||
y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
|
||||
value: control.value
|
||||
handleHasFocus: control.activeFocus
|
||||
handlePressed: control.pressed
|
||||
}
|
||||
//! [handle]
|
||||
|
||||
//! [track]
|
||||
track: Rectangle {
|
||||
x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2)
|
||||
y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0)
|
||||
implicitWidth: horizontal ? 200 : 1
|
||||
implicitHeight: horizontal ? 1 : 200
|
||||
width: horizontal ? control.availableWidth : implicitWidth
|
||||
height: horizontal ? 1 : control.position * implicitHeight - 4
|
||||
color: control.Material.primaryTextColor
|
||||
scale: horizontal && control.mirrored ? -1 : 1
|
||||
|
||||
readonly property bool horizontal: control.orientation === Qt.Horizontal
|
||||
|
||||
Rectangle {
|
||||
x: 0
|
||||
y: parent.horizontal ? -1 : control.visualPosition * parent.height + 3
|
||||
width: parent.horizontal ? control.position * parent.width : 3
|
||||
height: parent.horizontal ? 3 : control.availableHeight
|
||||
|
||||
color: control.Material.accentColor
|
||||
}
|
||||
}
|
||||
//! [track]
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
Item {
|
||||
id: root
|
||||
implicitWidth: initialSize
|
||||
implicitHeight: initialSize
|
||||
|
||||
property real value: 0
|
||||
property bool handleHasFocus: false
|
||||
property bool handlePressed: false
|
||||
readonly property int initialSize: 13
|
||||
readonly property bool horizontal: control.orientation === Qt.Horizontal
|
||||
readonly property var control: parent
|
||||
|
||||
Rectangle {
|
||||
id: handleRect
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
radius: width / 2
|
||||
color: root.control.Material.accentColor
|
||||
scale: root.handlePressed || root.handleHasFocus ? 1.5 : 1
|
||||
|
||||
Behavior on scale {
|
||||
NumberAnimation {
|
||||
duration: 250
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import QtGraphicalEffects 1.0
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.SpinBox {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
contentItem.implicitWidth + 2 * padding +
|
||||
(up.indicator ? up.indicator.implicitWidth : 0) +
|
||||
(down.indicator ? down.indicator.implicitWidth : 0))
|
||||
implicitHeight: Math.max(contentItem.implicitHeight + topPadding + bottomPadding,
|
||||
background ? background.implicitHeight : 0,
|
||||
up.indicator ? up.indicator.implicitHeight : 0,
|
||||
down.indicator ? down.indicator.implicitHeight : 0)
|
||||
|
||||
padding: 6
|
||||
leftPadding: 6 + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
|
||||
rightPadding: 6 + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
|
||||
|
||||
//! [validator]
|
||||
validator: IntValidator {
|
||||
locale: control.locale.name
|
||||
bottom: Math.min(control.from, control.to)
|
||||
top: Math.max(control.from, control.to)
|
||||
}
|
||||
//! [validator]
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: TextInput {
|
||||
text: control.textFromValue(control.value, control.locale)
|
||||
|
||||
font: control.font
|
||||
color: control.Material.primaryTextColor
|
||||
selectionColor: control.Material.textSelectionColor
|
||||
selectedTextColor: control.Material.primaryTextColor
|
||||
horizontalAlignment: Qt.AlignHCenter
|
||||
verticalAlignment: Qt.AlignVCenter
|
||||
|
||||
validator: control.validator
|
||||
inputMethodHints: Qt.ImhFormattedNumbersOnly
|
||||
}
|
||||
//! [contentItem]
|
||||
|
||||
//! [up.indicator]
|
||||
up.indicator: Rectangle {
|
||||
x: control.mirrored ? 0 : parent.width - width
|
||||
implicitWidth: 26
|
||||
height: parent.height
|
||||
radius: 3
|
||||
color: Qt.tint(Qt.tint(control.Material.raisedButtonColor,
|
||||
control.activeFocus ? control.Material.raisedButtonHoverColor : "transparent"),
|
||||
control.up.pressed ? control.Material.raisedButtonPressColor: "transparent")
|
||||
|
||||
Rectangle {
|
||||
x: (parent.width - width) / 2
|
||||
y: (parent.height - height) / 2
|
||||
width: Math.min(parent.width / 3, parent.width / 3)
|
||||
height: 2
|
||||
color: control.Material.primaryTextColor
|
||||
}
|
||||
Rectangle {
|
||||
x: (parent.width - width) / 2
|
||||
y: (parent.height - height) / 2
|
||||
width: 2
|
||||
height: Math.min(parent.width / 3, parent.width / 3)
|
||||
color: control.Material.primaryTextColor
|
||||
}
|
||||
}
|
||||
//! [up.indicator]
|
||||
|
||||
//! [down.indicator]
|
||||
down.indicator: Rectangle {
|
||||
x: control.mirrored ? parent.width - width : 0
|
||||
implicitWidth: 26
|
||||
height: parent.height
|
||||
radius: 3
|
||||
color: Qt.tint(Qt.tint(control.Material.raisedButtonColor,
|
||||
control.activeFocus ? control.Material.raisedButtonHoverColor : "transparent"),
|
||||
control.down.pressed ? control.Material.raisedButtonPressColor : "transparent")
|
||||
|
||||
Rectangle {
|
||||
x: (parent.width - width) / 2
|
||||
y: (parent.height - height) / 2
|
||||
width: parent.width / 3
|
||||
height: 2
|
||||
color: control.Material.primaryTextColor
|
||||
}
|
||||
}
|
||||
//! [down.indicator]
|
||||
|
||||
//! [background]
|
||||
background: Item {
|
||||
implicitWidth: 100
|
||||
implicitHeight: 26
|
||||
|
||||
Rectangle {
|
||||
x: parent.width / 2 - width / 2
|
||||
y: parent.y + parent.height - height
|
||||
width: Math.max(26, control.contentItem.implicitWidth)
|
||||
height: control.activeFocus ? 2 : 1
|
||||
color: control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
|
||||
}
|
||||
}
|
||||
//! [background]
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.4
|
||||
import Qt.labs.templates 1.0 as T
|
||||
|
||||
T.StackView {
|
||||
id: root
|
||||
|
||||
//! [popEnter]
|
||||
popEnter: Transition {
|
||||
NumberAnimation { property: "x"; from: -root.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
|
||||
}
|
||||
//! [popEnter]
|
||||
|
||||
//! [popExit]
|
||||
popExit: Transition {
|
||||
NumberAnimation { property: "x"; from: 0; to: root.width; duration: 400; easing.type: Easing.OutCubic }
|
||||
}
|
||||
//! [popExit]
|
||||
|
||||
//! [pushEnter]
|
||||
pushEnter: Transition {
|
||||
NumberAnimation { property: "x"; from: root.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
|
||||
}
|
||||
//! [pushEnter]
|
||||
|
||||
//! [pushExit]
|
||||
pushExit: Transition {
|
||||
NumberAnimation { property: "x"; from: 0; to: -root.width; duration: 400; easing.type: Easing.OutCubic }
|
||||
}
|
||||
//! [pushExit]
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
|
||||
T.SwipeView {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
contentItem.implicitWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
contentItem.implicitHeight + topPadding + bottomPadding)
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: ListView {
|
||||
model: control.contentModel
|
||||
currentIndex: control.currentIndex
|
||||
|
||||
spacing: control.spacing
|
||||
orientation: Qt.Horizontal
|
||||
snapMode: ListView.SnapOneItem
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
|
||||
highlightRangeMode: ListView.StrictlyEnforceRange
|
||||
preferredHighlightBegin: 0
|
||||
preferredHighlightEnd: 0
|
||||
highlightMoveDuration: 250
|
||||
}
|
||||
//! [contentItem]
|
||||
}
|
|
@ -0,0 +1,124 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.controls.material 1.0
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import QtGraphicalEffects 1.0
|
||||
|
||||
T.Switch {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
(label ? label.implicitWidth : 0) +
|
||||
(indicator ? indicator.implicitWidth : 0) +
|
||||
(label && indicator ? spacing : 0) + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
Math.max(label ? label.implicitHeight : 0,
|
||||
indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding)
|
||||
|
||||
padding: 6
|
||||
spacing: 6
|
||||
|
||||
//! [indicator]
|
||||
indicator: Item {
|
||||
x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
|
||||
y: control.topPadding + (control.availableHeight - height) / 2
|
||||
implicitWidth: 40
|
||||
implicitHeight: 20
|
||||
|
||||
Ripple {
|
||||
x: handle.x + handle.width / 2 - width / 2
|
||||
y: handle.y + handle.height / 2 - height / 2
|
||||
width: handle.width - 4
|
||||
height: width
|
||||
control: control
|
||||
colored: control.checked
|
||||
opacity: control.pressed ? 1 : 0
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: parent.width
|
||||
height: 16
|
||||
radius: height / 2
|
||||
y: parent.height / 2 - height / 2
|
||||
color: control.enabled ? (control.checked ? control.Material.switchCheckedTrackColor : control.Material.switchUncheckedTrackColor)
|
||||
: control.Material.switchDisabledTrackColor
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: handle
|
||||
x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2)))
|
||||
y: (parent.height - height) / 2
|
||||
width: 24
|
||||
height: 24
|
||||
radius: width / 2
|
||||
color: control.enabled ? (control.checked ? control.Material.switchCheckedHandleColor : control.Material.switchUncheckedHandleColor)
|
||||
: control.Material.switchDisabledHandleColor
|
||||
layer.enabled: true
|
||||
layer.effect: DropShadow {
|
||||
verticalOffset: 1
|
||||
color: control.Material.dropShadowColor
|
||||
spread: 0.3
|
||||
}
|
||||
|
||||
Behavior on x {
|
||||
enabled: !control.pressed
|
||||
SmoothedAnimation {
|
||||
duration: 300
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//! [indicator]
|
||||
|
||||
//! [label]
|
||||
label: Text {
|
||||
x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing)
|
||||
y: control.topPadding
|
||||
width: control.availableWidth - indicator.width - control.spacing
|
||||
height: control.availableHeight
|
||||
|
||||
text: control.text
|
||||
font: control.font
|
||||
color: control.enabled ? control.Material.primaryTextColor : control.Material.hintTextColor
|
||||
elide: Text.ElideRight
|
||||
visible: control.text
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
//! [label]
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.TabBar {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(26, contentItem.implicitWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(26, contentItem.implicitHeight + topPadding + bottomPadding)
|
||||
|
||||
spacing: 1
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: ListView {
|
||||
implicitWidth: contentWidth
|
||||
implicitHeight: contentHeight
|
||||
|
||||
model: control.contentModel
|
||||
currentIndex: control.currentIndex
|
||||
|
||||
spacing: control.spacing
|
||||
orientation: ListView.Horizontal
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
snapMode: ListView.SnapToItem
|
||||
|
||||
highlightMoveDuration: 250
|
||||
highlightResizeDuration: 0
|
||||
highlightFollowsCurrentItem: true
|
||||
highlight: Item {
|
||||
z: 2
|
||||
Rectangle {
|
||||
height: 2
|
||||
width: parent.width
|
||||
y: parent.height - height
|
||||
color: control.Material.accentColor
|
||||
}
|
||||
}
|
||||
}
|
||||
//! [contentItem]
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.TabButton {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
label ? label.implicitWidth + leftPadding + rightPadding : 0)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
label ? label.implicitHeight + topPadding + bottomPadding : 0)
|
||||
|
||||
padding: 6
|
||||
|
||||
font.pointSize: 10
|
||||
|
||||
//! [label]
|
||||
label: Text {
|
||||
x: control.leftPadding
|
||||
y: control.topPadding
|
||||
width: control.availableWidth
|
||||
height: control.availableHeight
|
||||
|
||||
text: control.text
|
||||
font: control.font
|
||||
elide: Text.ElideRight
|
||||
color: !control.enabled ? control.Material.hintTextColor : control.pressed || control.checked ? control.Material.accentColor : control.Material.primaryTextColor
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
//! [label]
|
||||
|
||||
//! [background]
|
||||
background: Item {
|
||||
height: parent.height - 1
|
||||
implicitHeight: 26
|
||||
}
|
||||
//! [background]
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.TextArea {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
|
||||
background ? background.implicitWidth : 0,
|
||||
placeholder.implicitWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
|
||||
background ? background.implicitHeight : 0,
|
||||
placeholder.implicitHeight + topPadding + bottomPadding)
|
||||
|
||||
padding: 6
|
||||
|
||||
color: enabled ? Material.primaryTextColor : Material.hintTextColor
|
||||
// selectionColor: Theme.selectionColor
|
||||
// selectedTextColor: Theme.selectedTextColor
|
||||
cursorDelegate: Rectangle {
|
||||
color: control.Material.accentColor
|
||||
width: 2
|
||||
|
||||
Timer {
|
||||
running: true
|
||||
repeat: true
|
||||
interval: 500
|
||||
onTriggered: parent.visible = !parent.visible
|
||||
}
|
||||
}
|
||||
|
||||
//! [placeholder]
|
||||
Text {
|
||||
id: placeholder
|
||||
x: control.leftPadding
|
||||
y: control.topPadding
|
||||
width: control.width - (control.leftPadding + control.rightPadding)
|
||||
height: control.height - (control.topPadding + control.bottomPadding)
|
||||
text: control.placeholderText
|
||||
font: control.font
|
||||
color: control.Material.hintTextColor
|
||||
horizontalAlignment: control.horizontalAlignment
|
||||
verticalAlignment: control.verticalAlignment
|
||||
elide: Text.ElideRight
|
||||
visible: !control.length && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
|
||||
}
|
||||
//! [placeholder]
|
||||
|
||||
//! [background]
|
||||
background: Rectangle {
|
||||
y: control.y + control.height - height
|
||||
implicitWidth: 120
|
||||
height: control.activeFocus ? 2 : 1
|
||||
color: control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
|
||||
}
|
||||
//! [background]
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.TextField {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
placeholder.implicitWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
placeholder.implicitHeight + topPadding + bottomPadding)
|
||||
|
||||
padding: 6
|
||||
|
||||
color: enabled ? Material.primaryTextColor : Material.hintTextColor
|
||||
// selectionColor: Theme.selectionColor
|
||||
// selectedTextColor: Theme.selectedTextColor
|
||||
verticalAlignment: TextInput.AlignVCenter
|
||||
cursorDelegate: Rectangle {
|
||||
color: control.Material.accentColor
|
||||
width: 2
|
||||
|
||||
Timer {
|
||||
running: true
|
||||
repeat: true
|
||||
interval: 500
|
||||
onTriggered: parent.visible = !parent.visible
|
||||
}
|
||||
}
|
||||
|
||||
//! [placeholder]
|
||||
Text {
|
||||
id: placeholder
|
||||
x: control.leftPadding
|
||||
y: control.topPadding
|
||||
width: control.width - (control.leftPadding + control.rightPadding)
|
||||
height: control.height - (control.topPadding + control.bottomPadding)
|
||||
text: control.placeholderText
|
||||
font: control.font
|
||||
color: control.Material.hintTextColor
|
||||
horizontalAlignment: control.horizontalAlignment
|
||||
verticalAlignment: control.verticalAlignment
|
||||
elide: Text.ElideRight
|
||||
visible: !control.displayText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
|
||||
|
||||
}
|
||||
//! [placeholder]
|
||||
|
||||
//! [background]
|
||||
background: Rectangle {
|
||||
y: control.y + control.height - height
|
||||
implicitWidth: 120
|
||||
height: control.activeFocus ? 2 : 1
|
||||
color: control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
|
||||
}
|
||||
//! [background]
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
|
||||
T.ToolBar {
|
||||
id: control
|
||||
|
||||
implicitWidth: contentWidth + leftPadding + rightPadding
|
||||
implicitHeight: Math.max(26, contentHeight + topPadding + bottomPadding)
|
||||
|
||||
contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
|
||||
contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: Item { }
|
||||
//! [contentItem]
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.ToolButton {
|
||||
id: control
|
||||
|
||||
implicitWidth: Math.max(background ? background.implicitWidth : 0,
|
||||
label ? label.implicitWidth + leftPadding + rightPadding : 0)
|
||||
implicitHeight: Math.max(background ? background.implicitHeight : 0,
|
||||
label ? label.implicitHeight + topPadding + bottomPadding : 0)
|
||||
|
||||
padding: 6
|
||||
|
||||
//! [label]
|
||||
label: Text {
|
||||
x: control.leftPadding
|
||||
y: control.topPadding
|
||||
width: control.availableWidth
|
||||
height: control.availableHeight
|
||||
|
||||
text: control.text
|
||||
font: control.font
|
||||
color: control.enabled ? control.Material.primaryTextColor : control.Material.hintTextColor
|
||||
elide: Text.ElideRight
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
//! [label]
|
||||
|
||||
//! [background]
|
||||
background: Rectangle {
|
||||
implicitWidth: 26
|
||||
implicitHeight: 26
|
||||
|
||||
color: control.activeFocus || (control.checkable && control.checked)
|
||||
? control.Material.flatButtonFocusColor : control.Material.flatButtonPressColor
|
||||
visible: control.pressed || control.activeFocus || (control.checkable && control.checked)
|
||||
}
|
||||
//! [background]
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Labs Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.6
|
||||
import Qt.labs.controls 1.0
|
||||
import Qt.labs.templates 1.0 as T
|
||||
import Qt.labs.controls.material 1.0
|
||||
|
||||
T.Tumbler {
|
||||
id: control
|
||||
implicitWidth: 60
|
||||
implicitHeight: 200
|
||||
|
||||
//! [delegate]
|
||||
delegate: Text {
|
||||
id: label
|
||||
text: modelData
|
||||
color: control.Material.primaryTextColor
|
||||
font: control.font
|
||||
opacity: 0.4 + Math.max(0, 1 - Math.abs(Tumbler.displacement)) * 0.6
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
//! [delegate]
|
||||
|
||||
//! [contentItem]
|
||||
contentItem: PathView {
|
||||
id: pathView
|
||||
model: control.model
|
||||
delegate: control.delegate
|
||||
clip: true
|
||||
pathItemCount: control.visibleItemCount + 1
|
||||
preferredHighlightBegin: 0.5
|
||||
preferredHighlightEnd: 0.5
|
||||
dragMargin: width / 2
|
||||
|
||||
path: Path {
|
||||
startX: pathView.width / 2
|
||||
startY: -pathView.delegateHeight / 2
|
||||
PathLine {
|
||||
x: pathView.width / 2
|
||||
y: pathView.pathItemCount * pathView.delegateHeight - pathView.delegateHeight / 2
|
||||
}
|
||||
}
|
||||
|
||||
property real delegateHeight: control.availableHeight / control.visibleItemCount
|
||||
}
|
||||
//! [contentItem]
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 670 B |
|
@ -0,0 +1,39 @@
|
|||
HEADERS += \
|
||||
$$PWD/qquickmaterialstyle_p.h \
|
||||
$$PWD/qquickmaterialprogressring_p.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/qtquickmaterialstyleplugin.cpp \
|
||||
$$PWD/qquickmaterialstyle.cpp \
|
||||
$$PWD/qquickmaterialprogressring.cpp
|
||||
|
||||
QML_FILES += \
|
||||
$$PWD/ApplicationWindow.qml \
|
||||
$$PWD/BusyIndicator.qml \
|
||||
$$PWD/Button.qml \
|
||||
$$PWD/CheckBox.qml \
|
||||
$$PWD/Dial.qml \
|
||||
$$PWD/Drawer.qml \
|
||||
$$PWD/Frame.qml \
|
||||
$$PWD/GroupBox.qml \
|
||||
$$PWD/Label.qml \
|
||||
$$PWD/PageIndicator.qml \
|
||||
$$PWD/ProgressBar.qml \
|
||||
$$PWD/RadioButton.qml \
|
||||
$$PWD/RangeSlider.qml \
|
||||
$$PWD/Ripple.qml \
|
||||
$$PWD/ScrollBar.qml \
|
||||
$$PWD/ScrollIndicator.qml \
|
||||
$$PWD/Slider.qml \
|
||||
$$PWD/SliderHandle.qml \
|
||||
$$PWD/SpinBox.qml \
|
||||
$$PWD/StackView.qml \
|
||||
$$PWD/SwipeView.qml \
|
||||
$$PWD/Switch.qml \
|
||||
$$PWD/TabBar.qml \
|
||||
$$PWD/TabButton.qml \
|
||||
$$PWD/TextArea.qml \
|
||||
$$PWD/TextField.qml \
|
||||
$$PWD/ToolBar.qml \
|
||||
$$PWD/ToolButton.qml \
|
||||
$$PWD/Tumbler.qml
|
|
@ -0,0 +1,18 @@
|
|||
TARGET = qtquickmaterialstyleplugin
|
||||
TARGETPATH = Qt/labs/controls/material
|
||||
IMPORT_VERSION = 1.0
|
||||
|
||||
QT += qml quick
|
||||
QT_PRIVATE += core-private gui-private qml-private quick-private
|
||||
|
||||
OTHER_FILES += \
|
||||
qmldir
|
||||
|
||||
include(material.pri)
|
||||
include(../shared/shared.pri)
|
||||
|
||||
RESOURCES += \
|
||||
resources.qrc
|
||||
|
||||
CONFIG += no_cxx_module
|
||||
load(qml_plugin)
|
|
@ -0,0 +1,4 @@
|
|||
module Qt.labs.controls.material
|
||||
plugin qtquickmaterialstyleplugin
|
||||
classname QtQuickMaterialStylePlugin
|
||||
depends Qt.labs.controls 1.0
|
|
@ -0,0 +1,283 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qquickmaterialprogressring_p.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include <QtCore/qset.h>
|
||||
#include <QtGui/qpainter.h>
|
||||
#include <QtQuick/private/qquickitem_p.h>
|
||||
#include <QtQuick/qsgsimplerectnode.h>
|
||||
#include <QtQuick/qsgsimpletexturenode.h>
|
||||
#include <QtQuick/qquickwindow.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
/*
|
||||
Relevant Android code:
|
||||
|
||||
- core/res/res/anim/progress_indeterminate_rotation_material.xml contains
|
||||
the rotation animation data.
|
||||
- core/res/res/anim/progress_indeterminate_material.xml contains the trim
|
||||
animation data.
|
||||
- core/res/res/interpolator/trim_start_interpolator.xml and
|
||||
core/res/res/interpolator/trim_end_interpolator.xml contain the start
|
||||
and end trim path interpolators.
|
||||
- addCommand() in core/java/android/util/PathParser.java has a list of the
|
||||
different path commands available.
|
||||
*/
|
||||
|
||||
class QQuickMaterialRingAnimatorJob : public QQuickAnimatorJob
|
||||
{
|
||||
public:
|
||||
QQuickMaterialRingAnimatorJob();
|
||||
~QQuickMaterialRingAnimatorJob();
|
||||
|
||||
void initialize(QQuickAnimatorController *controller) Q_DECL_OVERRIDE;
|
||||
void updateCurrentTime(int time) Q_DECL_OVERRIDE;
|
||||
void writeBack() Q_DECL_OVERRIDE;
|
||||
void nodeWasDestroyed() Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
QSGNode *m_itemNode;
|
||||
QQuickWindow *m_window;
|
||||
};
|
||||
|
||||
class QQuickMaterialRingTexture : public QSGSimpleTextureNode
|
||||
{
|
||||
public:
|
||||
QQuickMaterialRingTexture();
|
||||
~QQuickMaterialRingTexture();
|
||||
|
||||
QColor color() const;
|
||||
void setColor(QColor color);
|
||||
|
||||
private:
|
||||
QColor m_color;
|
||||
};
|
||||
|
||||
QQuickMaterialProgressRing::QQuickMaterialProgressRing(QQuickItem *parent) :
|
||||
QQuickItem(parent)
|
||||
{
|
||||
setFlag(QQuickItem::ItemHasContents);
|
||||
}
|
||||
|
||||
QQuickMaterialProgressRing::~QQuickMaterialProgressRing()
|
||||
{
|
||||
}
|
||||
|
||||
QSGNode *QQuickMaterialProgressRing::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
|
||||
{
|
||||
if (!oldNode)
|
||||
oldNode = new QSGSimpleRectNode(boundingRect(), Qt::transparent);
|
||||
|
||||
static_cast<QSGSimpleRectNode *>(oldNode)->setRect(boundingRect());
|
||||
|
||||
QQuickMaterialRingTexture *textureNode = static_cast<QQuickMaterialRingTexture*>(oldNode->firstChild());
|
||||
if (!textureNode) {
|
||||
textureNode = new QQuickMaterialRingTexture;
|
||||
textureNode->setOwnsTexture(true);
|
||||
oldNode->appendChildNode(textureNode);
|
||||
}
|
||||
|
||||
// A texture seems to be required here, but we don't have one yet, as we haven't drawn anything,
|
||||
// so just use a blank image.
|
||||
QImage blankImage(width(), height(), QImage::Format_ARGB32_Premultiplied);
|
||||
blankImage.fill(Qt::transparent);
|
||||
QPainter painter(&blankImage);
|
||||
painter.fillRect(0, 0, width(), height(), Qt::transparent);
|
||||
painter.end();
|
||||
textureNode->setColor(m_color);
|
||||
textureNode->setRect(boundingRect());
|
||||
textureNode->setTexture(window()->createTextureFromImage(blankImage));
|
||||
|
||||
return oldNode;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialProgressRing::color() const
|
||||
{
|
||||
return m_color;
|
||||
}
|
||||
|
||||
void QQuickMaterialProgressRing::setColor(QColor color)
|
||||
{
|
||||
if (m_color != color) {
|
||||
m_color = color;
|
||||
update();
|
||||
emit colorChanged();
|
||||
}
|
||||
}
|
||||
|
||||
static const int spanAnimationDuration = 700;
|
||||
static const int rotationAnimationDuration = spanAnimationDuration * 6;
|
||||
static const int targetRotation = 720;
|
||||
static const int oneDegree = 16;
|
||||
static const qreal minSweepSpan = 10 * oneDegree;
|
||||
static const qreal maxSweepSpan = 300 * oneDegree;
|
||||
|
||||
QQuickMaterialRingAnimator::QQuickMaterialRingAnimator(QObject *parent) :
|
||||
QQuickAnimator(parent)
|
||||
{
|
||||
setDuration(rotationAnimationDuration);
|
||||
setLoops(QQuickAnimator::Infinite);
|
||||
}
|
||||
|
||||
QString QQuickMaterialRingAnimator::propertyName() const
|
||||
{
|
||||
return QString();
|
||||
}
|
||||
|
||||
QQuickAnimatorJob *QQuickMaterialRingAnimator::createJob() const
|
||||
{
|
||||
return new QQuickMaterialRingAnimatorJob;
|
||||
}
|
||||
|
||||
QQuickMaterialRingAnimatorJob::QQuickMaterialRingAnimatorJob() :
|
||||
m_itemNode(Q_NULLPTR),
|
||||
m_window(Q_NULLPTR)
|
||||
{
|
||||
}
|
||||
|
||||
QQuickMaterialRingAnimatorJob::~QQuickMaterialRingAnimatorJob()
|
||||
{
|
||||
}
|
||||
|
||||
void QQuickMaterialRingAnimatorJob::initialize(QQuickAnimatorController *controller)
|
||||
{
|
||||
QQuickAnimatorJob::initialize(controller);
|
||||
m_itemNode = QQuickItemPrivate::get(m_target)->itemNode();
|
||||
m_window = m_target->window();
|
||||
}
|
||||
|
||||
void QQuickMaterialRingAnimatorJob::updateCurrentTime(int time)
|
||||
{
|
||||
QSGNode *childContainerNode = QQuickItemPrivate::get(m_target)->childContainerNode();
|
||||
QSGSimpleRectNode *rectNode = static_cast<QSGSimpleRectNode*>(childContainerNode->firstChild());
|
||||
if (!rectNode)
|
||||
return;
|
||||
|
||||
Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
|
||||
|
||||
const qreal width = rectNode->rect().width();
|
||||
const qreal height = rectNode->rect().height();
|
||||
QImage image(width, height, QImage::Format_ARGB32_Premultiplied);
|
||||
image.fill(Qt::transparent);
|
||||
|
||||
QPainter painter(&image);
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
|
||||
QPen pen;
|
||||
QQuickMaterialRingTexture *textureNode = static_cast<QQuickMaterialRingTexture*>(rectNode->firstChild());
|
||||
pen.setColor(textureNode->color());
|
||||
pen.setWidth(4);
|
||||
painter.setPen(pen);
|
||||
|
||||
const qreal percentageComplete = time / qreal(rotationAnimationDuration);
|
||||
const qreal spanPercentageComplete = (time % spanAnimationDuration) / qreal(spanAnimationDuration);
|
||||
const int iteration = time / spanAnimationDuration;
|
||||
int startAngle = 0;
|
||||
int endAngle = 0;
|
||||
static int lastStartAngle = 0;
|
||||
static int lastEndAngle = 0;
|
||||
|
||||
if (iteration % 2 == 0) {
|
||||
if (lastStartAngle > 360 * oneDegree) {
|
||||
lastStartAngle -= 360 * oneDegree;
|
||||
}
|
||||
|
||||
// The start angle is only affected by the rotation animation for the "grow" phase.
|
||||
startAngle = lastStartAngle;
|
||||
// TODO: use the correct curve here. QEasingCurve's bezier API doesn't support SVG path data.
|
||||
QEasingCurve angleCurve(QEasingCurve::OutQuad);
|
||||
const qreal percentage = angleCurve.valueForProgress(spanPercentageComplete);
|
||||
endAngle = lastStartAngle + minSweepSpan + percentage * (maxSweepSpan - minSweepSpan);
|
||||
lastEndAngle = endAngle;
|
||||
} else {
|
||||
// Both the start angle *and* the span are affected by the "shrink" phase.
|
||||
// TODO: use the correct curve here. QEasingCurve's bezier API doesn't support SVG path data.
|
||||
QEasingCurve angleCurve(QEasingCurve::InQuad);
|
||||
const qreal percentage = angleCurve.valueForProgress(spanPercentageComplete);
|
||||
startAngle = lastEndAngle - maxSweepSpan + percentage * (maxSweepSpan - minSweepSpan);
|
||||
endAngle = lastEndAngle;
|
||||
lastStartAngle = startAngle;
|
||||
}
|
||||
|
||||
const int halfPen = pen.width() / 2;
|
||||
const QRectF arcBounds = QRectF(rectNode->rect().adjusted(halfPen, halfPen, -halfPen, -halfPen));
|
||||
// The current angle of the rotation animation.
|
||||
const qreal rotation = oneDegree * percentageComplete * -targetRotation;
|
||||
startAngle -= rotation;
|
||||
endAngle -= rotation;
|
||||
const int angleSpan = endAngle - startAngle;
|
||||
painter.drawArc(arcBounds, -startAngle, -angleSpan);
|
||||
painter.end();
|
||||
|
||||
textureNode->setTexture(m_window->createTextureFromImage(image));
|
||||
}
|
||||
|
||||
void QQuickMaterialRingAnimatorJob::writeBack()
|
||||
{
|
||||
}
|
||||
|
||||
void QQuickMaterialRingAnimatorJob::nodeWasDestroyed()
|
||||
{
|
||||
m_itemNode = Q_NULLPTR;
|
||||
m_window = Q_NULLPTR;
|
||||
}
|
||||
|
||||
QQuickMaterialRingTexture::QQuickMaterialRingTexture()
|
||||
{
|
||||
}
|
||||
|
||||
QQuickMaterialRingTexture::~QQuickMaterialRingTexture()
|
||||
{
|
||||
}
|
||||
|
||||
QColor QQuickMaterialRingTexture::color() const
|
||||
{
|
||||
return m_color;
|
||||
}
|
||||
|
||||
void QQuickMaterialRingTexture::setColor(QColor color)
|
||||
{
|
||||
m_color = color;
|
||||
}
|
||||
|
||||
Q_DECLARE_TYPEINFO(QQuickMaterialRingAnimatorJob, Q_COMPLEX_TYPE);
|
||||
Q_DECLARE_TYPEINFO(QQuickMaterialRingTexture, Q_COMPLEX_TYPE);
|
||||
|
||||
QT_END_NAMESPACE
|
|
@ -0,0 +1,94 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QQUICKMATERIALPROGRESSRING_P_H
|
||||
#define QQUICKMATERIALPROGRESSRING_P_H
|
||||
|
||||
//
|
||||
// W A R N I N G
|
||||
// -------------
|
||||
//
|
||||
// This file is not part of the Qt API. It exists purely as an
|
||||
// implementation detail. This header file may change from version to
|
||||
// version without notice, or even be removed.
|
||||
//
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include <QtGui/qcolor.h>
|
||||
#include <QtQuick/qquickitem.h>
|
||||
#include <QtQuick/private/qquickanimatorjob_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QQuickMaterialProgressRing : public QQuickItem
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL)
|
||||
|
||||
public:
|
||||
explicit QQuickMaterialProgressRing(QQuickItem *parent = Q_NULLPTR);
|
||||
~QQuickMaterialProgressRing();
|
||||
|
||||
QColor color() const;
|
||||
void setColor(QColor color);
|
||||
|
||||
Q_SIGNALS:
|
||||
void colorChanged();
|
||||
|
||||
protected:
|
||||
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
QColor m_color;
|
||||
};
|
||||
|
||||
class QQuickMaterialRingAnimator : public QQuickAnimator
|
||||
{
|
||||
public:
|
||||
QQuickMaterialRingAnimator(QObject *parent = Q_NULLPTR);
|
||||
|
||||
protected:
|
||||
QString propertyName() const Q_DECL_OVERRIDE;
|
||||
QQuickAnimatorJob *createJob() const Q_DECL_OVERRIDE;
|
||||
};
|
||||
|
||||
Q_DECLARE_TYPEINFO(QQuickMaterialProgressRing, Q_COMPLEX_TYPE);
|
||||
Q_DECLARE_TYPEINFO(QQuickMaterialRingAnimator, Q_COMPLEX_TYPE);
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // QQUICKMATERIALPROGRESSRING_P_H
|
|
@ -0,0 +1,765 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qquickmaterialstyle_p.h"
|
||||
#include "qquickstyle_p.h"
|
||||
|
||||
#include <QtCore/qset.h>
|
||||
#include <QtCore/qpointer.h>
|
||||
#include <QtQml/qqmlengine.h>
|
||||
#include <QtQuick/qquickitem.h>
|
||||
#include <QtQuick/qquickwindow.h>
|
||||
#include <QtQuick/private/qquickitem_p.h>
|
||||
#include <QtQuick/private/qquickitemchangelistener_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
/*!
|
||||
\qmltype Material
|
||||
\inherits QtObject
|
||||
\instantiates QQuickMaterialStyleAttached
|
||||
\inqmlmodule QtQuick.Controls.Material
|
||||
\ingroup utilities
|
||||
\brief A style interface.
|
||||
|
||||
TODO
|
||||
*/
|
||||
|
||||
/*!
|
||||
\qmlattachedproperty color QtQuickControls2::Material::textColorPrimaray
|
||||
*/
|
||||
|
||||
struct MaterialColor
|
||||
{
|
||||
MaterialColor() :
|
||||
color(QQuickMaterialStyle::Red),
|
||||
shade(QQuickMaterialStyle::Shade500)
|
||||
{
|
||||
}
|
||||
|
||||
MaterialColor(QQuickMaterialStyle::Color color, QQuickMaterialStyle::Shade shade) :
|
||||
color(color),
|
||||
shade(shade)
|
||||
{
|
||||
}
|
||||
|
||||
QQuickMaterialStyle::Color color;
|
||||
QQuickMaterialStyle::Shade shade;
|
||||
};
|
||||
|
||||
inline bool operator==(const MaterialColor &lhs, const MaterialColor &rhs)
|
||||
{
|
||||
return lhs.color == rhs.color && lhs.shade == rhs.shade;
|
||||
}
|
||||
|
||||
inline uint qHash(const MaterialColor &color, uint seed)
|
||||
{
|
||||
return qHash(color.color, seed) ^ color.shade;
|
||||
}
|
||||
|
||||
class QQuickMaterialStylePrivate : public QObjectPrivate, public QQuickItemChangeListener
|
||||
{
|
||||
Q_DECLARE_PUBLIC(QQuickMaterialStyle)
|
||||
|
||||
public:
|
||||
QQuickMaterialStylePrivate();
|
||||
|
||||
enum Method { Implicit, Explicit, Inherit };
|
||||
|
||||
QPointer<QQuickMaterialStyle> parentStyle;
|
||||
QSet<QQuickMaterialStyle *> childStyles;
|
||||
QHash<MaterialColor, QColor> colors;
|
||||
|
||||
bool explicitTheme;
|
||||
bool explicitPrimary;
|
||||
bool explicitAccent;
|
||||
QQuickMaterialStyle::Theme theme;
|
||||
QQuickMaterialStyle::Color primary;
|
||||
QQuickMaterialStyle::Color accent;
|
||||
};
|
||||
|
||||
static const QQuickMaterialStyle::Theme defaultTheme = QQuickMaterialStyle::Light;
|
||||
static const QQuickMaterialStyle::Color defaultPrimary = QQuickMaterialStyle::BlueGrey;
|
||||
static const QQuickMaterialStyle::Color defaultAccent = QQuickMaterialStyle::Teal;
|
||||
static const QColor backgroundColorLight = "#FFFAFAFA";
|
||||
static const QColor backgroundColorDark = "#FF303030";
|
||||
static const QColor dialogColorLight = "#FFFFFFFF";
|
||||
static const QColor dialogColorDark = "#FF303030";
|
||||
static const QColor primaryTextColorLight = "#DD000000";
|
||||
static const QColor primaryTextColorDark = "#FFFFFFFF";
|
||||
static const QColor secondaryTextColorLight = "#89000000";
|
||||
static const QColor secondaryTextColorDark = "#B2FFFFFF";
|
||||
static const QColor hintTextColorLight = "#60000000";
|
||||
static const QColor hintTextColorDark = "#4CFFFFFF";
|
||||
static const QColor dividerTextColorLight = "#1E000000";
|
||||
static const QColor dividerTextColorDark = "#1EFFFFFF";
|
||||
static const QColor raisedButtonColorLight = "#FFD6D7D7";
|
||||
// TODO: find out actual value
|
||||
static const QColor raisedButtonPressColorLight = "#FFCCCDCD";
|
||||
static const QColor raisedButtonDisabledColorLight = dividerTextColorLight;
|
||||
static const QColor raisedButtonDisabledColorDark = dividerTextColorDark;
|
||||
static const QColor flatButtonPressColorLight = "#66999999";
|
||||
static const QColor flatButtonPressColorDark = "#3FCCCCCC";
|
||||
static const QColor flatButtonFocusColorLight = "#33CCCCCC";
|
||||
static const QColor flatButtonFocusColorDark = "#26CCCCCC";
|
||||
static const QColor frameColorLight = hintTextColorLight;
|
||||
static const QColor frameColorDark = hintTextColorDark;
|
||||
static const QColor switchUncheckedTrackColorLight = "#42000000";
|
||||
static const QColor switchUncheckedTrackColorDark = "#4CFFFFFF";
|
||||
static const QColor switchDisabledTrackColorLight = "#1E000000";
|
||||
static const QColor switchDisabledTrackColorDark = "#19FFFFFF";
|
||||
// TODO: find out actual values
|
||||
static const QColor checkBoxUncheckedRippleColorLight = "#10000000";
|
||||
static const QColor checkBoxUncheckedRippleColorDark = "#20FFFFFF";
|
||||
|
||||
QQuickMaterialStylePrivate::QQuickMaterialStylePrivate() :
|
||||
explicitTheme(false),
|
||||
explicitPrimary(false),
|
||||
explicitAccent(false),
|
||||
theme(defaultTheme),
|
||||
primary(defaultPrimary),
|
||||
accent(defaultAccent)
|
||||
{
|
||||
if (colors.isEmpty()) {
|
||||
typedef QQuickMaterialStyle Style;
|
||||
colors[MaterialColor(Style::Red, Style::Shade50)] = "#FFEBEE";
|
||||
colors[MaterialColor(Style::Red, Style::Shade100)] = "#FFCDD2";
|
||||
colors[MaterialColor(Style::Red, Style::Shade200)] = "#EF9A9A";
|
||||
colors[MaterialColor(Style::Red, Style::Shade300)] = "#E57373";
|
||||
colors[MaterialColor(Style::Red, Style::Shade400)] = "#EF5350";
|
||||
colors[MaterialColor(Style::Red, Style::Shade500)] = "#F44336";
|
||||
colors[MaterialColor(Style::Red, Style::Shade600)] = "#E53935";
|
||||
colors[MaterialColor(Style::Red, Style::Shade700)] = "#D32F2F";
|
||||
colors[MaterialColor(Style::Red, Style::Shade800)] = "#C62828";
|
||||
colors[MaterialColor(Style::Red, Style::Shade900)] = "#B71C1C";
|
||||
colors[MaterialColor(Style::Red, Style::ShadeA100)] = "#FF8A80";
|
||||
colors[MaterialColor(Style::Red, Style::ShadeA200)] = "#FF5252";
|
||||
colors[MaterialColor(Style::Red, Style::ShadeA400)] = "#FF1744";
|
||||
colors[MaterialColor(Style::Red, Style::ShadeA700)] = "#D50000";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade50)] = "#FCE4EC";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade100)] = "#F8BBD0";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade200)] = "#F48FB1";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade300)] = "#F06292";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade400)] = "#EC407A";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade500)] = "#E91E63";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade600)] = "#D81B60";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade700)] = "#C2185B";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade800)] = "#AD1457";
|
||||
colors[MaterialColor(Style::Pink, Style::Shade900)] = "#880E4F";
|
||||
colors[MaterialColor(Style::Pink, Style::ShadeA100)] = "#FF80AB";
|
||||
colors[MaterialColor(Style::Pink, Style::ShadeA200)] = "#FF4081";
|
||||
colors[MaterialColor(Style::Pink, Style::ShadeA400)] = "#F50057";
|
||||
colors[MaterialColor(Style::Pink, Style::ShadeA700)] = "#C51162";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade50)] = "#F3E5F5";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade100)] = "#E1BEE7";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade200)] = "#CE93D8";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade300)] = "#BA68C8";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade400)] = "#AB47BC";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade500)] = "#9C27B0";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade600)] = "#8E24AA";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade700)] = "#7B1FA2";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade800)] = "#6A1B9A";
|
||||
colors[MaterialColor(Style::Purple, Style::Shade900)] = "#4A148C";
|
||||
colors[MaterialColor(Style::Purple, Style::ShadeA100)] = "#EA80FC";
|
||||
colors[MaterialColor(Style::Purple, Style::ShadeA200)] = "#E040FB";
|
||||
colors[MaterialColor(Style::Purple, Style::ShadeA400)] = "#D500F9";
|
||||
colors[MaterialColor(Style::Purple, Style::ShadeA700)] = "#AA00FF";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade50)] = "#EDE7F6";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade100)] = "#D1C4E9";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade200)] = "#B39DDB";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade300)] = "#9575CD";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade400)] = "#7E57C2";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade500)] = "#673AB7";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade600)] = "#5E35B1";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade700)] = "#512DA8";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade800)] = "#4527A0";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::Shade900)] = "#311B92";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::ShadeA100)] = "#B388FF";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::ShadeA200)] = "#7C4DFF";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::ShadeA400)] = "#651FFF";
|
||||
colors[MaterialColor(Style::DeepPurple, Style::ShadeA700)] = "#6200EA";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade50)] = "#E8EAF6";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade100)] = "#C5CAE9";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade200)] = "#9FA8DA";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade300)] = "#7986CB";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade400)] = "#5C6BC0";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade500)] = "#3F51B5";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade600)] = "#3949AB";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade700)] = "#303F9F";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade800)] = "#283593";
|
||||
colors[MaterialColor(Style::Indigo, Style::Shade900)] = "#1A237E";
|
||||
colors[MaterialColor(Style::Indigo, Style::ShadeA100)] = "#8C9EFF";
|
||||
colors[MaterialColor(Style::Indigo, Style::ShadeA200)] = "#536DFE";
|
||||
colors[MaterialColor(Style::Indigo, Style::ShadeA400)] = "#3D5AFE";
|
||||
colors[MaterialColor(Style::Indigo, Style::ShadeA700)] = "#304FFE";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade50)] = "#E3F2FD";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade100)] = "#BBDEFB";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade200)] = "#90CAF9";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade300)] = "#64B5F6";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade400)] = "#42A5F5";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade500)] = "#2196F3";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade600)] = "#1E88E5";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade700)] = "#1976D2";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade800)] = "#1565C0";
|
||||
colors[MaterialColor(Style::Blue, Style::Shade900)] = "#0D47A1";
|
||||
colors[MaterialColor(Style::Blue, Style::ShadeA100)] = "#82B1FF";
|
||||
colors[MaterialColor(Style::Blue, Style::ShadeA200)] = "#448AFF";
|
||||
colors[MaterialColor(Style::Blue, Style::ShadeA400)] = "#2979FF";
|
||||
colors[MaterialColor(Style::Blue, Style::ShadeA700)] = "#2962FF";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade50)] = "#E1F5FE";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade100)] = "#B3E5FC";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade200)] = "#81D4FA";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade300)] = "#4FC3F7";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade400)] = "#29B6F6";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade500)] = "#03A9F4";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade600)] = "#039BE5";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade700)] = "#0288D1";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade800)] = "#0277BD";
|
||||
colors[MaterialColor(Style::LightBlue, Style::Shade900)] = "#01579B";
|
||||
colors[MaterialColor(Style::LightBlue, Style::ShadeA100)] = "#80D8FF";
|
||||
colors[MaterialColor(Style::LightBlue, Style::ShadeA200)] = "#40C4FF";
|
||||
colors[MaterialColor(Style::LightBlue, Style::ShadeA400)] = "#00B0FF";
|
||||
colors[MaterialColor(Style::LightBlue, Style::ShadeA700)] = "#0091EA";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade50)] = "#E0F7FA";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade100)] = "#B2EBF2";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade200)] = "#80DEEA";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade300)] = "#4DD0E1";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade400)] = "#26C6DA";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade500)] = "#00BCD4";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade600)] = "#00ACC1";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade700)] = "#0097A7";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade800)] = "#00838F";
|
||||
colors[MaterialColor(Style::Cyan, Style::Shade900)] = "#006064";
|
||||
colors[MaterialColor(Style::Cyan, Style::ShadeA100)] = "#84FFFF";
|
||||
colors[MaterialColor(Style::Cyan, Style::ShadeA200)] = "#18FFFF";
|
||||
colors[MaterialColor(Style::Cyan, Style::ShadeA400)] = "#00E5FF";
|
||||
colors[MaterialColor(Style::Cyan, Style::ShadeA700)] = "#00B8D4";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade50)] = "#E0F2F1";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade100)] = "#B2DFDB";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade200)] = "#80CBC4";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade300)] = "#4DB6AC";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade400)] = "#26A69A";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade500)] = "#009688";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade600)] = "#00897B";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade700)] = "#00796B";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade800)] = "#00695C";
|
||||
colors[MaterialColor(Style::Teal, Style::Shade900)] = "#004D40";
|
||||
colors[MaterialColor(Style::Teal, Style::ShadeA100)] = "#A7FFEB";
|
||||
colors[MaterialColor(Style::Teal, Style::ShadeA200)] = "#64FFDA";
|
||||
colors[MaterialColor(Style::Teal, Style::ShadeA400)] = "#1DE9B6";
|
||||
colors[MaterialColor(Style::Teal, Style::ShadeA700)] = "#00BFA5";
|
||||
colors[MaterialColor(Style::Green, Style::Shade50)] = "#E8F5E9";
|
||||
colors[MaterialColor(Style::Green, Style::Shade100)] = "#C8E6C9";
|
||||
colors[MaterialColor(Style::Green, Style::Shade200)] = "#A5D6A7";
|
||||
colors[MaterialColor(Style::Green, Style::Shade300)] = "#81C784";
|
||||
colors[MaterialColor(Style::Green, Style::Shade400)] = "#66BB6A";
|
||||
colors[MaterialColor(Style::Green, Style::Shade500)] = "#4CAF50";
|
||||
colors[MaterialColor(Style::Green, Style::Shade600)] = "#43A047";
|
||||
colors[MaterialColor(Style::Green, Style::Shade700)] = "#388E3C";
|
||||
colors[MaterialColor(Style::Green, Style::Shade800)] = "#2E7D32";
|
||||
colors[MaterialColor(Style::Green, Style::Shade900)] = "#1B5E20";
|
||||
colors[MaterialColor(Style::Green, Style::ShadeA100)] = "#B9F6CA";
|
||||
colors[MaterialColor(Style::Green, Style::ShadeA200)] = "#69F0AE";
|
||||
colors[MaterialColor(Style::Green, Style::ShadeA400)] = "#00E676";
|
||||
colors[MaterialColor(Style::Green, Style::ShadeA700)] = "#00C853";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade50)] = "#F1F8E9";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade100)] = "#DCEDC8";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade200)] = "#C5E1A5";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade300)] = "#AED581";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade400)] = "#9CCC65";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade500)] = "#8BC34A";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade600)] = "#7CB342";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade700)] = "#689F38";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade800)] = "#558B2F";
|
||||
colors[MaterialColor(Style::LightGreen, Style::Shade900)] = "#33691E";
|
||||
colors[MaterialColor(Style::LightGreen, Style::ShadeA100)] = "#CCFF90";
|
||||
colors[MaterialColor(Style::LightGreen, Style::ShadeA200)] = "#B2FF59";
|
||||
colors[MaterialColor(Style::LightGreen, Style::ShadeA400)] = "#76FF03";
|
||||
colors[MaterialColor(Style::LightGreen, Style::ShadeA700)] = "#64DD17";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade50)] = "#F9FBE7";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade100)] = "#F0F4C3";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade200)] = "#E6EE9C";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade300)] = "#DCE775";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade400)] = "#D4E157";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade500)] = "#CDDC39";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade600)] = "#C0CA33";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade700)] = "#AFB42B";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade800)] = "#9E9D24";
|
||||
colors[MaterialColor(Style::Lime, Style::Shade900)] = "#827717";
|
||||
colors[MaterialColor(Style::Lime, Style::ShadeA100)] = "#F4FF81";
|
||||
colors[MaterialColor(Style::Lime, Style::ShadeA200)] = "#EEFF41";
|
||||
colors[MaterialColor(Style::Lime, Style::ShadeA400)] = "#C6FF00";
|
||||
colors[MaterialColor(Style::Lime, Style::ShadeA700)] = "#AEEA00";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade50)] = "#FFFDE7";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade100)] = "#FFF9C4";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade200)] = "#FFF59D";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade300)] = "#FFF176";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade400)] = "#FFEE58";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade500)] = "#FFEB3B";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade600)] = "#FDD835";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade700)] = "#FBC02D";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade800)] = "#F9A825";
|
||||
colors[MaterialColor(Style::Yellow, Style::Shade900)] = "#F57F17";
|
||||
colors[MaterialColor(Style::Yellow, Style::ShadeA100)] = "#FFFF8D";
|
||||
colors[MaterialColor(Style::Yellow, Style::ShadeA200)] = "#FFFF00";
|
||||
colors[MaterialColor(Style::Yellow, Style::ShadeA400)] = "#FFEA00";
|
||||
colors[MaterialColor(Style::Yellow, Style::ShadeA700)] = "#FFD600";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade50)] = "#FFF8E1";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade100)] = "#FFECB3";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade200)] = "#FFE082";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade300)] = "#FFD54F";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade400)] = "#FFCA28";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade500)] = "#FFC107";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade600)] = "#FFB300";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade700)] = "#FFA000";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade800)] = "#FF8F00";
|
||||
colors[MaterialColor(Style::Amber, Style::Shade900)] = "#FF6F00";
|
||||
colors[MaterialColor(Style::Amber, Style::ShadeA100)] = "#FFE57F";
|
||||
colors[MaterialColor(Style::Amber, Style::ShadeA200)] = "#FFD740";
|
||||
colors[MaterialColor(Style::Amber, Style::ShadeA400)] = "#FFC400";
|
||||
colors[MaterialColor(Style::Amber, Style::ShadeA700)] = "#FFAB00";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade50)] = "#FFF3E0";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade100)] = "#FFE0B2";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade200)] = "#FFCC80";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade300)] = "#FFB74D";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade400)] = "#FFA726";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade500)] = "#FF9800";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade600)] = "#FB8C00";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade700)] = "#F57C00";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade800)] = "#EF6C00";
|
||||
colors[MaterialColor(Style::Orange, Style::Shade900)] = "#E65100";
|
||||
colors[MaterialColor(Style::Orange, Style::ShadeA100)] = "#FFD180";
|
||||
colors[MaterialColor(Style::Orange, Style::ShadeA200)] = "#FFAB40";
|
||||
colors[MaterialColor(Style::Orange, Style::ShadeA400)] = "#FF9100";
|
||||
colors[MaterialColor(Style::Orange, Style::ShadeA700)] = "#FF6D00";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade50)] = "#FBE9E7";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade100)] = "#FFCCBC";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade200)] = "#FFAB91";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade300)] = "#FF8A65";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade400)] = "#FF7043";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade500)] = "#FF5722";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade600)] = "#F4511E";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade700)] = "#E64A19";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade800)] = "#D84315";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::Shade900)] = "#BF360C";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::ShadeA100)] = "#FF9E80";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::ShadeA200)] = "#FF6E40";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::ShadeA400)] = "#FF3D00";
|
||||
colors[MaterialColor(Style::DeepOrange, Style::ShadeA700)] = "#DD2C00";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade50)] = "#EFEBE9";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade100)] = "#D7CCC8";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade200)] = "#BCAAA4";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade300)] = "#A1887F";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade400)] = "#8D6E63";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade500)] = "#795548";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade600)] = "#6D4C41";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade700)] = "#5D4037";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade800)] = "#4E342E";
|
||||
colors[MaterialColor(Style::Brown, Style::Shade900)] = "#3E2723";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade50)] = "#FAFAFA";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade100)] = "#F5F5F5";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade200)] = "#EEEEEE";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade300)] = "#E0E0E0";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade400)] = "#BDBDBD";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade500)] = "#9E9E9E";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade600)] = "#757575";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade700)] = "#616161";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade800)] = "#424242";
|
||||
colors[MaterialColor(Style::Grey, Style::Shade900)] = "#212121";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade50)] = "#ECEFF1";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade100)] = "#CFD8DC";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade200)] = "#B0BEC5";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade300)] = "#90A4AE";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade400)] = "#78909C";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade500)] = "#607D8B";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade600)] = "#546E7A";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade700)] = "#455A64";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade800)] = "#37474F";
|
||||
colors[MaterialColor(Style::BlueGrey, Style::Shade900)] = "#263238";
|
||||
}
|
||||
}
|
||||
|
||||
QQuickMaterialStyle::QQuickMaterialStyle(QObject *parent) :
|
||||
QObject(*(new QQuickMaterialStylePrivate()), parent)
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
QQuickItem *item = qobject_cast<QQuickItem *>(parent);
|
||||
if (item)
|
||||
QQuickItemPrivate::get(item)->addItemChangeListener(d, QQuickItemPrivate::Parent);
|
||||
}
|
||||
|
||||
QQuickMaterialStyle::~QQuickMaterialStyle()
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
QQuickItem *item = qobject_cast<QQuickItem *>(parent());
|
||||
if (item)
|
||||
QQuickItemPrivate::get(item)->removeItemChangeListener(d, QQuickItemPrivate::Parent);
|
||||
|
||||
reparent(Q_NULLPTR);
|
||||
}
|
||||
|
||||
QQuickMaterialStyle *QQuickMaterialStyle::qmlAttachedProperties(QObject *object)
|
||||
{
|
||||
QQuickMaterialStyle *style = new QQuickMaterialStyle(object);
|
||||
QQuickMaterialStyle *parent = QQuickStyle::findParent<QQuickMaterialStyle>(object);
|
||||
if (parent)
|
||||
style->reparent(parent);
|
||||
|
||||
QList<QQuickMaterialStyle *> childStyles = QQuickStyle::findChildren<QQuickMaterialStyle>(object);
|
||||
foreach (QQuickMaterialStyle *child, childStyles)
|
||||
child->reparent(style);
|
||||
return style;
|
||||
}
|
||||
|
||||
QQuickMaterialStyle::Theme QQuickMaterialStyle::theme() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme;
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::setTheme(Theme theme)
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
d->explicitTheme = true;
|
||||
if (d->theme != theme) {
|
||||
d->theme = theme;
|
||||
foreach (QQuickMaterialStyle *child, d->childStyles) {
|
||||
child->inheritTheme(theme);
|
||||
}
|
||||
emit themeChanged();
|
||||
emit paletteChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::inheritTheme(Theme theme)
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
if (!d->explicitTheme && d->theme != theme) {
|
||||
d->theme = theme;
|
||||
foreach (QQuickMaterialStyle *child, d->childStyles) {
|
||||
child->inheritTheme(theme);
|
||||
}
|
||||
emit themeChanged();
|
||||
emit paletteChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::resetTheme()
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
if (d->explicitTheme) {
|
||||
d->explicitTheme = false;
|
||||
QQuickMaterialStyle *attachedParent = QQuickStyle::findParent<QQuickMaterialStyle>(parent());
|
||||
inheritTheme(attachedParent ? attachedParent->theme() : defaultTheme);
|
||||
}
|
||||
}
|
||||
|
||||
QQuickMaterialStyle::Color QQuickMaterialStyle::primary() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->primary;
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::setPrimary(QQuickMaterialStyle::Color color)
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
d->explicitPrimary = true;
|
||||
if (d->primary != color) {
|
||||
d->primary = color;
|
||||
emit primaryChanged();
|
||||
emit paletteChanged();
|
||||
|
||||
foreach (QQuickMaterialStyle *child, d->childStyles)
|
||||
child->inheritPrimary(color);
|
||||
}
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::inheritPrimary(QQuickMaterialStyle::Color color)
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
if (!d->explicitPrimary && d->primary != color) {
|
||||
d->primary = color;
|
||||
foreach (QQuickMaterialStyle *child, d->childStyles)
|
||||
child->inheritPrimary(color);
|
||||
emit primaryChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::resetPrimary()
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
if (d->explicitPrimary) {
|
||||
d->explicitPrimary = false;
|
||||
QQuickMaterialStyle *attachedParent = QQuickStyle::findParent<QQuickMaterialStyle>(parent());
|
||||
inheritPrimary(attachedParent ? attachedParent->primary() : defaultPrimary);
|
||||
}
|
||||
}
|
||||
|
||||
QQuickMaterialStyle::Color QQuickMaterialStyle::accent() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->accent;
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::setAccent(QQuickMaterialStyle::Color color)
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
d->explicitAccent = true;
|
||||
if (d->accent != color) {
|
||||
d->accent = color;
|
||||
emit accentChanged();
|
||||
emit paletteChanged();
|
||||
|
||||
foreach (QQuickMaterialStyle *child, d->childStyles)
|
||||
child->inheritAccent(color);
|
||||
}
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::inheritAccent(QQuickMaterialStyle::Color color)
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
if (!d->explicitAccent && d->accent != color) {
|
||||
d->accent = color;
|
||||
foreach (QQuickMaterialStyle *child, d->childStyles)
|
||||
child->inheritAccent(color);
|
||||
emit accentChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::resetAccent()
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
if (d->explicitAccent) {
|
||||
d->explicitAccent = false;
|
||||
QQuickMaterialStyle *attachedParent = QQuickStyle::findParent<QQuickMaterialStyle>(parent());
|
||||
inheritAccent(attachedParent ? attachedParent->accent() : defaultAccent);
|
||||
}
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::accentColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return color(d->accent, Shade500);
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::backgroundColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? backgroundColorLight : backgroundColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::primaryTextColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? primaryTextColorLight : primaryTextColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::secondaryTextColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? secondaryTextColorLight : secondaryTextColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::hintTextColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? hintTextColorLight : hintTextColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::textSelectionColor() const
|
||||
{
|
||||
QColor color = accentColor();
|
||||
color.setAlphaF(0.4);
|
||||
return color;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::dropShadowColor() const
|
||||
{
|
||||
return QColor("#40000000");
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::dividerColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? dividerTextColorLight : dividerTextColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::raisedButtonColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? raisedButtonColorLight : accentColor();
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::raisedButtonHoverColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
// The specs don't specify different colors here for the light theme.
|
||||
return d->theme == Light ? raisedButtonColorLight : color(d->accent, Shade600);
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::raisedButtonPressColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? raisedButtonPressColorLight : color(d->accent, Shade700);
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::raisedButtonDisabledColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? raisedButtonDisabledColorLight : raisedButtonDisabledColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::flatButtonPressColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? flatButtonPressColorLight : flatButtonPressColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::flatButtonFocusColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? flatButtonFocusColorLight : flatButtonFocusColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::frameColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? frameColorLight : frameColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::checkBoxUncheckedRippleColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? checkBoxUncheckedRippleColorLight : checkBoxUncheckedRippleColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::checkBoxCheckedRippleColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
QColor pressColor = color(d->accent, Shade500);
|
||||
// TODO: find out actual value
|
||||
pressColor.setAlpha(30);
|
||||
return pressColor;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::switchUncheckedTrackColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? switchUncheckedTrackColorLight : switchUncheckedTrackColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::switchCheckedTrackColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
QColor trackColor = d->theme == Light ? accentColor() : color(d->accent, Shade200);
|
||||
trackColor.setAlphaF(0.5);
|
||||
return trackColor;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::switchUncheckedHandleColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? color(Grey, Shade50) : color(Grey, Shade400);
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::switchCheckedHandleColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? accentColor() : color(d->accent, Shade200);
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::switchDisabledTrackColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? switchDisabledTrackColorLight : switchDisabledTrackColorDark;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::switchDisabledHandleColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? color(Grey, Shade400) : color(Grey, Shade800);
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::scrollBarColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? "#40000000" : "#40FFFFFF";
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::scrollBarPressedColor() const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->theme == Light ? "#80000000" : "#80FFFFFF";
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::drawerBackgroundColor() const
|
||||
{
|
||||
return dividerTextColorLight;
|
||||
}
|
||||
|
||||
QColor QQuickMaterialStyle::color(QQuickMaterialStyle::Color color, QQuickMaterialStyle::Shade shade) const
|
||||
{
|
||||
Q_D(const QQuickMaterialStyle);
|
||||
return d->colors.value(MaterialColor(color, shade));
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::reparent(QQuickMaterialStyle *style)
|
||||
{
|
||||
Q_D(QQuickMaterialStyle);
|
||||
if (d->parentStyle != style) {
|
||||
if (d->parentStyle)
|
||||
d->parentStyle->d_func()->childStyles.remove(this);
|
||||
d->parentStyle = style;
|
||||
if (style) {
|
||||
style->d_func()->childStyles.insert(this);
|
||||
inheritPrimary(style->primary());
|
||||
inheritAccent(style->accent());
|
||||
inheritTheme(style->theme());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QQuickMaterialStyle::itemParentChanged(QQuickItem *item, QQuickItem *parentItem)
|
||||
{
|
||||
QQuickMaterialStyle *style = QQuickStyle::instance<QQuickMaterialStyle>(item);
|
||||
if (style) {
|
||||
QQuickMaterialStyle *parent = QQuickStyle::findParent<QQuickMaterialStyle>(parentItem);
|
||||
if (parent)
|
||||
style->reparent(parent);
|
||||
}
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
|
@ -0,0 +1,214 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QQUICKMATERIALSTYLE_P_H
|
||||
#define QQUICKMATERIALSTYLE_P_H
|
||||
|
||||
//
|
||||
// W A R N I N G
|
||||
// -------------
|
||||
//
|
||||
// This file is not part of the Qt API. It exists purely as an
|
||||
// implementation detail. This header file may change from version to
|
||||
// version without notice, or even be removed.
|
||||
//
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include <QtQml/qqml.h>
|
||||
#include <QtGui/qcolor.h>
|
||||
#include <QtCore/qobject.h>
|
||||
#include <QtQuick/private/qquickitemchangelistener_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QQuickMaterialStylePrivate;
|
||||
|
||||
class QQuickMaterialStyle : public QObject, public QQuickItemChangeListener
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(Theme theme READ theme WRITE setTheme RESET resetTheme NOTIFY themeChanged FINAL)
|
||||
Q_PROPERTY(Color primary READ primary WRITE setPrimary RESET resetPrimary NOTIFY primaryChanged FINAL)
|
||||
Q_PROPERTY(Color accent READ accent WRITE setAccent RESET resetAccent NOTIFY accentChanged FINAL)
|
||||
Q_PROPERTY(QColor accentColor READ accentColor NOTIFY accentChanged FINAL)
|
||||
Q_PROPERTY(QColor backgroundColor READ backgroundColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor primaryTextColor READ primaryTextColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor secondaryTextColor READ secondaryTextColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor hintTextColor READ hintTextColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor textSelectionColor READ textSelectionColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor dropShadowColor READ dropShadowColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor dividerColor READ dividerColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor raisedButtonColor READ raisedButtonColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor raisedButtonHoverColor READ raisedButtonHoverColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor raisedButtonPressColor READ raisedButtonPressColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor raisedButtonDisabledColor READ raisedButtonDisabledColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor flatButtonPressColor READ flatButtonPressColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor flatButtonFocusColor READ flatButtonFocusColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor frameColor READ frameColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor checkBoxUncheckedRippleColor READ checkBoxUncheckedRippleColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor checkBoxCheckedRippleColor READ checkBoxCheckedRippleColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor switchUncheckedTrackColor READ switchUncheckedTrackColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor switchCheckedTrackColor READ switchCheckedTrackColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor switchUncheckedHandleColor READ switchUncheckedHandleColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor switchCheckedHandleColor READ switchCheckedHandleColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor switchDisabledTrackColor READ switchDisabledTrackColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor switchDisabledHandleColor READ switchDisabledHandleColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor scrollBarColor READ scrollBarColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor scrollBarPressedColor READ scrollBarPressedColor NOTIFY paletteChanged FINAL)
|
||||
Q_PROPERTY(QColor drawerBackgroundColor READ drawerBackgroundColor NOTIFY paletteChanged FINAL)
|
||||
|
||||
public:
|
||||
enum Theme {
|
||||
Light,
|
||||
Dark
|
||||
};
|
||||
|
||||
enum Color {
|
||||
Red,
|
||||
Pink,
|
||||
Purple,
|
||||
DeepPurple,
|
||||
Indigo,
|
||||
Blue,
|
||||
LightBlue,
|
||||
Cyan,
|
||||
Teal,
|
||||
Green,
|
||||
LightGreen,
|
||||
Lime,
|
||||
Yellow,
|
||||
Amber,
|
||||
Orange,
|
||||
DeepOrange,
|
||||
Brown,
|
||||
Grey,
|
||||
BlueGrey
|
||||
};
|
||||
|
||||
enum Shade {
|
||||
Shade50,
|
||||
Shade100,
|
||||
Shade200,
|
||||
Shade300,
|
||||
Shade400,
|
||||
Shade500,
|
||||
Shade600,
|
||||
Shade700,
|
||||
Shade800,
|
||||
Shade900,
|
||||
ShadeA100,
|
||||
ShadeA200,
|
||||
ShadeA400,
|
||||
ShadeA700,
|
||||
};
|
||||
|
||||
Q_ENUM(Theme)
|
||||
Q_ENUM(Color)
|
||||
Q_ENUM(Shade)
|
||||
|
||||
explicit QQuickMaterialStyle(QObject *parent = Q_NULLPTR);
|
||||
~QQuickMaterialStyle();
|
||||
|
||||
static QQuickMaterialStyle *qmlAttachedProperties(QObject *object);
|
||||
|
||||
Theme theme() const;
|
||||
void setTheme(Theme theme);
|
||||
void inheritTheme(Theme theme);
|
||||
void resetTheme();
|
||||
|
||||
QColor primaryColorLight() const;
|
||||
|
||||
Color primary() const;
|
||||
void setPrimary(Color color);
|
||||
void inheritPrimary(Color color);
|
||||
void resetPrimary();
|
||||
|
||||
QColor primaryColorDark() const;
|
||||
|
||||
Color accent() const;
|
||||
void setAccent(Color color);
|
||||
void inheritAccent(Color color);
|
||||
void resetAccent();
|
||||
|
||||
QColor accentColor() const;
|
||||
QColor backgroundColor() const;
|
||||
QColor primaryTextColor() const;
|
||||
QColor secondaryTextColor() const;
|
||||
QColor hintTextColor() const;
|
||||
QColor textSelectionColor() const;
|
||||
QColor dropShadowColor() const;
|
||||
QColor dividerColor() const;
|
||||
QColor raisedButtonColor() const;
|
||||
QColor raisedButtonHoverColor() const;
|
||||
QColor raisedButtonPressColor() const;
|
||||
QColor raisedButtonDisabledColor() const;
|
||||
QColor flatButtonPressColor() const;
|
||||
QColor flatButtonFocusColor() const;
|
||||
QColor frameColor() const;
|
||||
QColor checkBoxUncheckedRippleColor() const;
|
||||
QColor checkBoxCheckedRippleColor() const;
|
||||
QColor switchUncheckedTrackColor() const;
|
||||
QColor switchCheckedTrackColor() const;
|
||||
QColor switchUncheckedHandleColor() const;
|
||||
QColor switchCheckedHandleColor() const;
|
||||
QColor switchDisabledTrackColor() const;
|
||||
QColor switchDisabledHandleColor() const;
|
||||
QColor scrollBarColor() const;
|
||||
QColor scrollBarPressedColor() const;
|
||||
QColor drawerBackgroundColor() const;
|
||||
|
||||
Q_INVOKABLE QColor color(Color color, Shade shade) const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void themeChanged();
|
||||
void primaryChanged();
|
||||
void accentChanged();
|
||||
void paletteChanged();
|
||||
|
||||
protected:
|
||||
void reparent(QQuickMaterialStyle *theme);
|
||||
void itemParentChanged(QQuickItem *item, QQuickItem *parent) Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(QQuickMaterialStyle)
|
||||
Q_DECLARE_PRIVATE(QQuickMaterialStyle)
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
QML_DECLARE_TYPEINFO(QQuickMaterialStyle, QML_HAS_ATTACHED_PROPERTIES)
|
||||
|
||||
#endif // QQUICKMATERIALSTYLE_P_H
|
|
@ -0,0 +1,64 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtQml/qqmlextensionplugin.h>
|
||||
#include <QtCore/qfileselector.h>
|
||||
#include <QtCore/qurl.h>
|
||||
|
||||
#include "qquickmaterialstyle_p.h"
|
||||
#include "qquickmaterialprogressring_p.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QtQuickMaterialStylePlugin : public QQmlExtensionPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
|
||||
|
||||
public:
|
||||
void registerTypes(const char *uri);
|
||||
};
|
||||
|
||||
void QtQuickMaterialStylePlugin::registerTypes(const char *uri)
|
||||
{
|
||||
qmlRegisterUncreatableType<QQuickMaterialStyle>(uri, 1, 0, "Material", "Material is an attached property");
|
||||
qmlRegisterType<QQuickMaterialProgressRing>(uri, 1, 0, "ProgressRing");
|
||||
qmlRegisterType<QQuickMaterialRingAnimator>(uri, 1, 0, "RingAnimator");
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#include "qtquickmaterialstyleplugin.moc"
|
|
@ -0,0 +1,5 @@
|
|||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>images/check.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -1,5 +1,6 @@
|
|||
TEMPLATE = subdirs
|
||||
SUBDIRS += \
|
||||
controls \
|
||||
controls/material/material.pro \
|
||||
calendar \
|
||||
templates
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
[signalHandlers:material/CheckBox.qml]
|
||||
*
|
||||
[signalHandlers:material/TextArea.qml]
|
||||
*
|
||||
[signalHandlers:material/TextField.qml]
|
||||
*
|
||||
[anchors:material/Button.qml]
|
||||
*
|
||||
[anchors:material/CheckBox.qml]
|
||||
*
|
||||
[anchors:material/RadioButton.qml]
|
||||
*
|
||||
[anchors:material/RangeSlider.qml]
|
||||
*
|
||||
[anchors:material/Slider.qml]
|
||||
*
|
||||
[anchors:material/Switch.qml]
|
||||
*
|
||||
[attachedObjects:material/CheckBox.qml]
|
||||
*
|
||||
[attachedObjects:material/RadioButton.qml]
|
||||
*
|
||||
[attachedObjects:material/RangeSlider.qml]
|
||||
*
|
||||
[attachedObjects:material/Switch.qml]
|
||||
*
|
||||
[attachedObjects:material/Slider.qml]
|
||||
*
|
|
@ -9,3 +9,6 @@ DEFINES += QQC2_IMPORT_PATH=\\\"$$QQC2_SOURCE_TREE/src/imports\\\"
|
|||
|
||||
SOURCES += \
|
||||
$$PWD/tst_sanity.cpp
|
||||
|
||||
OTHER_FILES += \
|
||||
$$PWD/BLACKLIST
|
||||
|
|
Loading…
Reference in New Issue