Warning, /plasma/plasma-desktop/desktoppackage/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 0009 import QtQuick.Controls 2.4 as QQC2 0010 import QtQuick.Layouts 1.3 0011 0012 import org.kde.plasma.plasmoid 2.0 0013 import org.kde.kirigami 2.20 as Kirigami 0014 import org.kde.kcmutils as KCM 0015 0016 /** 0017 * A copy of Kirigami.AboutPage adapted to KPluginMetadata instead of KAboutData 0018 */ 0019 KCM.SimpleKCM { 0020 id: page 0021 title: i18n("About") 0022 0023 property var metaData: Plasmoid.metaData 0024 0025 Component { 0026 id: personDelegate 0027 0028 RowLayout { 0029 height: implicitHeight + (Kirigami.Units.smallSpacing * 2) 0030 0031 spacing: Kirigami.Units.smallSpacing * 2 0032 Kirigami.Icon { 0033 width: Kirigami.Units.iconSizes.smallMedium 0034 height: width 0035 source: "user" 0036 } 0037 QQC2.Label { 0038 text: modelData.name 0039 textFormat: Text.PlainText 0040 } 0041 Row { 0042 // Group action buttons together 0043 spacing: 0 0044 QQC2.ToolButton { 0045 visible: modelData.emailAddress 0046 width: height 0047 icon.name: "mail-sent" 0048 0049 display: QQC2.AbstractButton.IconOnly 0050 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Send an email to %1", modelData.emailAddress) 0051 0052 QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay 0053 QQC2.ToolTip.visible: hovered 0054 QQC2.ToolTip.text: text 0055 0056 onClicked: Qt.openUrlExternally("mailto:%1".arg(modelData.emailAddress)) 0057 } 0058 QQC2.ToolButton { 0059 visible: modelData.webAddress 0060 width: height 0061 icon.name: "globe" 0062 0063 display: QQC2.AbstractButton.IconOnly 0064 text: i18ndc("plasma_shell_org.kde.plasma.desktop", "@info:tooltip %1 url", "Open website %1", modelData.webAddress) 0065 0066 QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay 0067 QQC2.ToolTip.visible: hovered 0068 QQC2.ToolTip.text: modelData.webAddress 0069 0070 onClicked: Qt.openUrlExternally(modelData.webAddress) 0071 } 0072 } 0073 } 0074 } 0075 0076 Component { 0077 id: licenseComponent 0078 0079 Kirigami.OverlaySheet { 0080 property alias text: licenseLabel.text 0081 0082 onClosed: destroy() 0083 0084 Kirigami.SelectableLabel { 0085 id: licenseLabel 0086 implicitWidth: Math.max(Kirigami.Units.gridUnit * 25, Math.round(page.width / 2), contentWidth) 0087 wrapMode: Text.WordWrap 0088 } 0089 0090 Component.onCompleted: open(); 0091 } 0092 } 0093 0094 Item { 0095 height: childrenRect.height 0096 0097 ColumnLayout { 0098 anchors.horizontalCenter: parent.horizontalCenter 0099 spacing: Kirigami.Units.largeSpacing 0100 0101 GridLayout { 0102 columns: 2 0103 Layout.fillWidth: true 0104 0105 Kirigami.Icon { 0106 Layout.rowSpan: 2 0107 Layout.preferredHeight: Kirigami.Units.iconSizes.huge 0108 Layout.preferredWidth: height 0109 Layout.maximumWidth: page.width / 3; 0110 Layout.rightMargin: Kirigami.Units.largeSpacing 0111 source: page.metaData.iconName || page.metaData.pluginId 0112 fallback: "application-x-plasma" 0113 } 0114 0115 Kirigami.Heading { 0116 Layout.fillWidth: true 0117 text: page.metaData.name + " " + page.metaData.version 0118 textFormat: Text.PlainText 0119 } 0120 0121 Kirigami.Heading { 0122 Layout.fillWidth: true 0123 Layout.maximumWidth: Kirigami.Units.gridUnit * 15 0124 level: 2 0125 wrapMode: Text.WordWrap 0126 text: page.metaData.description 0127 textFormat: Text.PlainText 0128 } 0129 } 0130 0131 Kirigami.Separator { 0132 Layout.fillWidth: true 0133 } 0134 0135 Kirigami.Heading { 0136 Layout.topMargin: Kirigami.Units.smallSpacing 0137 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Copyright") 0138 textFormat: Text.PlainText 0139 } 0140 0141 ColumnLayout { 0142 spacing: Kirigami.Units.smallSpacing 0143 Layout.leftMargin: Kirigami.Units.smallSpacing 0144 0145 QQC2.Label { 0146 text: page.metaData.copyrightText 0147 textFormat: Text.PlainText 0148 visible: text.length > 0 0149 } 0150 Kirigami.UrlButton { 0151 url: page.metaData.website 0152 visible: url.length > 0 0153 } 0154 0155 RowLayout { 0156 spacing: Kirigami.Units.smallSpacing 0157 QQC2.Label { 0158 text: i18nd("plasma_shell_org.kde.plasma.desktop", "License:") 0159 textFormat: Text.PlainText 0160 } 0161 Kirigami.LinkButton { 0162 text: page.metaData.license 0163 Accessible.description: i18ndc("plasma_shell_org.kde.plasma.desktop", "@info:whatsthis", "View license text") 0164 onClicked: { 0165 licenseComponent.incubateObject(page.Window.window.contentItem, { 0166 "text": page.metaData.licenseText, 0167 "title": page.metaData.license, 0168 }, Qt.Asynchronous); 0169 } 0170 } 0171 } 0172 } 0173 0174 Kirigami.Heading { 0175 Layout.fillWidth: true 0176 Layout.topMargin: Kirigami.Units.smallSpacing 0177 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Authors") 0178 textFormat: Text.PlainText 0179 visible: page.metaData.authors.length > 0 0180 } 0181 Repeater { 0182 model: page.metaData.authors 0183 delegate: personDelegate 0184 } 0185 0186 Kirigami.Heading { 0187 height: visible ? implicitHeight : 0 0188 Layout.topMargin: Kirigami.Units.smallSpacing 0189 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Credits") 0190 textFormat: Text.PlainText 0191 visible: repCredits.count > 0 0192 } 0193 Repeater { 0194 id: repCredits 0195 model: page.metaData.otherContributors 0196 delegate: personDelegate 0197 } 0198 0199 Kirigami.Heading { 0200 height: visible ? implicitHeight : 0 0201 Layout.topMargin: Kirigami.Units.smallSpacing 0202 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Translators") 0203 textFormat: Text.PlainText 0204 visible: repTranslators.count > 0 0205 } 0206 Repeater { 0207 id: repTranslators 0208 model: page.metaData.translators 0209 delegate: personDelegate 0210 } 0211 0212 Item { 0213 Layout.fillWidth: true 0214 } 0215 0216 QQC2.Button { 0217 Layout.alignment: Qt.AlignHCenter 0218 0219 icon.name: "tools-report-bug" 0220 text: i18nd("plasma_shell_org.kde.plasma.desktop", "Report a Bug…") 0221 0222 visible: page.metaData.bugReportUrl.length > 0 0223 0224 onClicked: Qt.openUrlExternally(page.metaData.bugReportUrl) 0225 } 0226 } 0227 } 0228 }