Warning, /plasma/plasma-sdk/plasmoidviewer/qmlpackages/shell/contents/configuration/AboutPlugin.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 * SPDX-FileCopyrightText: 2020 David Redondo <kde@david-redondo.de> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 import QtQuick 2.4 0009 import QtQuick.Controls 2.4 as QQC2 0010 import QtQuick.Layouts 1.3 0011 0012 import org.kde.kirigami 2.6 as Kirigami 0013 import org.kde.plasma.plasmoid 2.0 0014 0015 /** 0016 * A copy of Kirigami.AboutPage adapted to KPluginMetadata instead of KAboutData 0017 */ 0018 Kirigami.ScrollablePage { 0019 id: page 0020 title: i18n("About") 0021 0022 Component { 0023 id: personDelegate 0024 0025 RowLayout { 0026 height: implicitHeight + (Kirigami.Units.smallSpacing * 2) 0027 0028 spacing: Kirigami.Units.smallSpacing * 2 0029 Kirigami.Icon { 0030 width: Kirigami.Units.iconSizes.smallMedium 0031 height: width 0032 source: "user" 0033 } 0034 QQC2.Label { 0035 text: modelData.name 0036 } 0037 Row { 0038 // Group action buttons together 0039 spacing: 0 0040 QQC2.ToolButton { 0041 visible: modelData.emailAddress 0042 width: height 0043 icon.name: "mail-sent" 0044 QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay 0045 QQC2.ToolTip.visible: hovered 0046 QQC2.ToolTip.text: i18nd("plasma_shell_org.kde.plasma.desktop", "Send an email to %1", modelData.emailAddress) 0047 onClicked: Qt.openUrlExternally("mailto:%1".arg(modelData.emailAddress)) 0048 } 0049 QQC2.ToolButton { 0050 visible: modelData.webAddress 0051 width: height 0052 icon.name: "globe" 0053 QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay 0054 QQC2.ToolTip.visible: hovered 0055 QQC2.ToolTip.text: modelData.webAddress 0056 onClicked: Qt.openUrlExternally(modelData.webAddress) 0057 } 0058 } 0059 } 0060 } 0061 0062 Kirigami.FormLayout { 0063 id: form 0064 GridLayout { 0065 columns: 2 0066 Layout.fillWidth: true 0067 0068 Kirigami.Icon { 0069 Layout.rowSpan: 2 0070 Layout.preferredHeight: Kirigami.Units.iconSizes.huge 0071 Layout.preferredWidth: height 0072 Layout.maximumWidth: page.width / 3; 0073 Layout.rightMargin: Kirigami.Units.largeSpacing 0074 source: Plasmoid.metaData.iconName || Plasmoid.metaData.pluginId 0075 fallback: "application-x-plasma" 0076 } 0077 Kirigami.Heading { 0078 Layout.fillWidth: true 0079 text: Plasmoid.metaData.name + " " + Plasmoid.metaData.version 0080 } 0081 Kirigami.Heading { 0082 Layout.fillWidth: true 0083 level: 2 0084 wrapMode: Text.WordWrap 0085 text: Plasmoid.metaData.description 0086 } 0087 } 0088 0089 Kirigami.Separator { 0090 Layout.fillWidth: true 0091 } 0092 0093 Kirigami.Heading { 0094 Kirigami.FormData.isSection: true 0095 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Copyright") 0096 } 0097 QQC2.Label { 0098 Layout.leftMargin: Kirigami.Units.gridUnit 0099 text: Plasmoid.metaData.extraInformation 0100 visible: text.length > 0 0101 } 0102 QQC2.Label { 0103 Layout.leftMargin: Kirigami.Units.gridUnit 0104 text: Plasmoid.metaData.copyrightText 0105 visible: text.length > 0 0106 } 0107 Kirigami.UrlButton { 0108 Layout.leftMargin: Kirigami.Units.gridUnit 0109 url: Plasmoid.metaData.website 0110 visible: url.length > 0 0111 } 0112 0113 RowLayout { 0114 Layout.leftMargin: Kirigami.Units.smallSpacing 0115 QQC2.Label { text: i18nd("plasma_shell_org.kde.plasma.desktop", "License:") } 0116 Kirigami.LinkButton { 0117 text: Plasmoid.metaData.license 0118 onClicked: { 0119 licenseSheet.text = Plasmoid.metaData.licenseText 0120 licenseSheet.title = Plasmoid.metaData.license 0121 licenseSheet.open() 0122 } 0123 } 0124 } 0125 Kirigami.Heading { 0126 Layout.fillWidth: true 0127 Kirigami.FormData.isSection: visible 0128 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Authors") 0129 visible: Plasmoid.metaData.authors.length > 0 0130 } 0131 Repeater { 0132 model: Plasmoid.metaData.authors 0133 delegate: personDelegate 0134 } 0135 Kirigami.Heading { 0136 height: visible ? implicitHeight : 0 0137 Kirigami.FormData.isSection: visible 0138 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Credits") 0139 visible: repCredits.count > 0 0140 } 0141 Repeater { 0142 id: repCredits 0143 model: Plasmoid.metaData.otherContributors 0144 delegate: personDelegate 0145 } 0146 Kirigami.Heading { 0147 height: visible ? implicitHeight : 0 0148 Kirigami.FormData.isSection: visible 0149 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Translators") 0150 visible: repTranslators.count > 0 0151 } 0152 Repeater { 0153 id: repTranslators 0154 model: Plasmoid.metaData.translators 0155 delegate: personDelegate 0156 } 0157 } 0158 QQC2.Dialog { 0159 id: licenseSheet 0160 property alias text: licenseLabel.text 0161 0162 width: 0.75 * parent.width 0163 height: 0.75 * parent.height 0164 0165 x: Math.round((parent.width - width) / 2) 0166 y: Kirigami.Units.smallSpacing 0167 0168 leftPadding: 0 0169 rightPadding: 0 0170 bottomPadding: 0 0171 topPadding: Kirigami.Units.smallSpacing 0172 topInset: Kirigami.Units.smallSpacing 0173 0174 contentItem: QQC2.ScrollView { 0175 id: scroll 0176 Component.onCompleted: background.visible = true 0177 Flickable { 0178 id: flickable 0179 contentWidth: width 0180 contentHeight: licenseLabel.contentHeight 0181 clip: true 0182 QQC2.Label { 0183 id: licenseLabel 0184 width: parent.width 0185 x: Math.max(0, (width - contentWidth)/2) 0186 wrapMode: Text.WordWrap 0187 } 0188 } 0189 } 0190 } 0191 } 0192