/**************************************************************************** ** ** Copyright (C) 2019 Luxoft Sweden AB ** Copyright (C) 2018 Pelagicore AG ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Neptune 3 UI. ** ** $QT_BEGIN_LICENSE:GPL-QTAS$ ** Commercial License Usage ** Licensees holding valid commercial Qt Automotive Suite 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 https://www.qt.io/terms-conditions. ** For further information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ** SPDX-License-Identifier: GPL-3.0 ** ****************************************************************************/ import QtQuick import QtQuick.Templates as T import QtQuick.Controls import QtQuick.Controls.impl import shared.Style import shared.Sizes import shared.utils T.Dialog { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, header && header.visible ? header.implicitWidth : 0, footer && footer.visible ? footer.implicitWidth : 0, contentWidth > 0 ? contentWidth + leftPadding + rightPadding : 0) implicitHeight: Math.max(background ? background.implicitHeight : 0, (header && header.visible ? header.implicitHeight + spacing : 0) + (footer && footer.visible ? footer.implicitHeight + spacing : 0) + (contentHeight > 0 ? contentHeight + topPadding + bottomPadding : 0)) contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) padding: 12 background: Rectangle { color: 'black' opacity: 0.85 } header: Label { visible: control.title elide: Label.ElideRight height: Sizes.dp(160) text: control.title font.pixelSize: Sizes.fontSizeM horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } footer: DialogButtonBox { visible: count > 0 } enter: Transition { NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200 } NumberAnimation { property: "scale"; from: 0.0; to: 1.0; duration: 200 } } exit: Transition { NumberAnimation { property: "opacity"; to: 0.0; duration: 200 } NumberAnimation { property: "scale"; to: 0.0; duration: 200 } } }