diff options
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/controls/Drawer.qml | 40 | ||||
-rw-r--r-- | src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc | 7 | ||||
-rw-r--r-- | src/imports/controls/material/Drawer.qml | 38 | ||||
-rw-r--r-- | src/imports/controls/universal/Drawer.qml | 80 | ||||
-rw-r--r-- | src/imports/controls/universal/universal.pri | 1 |
5 files changed, 146 insertions, 20 deletions
diff --git a/src/imports/controls/Drawer.qml b/src/imports/controls/Drawer.qml index 60abeb0c..bdab6376 100644 --- a/src/imports/controls/Drawer.qml +++ b/src/imports/controls/Drawer.qml @@ -35,18 +35,44 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Window 2.2 import Qt.labs.templates 1.0 as T T.Drawer { id: control - parent: T.ApplicationWindow.overlay || Window.contentItem - width: parent ? parent.width : 0 // TODO: Window.width - height: parent ? parent.height : 0 // TODO: Window.height + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) - // TODO: make this a proper transition - animation: SmoothedAnimation { - velocity: 5 + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: control.edge === Qt.BottomEdge + leftPadding: control.edge === Qt.RightEdge + rightPadding: control.edge === Qt.LeftEdge + bottomPadding: control.edge === Qt.TopEdge + + //! [enter] + enter: Transition { SmoothedAnimation { velocity: 5 } } + //! [enter] + + //! [exit] + exit: Transition { SmoothedAnimation { velocity: 5 } } + //! [exit] + + //! [contentItem] + contentItem: Item { } + //! [contentItem] + + //! [background] + background: Rectangle { + Rectangle { + readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge + width: horizontal ? 1 : parent.width + height: horizontal ? parent.height : 1 + color: "#353637" + x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0 + y: control.edge === Qt.BottomEdge ? parent.height - 1 : 0 + } } + //! [background] } diff --git a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc index bc1e2504..57d310f0 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc @@ -148,17 +148,12 @@ \section1 Customizing Drawer Drawer can have a visual \l {Control::background}{background} - item. The navigation is implemented by the \l {Control::contentItem} - {content item}. + item. \section3 Background \snippet Drawer.qml background - \section3 Content item - - Drawer has no content item by default. - \section1 Customizing Frame diff --git a/src/imports/controls/material/Drawer.qml b/src/imports/controls/material/Drawer.qml index 133ea9c8..939beb5d 100644 --- a/src/imports/controls/material/Drawer.qml +++ b/src/imports/controls/material/Drawer.qml @@ -35,19 +35,43 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Window 2.2 +import QtGraphicalEffects 1.0 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 T.Drawer { id: control - parent: T.ApplicationWindow.overlay || Window.contentItem - width: parent ? parent.width : 0 // TODO: Window.width - height: parent ? parent.height : 0 // TODO: Window.height + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) - // TODO: make this a proper transition - animation: SmoothedAnimation { - velocity: 5 + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + //! [enter] + enter: Transition { SmoothedAnimation { velocity: 5 } } + //! [enter] + + //! [exit] + exit: Transition { SmoothedAnimation { velocity: 5 } } + //! [exit] + + //! [contentItem] + contentItem: Item { } + //! [contentItem] + + //! [background] + background: Rectangle { + color: control.Material.dialogColor + + layer.enabled: control.position > 0 + layer.effect: DropShadow { + horizontalOffset: control.edge === Qt.LeftEdge ? 1 : control.edge === Qt.RightEdge ? -1 : 0 + verticalOffset: control.edge === Qt.TopEdge ? 1 : control.edge === Qt.BottomEdge ? -1 : 0 + color: control.Material.dropShadowColor + samples: 15 + spread: 0.5 + } } + //! [background] } diff --git a/src/imports/controls/universal/Drawer.qml b/src/imports/controls/universal/Drawer.qml new file mode 100644 index 00000000..57dac6d7 --- /dev/null +++ b/src/imports/controls/universal/Drawer.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** 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.universal 1.0 + +T.Drawer { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: control.edge === Qt.BottomEdge + leftPadding: control.edge === Qt.RightEdge + rightPadding: control.edge === Qt.LeftEdge + bottomPadding: control.edge === Qt.TopEdge + + //! [enter] + enter: Transition { SmoothedAnimation { velocity: 5 } } + //! [enter] + + //! [exit] + exit: Transition { SmoothedAnimation { velocity: 5 } } + //! [exit] + + //! [contentItem] + contentItem: Item { } + //! [contentItem] + + //! [background] + background: Rectangle { + color: control.Universal.chromeMediumLowColor + Rectangle { + readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge + width: horizontal ? 1 : parent.width + height: horizontal ? parent.height : 1 + color: control.Universal.chromeHighColor + x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0 + y: control.edge === Qt.BottomEdge ? parent.height - 1 : 0 + } + } + //! [background] +} diff --git a/src/imports/controls/universal/universal.pri b/src/imports/controls/universal/universal.pri index a42589f7..6aa1baaa 100644 --- a/src/imports/controls/universal/universal.pri +++ b/src/imports/controls/universal/universal.pri @@ -5,6 +5,7 @@ QML_FILES += \ $$PWD/CheckBox.qml \ $$PWD/ComboBox.qml \ $$PWD/Dial.qml \ + $$PWD/Drawer.qml \ $$PWD/Frame.qml \ $$PWD/GroupBox.qml \ $$PWD/ItemDelegate.qml \ |