/* SPDX-FileCopyrightText: 2016 Marco Martin SPDX-License-Identifier: LGPL-2.0-or-later */ import QtQuick import QtQuick.Templates as T import org.kde.kirigami as Kirigami import org.kde.ksvg as KSvg //NOTE: importing PlasmaCore is necessary in order to make KSvg load the current Plasma Theme import org.kde.plasma.core as PlasmaCore T.Drawer { id: control parent: T.ApplicationWindow.overlay 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 ? 1 : 0 leftPadding: control.edge === Qt.RightEdge ? 1 : 0 rightPadding: control.edge === Qt.LeftEdge ? 1 : 0 bottomPadding: control.edge === Qt.TopEdge ? 1 : 0 background: KSvg.FrameSvgItem { anchors { fill: parent leftMargin: -margins.left topMargin: -margins.top rightMargin: -margins.right bottomMargin: -margins.bottom } implicitWidth: Kirigami.Units.gridUnit * 12 imagePath: "widgets/background" enabledBorders: { switch (control.edge) { case Qt.BottomEdge: return KSvg.FrameSvgItem.TopBorder; case Qt.RightEdge: return KSvg.FrameSvgItem.LeftBorder; case Qt.TopEdge: return KSvg.FrameSvgItem.BottomBorder; case Qt.LeftEdge: default: return KSvg.FrameSvgItem.RightBorder; } } } enter: Transition { SmoothedAnimation { velocity: 5 } } exit: Transition { SmoothedAnimation { velocity: 5 } } }