Warning, /plasma/plasma-welcome/src/qml/pages/powerfulwhenneeded/PlasmaFeatureButton.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Nate Graham <nate@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 import QtQuick 0008 import QtQuick.Layouts 0009 import QtQuick.Controls as QQC2 0010 0011 import org.kde.kirigami as Kirigami 0012 0013 QQC2.Button { 0014 id: root 0015 0016 required property string title 0017 required property string subtitle 0018 required property string buttonIcon 0019 readonly property int implicitTitleWidth: metrics.width 0020 readonly property int fixedSizeStuff: icon.implicitWidth + leftPadding + rightPadding + titleRowLayout.spacing 0021 0022 implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, 0023 implicitContentWidth + leftPadding + rightPadding) 0024 implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, 0025 implicitContentHeight + topPadding + bottomPadding) 0026 0027 leftPadding: Kirigami.Units.largeSpacing 0028 rightPadding: Kirigami.Units.largeSpacing 0029 topPadding: Kirigami.Units.largeSpacing 0030 bottomPadding: Kirigami.Units.largeSpacing 0031 0032 TextMetrics { 0033 id: metrics 0034 text: root.title 0035 } 0036 0037 contentItem: ColumnLayout { 0038 spacing: 0 0039 0040 RowLayout { 0041 id: titleRowLayout 0042 0043 spacing: Kirigami.Units.smallSpacing 0044 Layout.minimumHeight: Kirigami.Units.gridUnit * 2 + spacing 0045 0046 // Icon 0047 Kirigami.Icon { 0048 id: icon 0049 Layout.preferredWidth: Kirigami.Units.iconSizes.medium 0050 Layout.preferredHeight: Kirigami.Units.iconSizes.medium 0051 Layout.alignment: Qt.AlignVCenter 0052 source: root.buttonIcon 0053 } 0054 // Title 0055 Kirigami.Heading { 0056 Layout.fillWidth: true 0057 level: 4 0058 text: root.title 0059 verticalAlignment: Text.AlignVCenter 0060 maximumLineCount: 2 0061 elide: Text.ElideRight 0062 wrapMode: Text.Wrap 0063 } 0064 } 0065 0066 // Subtitle 0067 QQC2.Label { 0068 Layout.fillWidth: true 0069 Layout.fillHeight: true 0070 visible: root.subtitle 0071 text: root.subtitle 0072 elide: Text.ElideRight 0073 wrapMode: Text.Wrap 0074 opacity: 0.6 0075 verticalAlignment: Text.AlignTop 0076 } 0077 } 0078 }