Warning, /plasma/latte-dock/declarativeimports/components/HeaderSwitch.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2019 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 import QtQuick 2.7
0007 import QtGraphicalEffects 1.0
0008 import QtQuick.Controls 1.4
0009 import QtQuick.Layouts 1.3
0010 
0011 import org.kde.plasma.core 2.0 as PlasmaCore
0012 import org.kde.plasma.components 2.0 as PlasmaComponents
0013 
0014 import org.kde.plasma.plasmoid 2.0
0015 
0016 import "." as LatteExtraControls
0017 
0018 import "private" as Private
0019 
0020 Item {
0021     id: item
0022 
0023     Layout.rightMargin: {
0024         if (level === 1) {
0025             return Qt.application.layoutDirection === Qt.RightToLeft ? 0 : 2 * units.smallSpacing
0026         }
0027 
0028         return 0;
0029     }
0030     Layout.leftMargin: {
0031         if (level === 1) {
0032             return Qt.application.layoutDirection === Qt.RightToLeft ? 2 * units.smallSpacing : 0
0033         }
0034 
0035         return 0;
0036     }
0037 
0038     property int level:1
0039     property bool checked: false
0040     property bool isFirstSubCategory: false
0041 
0042     readonly property int implicitWidth: row.width
0043 
0044     readonly property int implicitHeight: {
0045         if (level === 1) {
0046             return Math.max(headerText.implicitHeight, itemSwitch.implicitHeight);
0047         } else if (level === 2) {
0048             return Math.max(subHeaderText.implicitHeight, itemSwitch.implicitHeight)
0049         }
0050 
0051         return Math.max(labelText.implicitHeight, itemSwitch.implicitHeight);
0052     }
0053 
0054     property string text:""
0055     property string tooltip:""
0056 
0057     signal pressed();
0058 
0059     Item {
0060         id: row
0061         width: parent.width
0062         height: textElement.height
0063         anchors.verticalCenter: parent.verticalCenter
0064 
0065         RowLayout {
0066             id: textElement
0067             anchors.left: level !== 2 ? parent.left : undefined
0068             anchors.horizontalCenter: level === 2 ? parent.horizontalCenter : undefined
0069             anchors.verticalCenter: parent.verticalCenter
0070 
0071             LatteExtraControls.Header {
0072                 id: headerText
0073                 text: item.text
0074                 enabled: item.checked && item.enabled
0075                 visible: level === 1
0076             }
0077 
0078             LatteExtraControls.SubHeader {
0079                 id: subHeaderText
0080                 text: item.text
0081                 enabled: item.checked && item.enabled
0082                 visible: level === 2
0083                 isFirstSubCategory: item.isFirstSubCategory
0084             }
0085 
0086             PlasmaComponents.Label {
0087                 id: labelText
0088                 text: item.text
0089                 enabled: item.checked && item.enabled
0090                 visible: level > 2
0091             }
0092         }
0093 
0094         PlasmaComponents.Button {
0095             //tooltip ghost
0096             anchors.fill: textElement
0097             tooltip: item.tooltip
0098             opacity: 0
0099             onPressedChanged: {
0100                 if (pressed) {
0101                     item.pressed();
0102                 }
0103             }
0104         }
0105     }
0106 
0107     Switch {
0108         id: itemSwitch
0109         anchors.verticalCenter: row.verticalCenter
0110         anchors.right: row.right
0111         checked: item.checked
0112         enabled: item.enabled
0113 
0114         style: Private.SwitchStyle {}
0115 
0116         PlasmaComponents.Button {
0117             //tooltip ghost
0118             anchors.fill: parent
0119             tooltip: item.tooltip
0120             opacity: 0
0121             onPressedChanged: {
0122                 if (pressed) {
0123                     item.pressed();
0124                 }
0125             }
0126         }
0127     }
0128 }