mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
6.2 KiB
191 lines
6.2 KiB
/* |
|
SPDX-FileCopyrightText: 2018 Aleix Pol Gonzalez <[email protected]> |
|
SPDX-FileCopyrightText: 2020 David Redondo <[email protected]> |
|
|
|
SPDX-License-Identifier: LGPL-2.0-or-later |
|
*/ |
|
|
|
import QtQuick 2.4 |
|
import QtQuick.Controls 2.4 as QQC2 |
|
import QtQuick.Layouts 1.3 |
|
|
|
import org.kde.kirigami 2.6 as Kirigami |
|
|
|
/** |
|
* A copy of Kirigami.AboutPage adapted to KPluginMetadata instead of KAboutData |
|
*/ |
|
Kirigami.ScrollablePage { |
|
id: page |
|
title: i18n("About") |
|
|
|
Component { |
|
id: personDelegate |
|
|
|
RowLayout { |
|
height: implicitHeight + (Kirigami.Units.smallSpacing * 2) |
|
|
|
spacing: Kirigami.Units.smallSpacing * 2 |
|
Kirigami.Icon { |
|
width: Kirigami.Units.iconSizes.smallMedium |
|
height: width |
|
source: "user" |
|
} |
|
QQC2.Label { |
|
text: modelData.name |
|
} |
|
Row { |
|
// Group action buttons together |
|
spacing: 0 |
|
QQC2.ToolButton { |
|
visible: modelData.emailAddress |
|
width: height |
|
icon.name: "mail-sent" |
|
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay |
|
QQC2.ToolTip.visible: hovered |
|
QQC2.ToolTip.text: i18nd("plasma_shell_org.kde.plasma.desktop", "Send an email to %1", modelData.emailAddress) |
|
onClicked: Qt.openUrlExternally("mailto:%1".arg(modelData.emailAddress)) |
|
} |
|
QQC2.ToolButton { |
|
visible: modelData.webAddress |
|
width: height |
|
icon.name: "globe" |
|
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay |
|
QQC2.ToolTip.visible: hovered |
|
QQC2.ToolTip.text: modelData.webAddress |
|
onClicked: Qt.openUrlExternally(modelData.webAddress) |
|
} |
|
} |
|
} |
|
} |
|
|
|
Kirigami.FormLayout { |
|
id: form |
|
GridLayout { |
|
columns: 2 |
|
Layout.fillWidth: true |
|
|
|
Kirigami.Icon { |
|
Layout.rowSpan: 2 |
|
Layout.preferredHeight: Kirigami.Units.iconSizes.huge |
|
Layout.preferredWidth: height |
|
Layout.maximumWidth: page.width / 3; |
|
Layout.rightMargin: Kirigami.Units.largeSpacing |
|
source: plasmoid.metaData.iconName || plasmoid.metaData.pluginId |
|
fallback: "application-x-plasma" |
|
} |
|
Kirigami.Heading { |
|
Layout.fillWidth: true |
|
text: plasmoid.metaData.name + " " + plasmoid.metaData.version |
|
} |
|
Kirigami.Heading { |
|
Layout.fillWidth: true |
|
level: 2 |
|
wrapMode: Text.WordWrap |
|
text: plasmoid.metaData.description |
|
} |
|
} |
|
|
|
Kirigami.Separator { |
|
Layout.fillWidth: true |
|
} |
|
|
|
Kirigami.Heading { |
|
Kirigami.FormData.isSection: true |
|
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Copyright") |
|
} |
|
QQC2.Label { |
|
Layout.leftMargin: Kirigami.Units.gridUnit |
|
text: plasmoid.metaData.extraInformation |
|
visible: text.length > 0 |
|
} |
|
QQC2.Label { |
|
Layout.leftMargin: Kirigami.Units.gridUnit |
|
text: plasmoid.metaData.copyrightText |
|
visible: text.length > 0 |
|
} |
|
Kirigami.UrlButton { |
|
Layout.leftMargin: Kirigami.Units.gridUnit |
|
url: plasmoid.metaData.website |
|
visible: url.length > 0 |
|
} |
|
|
|
RowLayout { |
|
Layout.leftMargin: Kirigami.Units.smallSpacing |
|
QQC2.Label { text: i18nd("plasma_shell_org.kde.plasma.desktop", "License:") } |
|
Kirigami.LinkButton { |
|
text: plasmoid.metaData.license |
|
onClicked: { |
|
licenseSheet.text = plasmoid.metaData.licenseText |
|
licenseSheet.title = plasmoid.metaData.license |
|
licenseSheet.open() |
|
} |
|
} |
|
} |
|
Kirigami.Heading { |
|
Layout.fillWidth: true |
|
Kirigami.FormData.isSection: visible |
|
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Authors") |
|
visible: plasmoid.metaData.authors.length > 0 |
|
} |
|
Repeater { |
|
model: plasmoid.metaData.authors |
|
delegate: personDelegate |
|
} |
|
Kirigami.Heading { |
|
height: visible ? implicitHeight : 0 |
|
Kirigami.FormData.isSection: visible |
|
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Credits") |
|
visible: repCredits.count > 0 |
|
} |
|
Repeater { |
|
id: repCredits |
|
model: plasmoid.metaData.otherContributors |
|
delegate: personDelegate |
|
} |
|
Kirigami.Heading { |
|
height: visible ? implicitHeight : 0 |
|
Kirigami.FormData.isSection: visible |
|
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Translators") |
|
visible: repTranslators.count > 0 |
|
} |
|
Repeater { |
|
id: repTranslators |
|
model: plasmoid.metaData.translators |
|
delegate: personDelegate |
|
} |
|
} |
|
QQC2.Dialog { |
|
id: licenseSheet |
|
property alias text: licenseLabel.text |
|
|
|
width: 0.75 * parent.width |
|
height: 0.75 * parent.height |
|
|
|
x: Math.round((parent.width - width) / 2) |
|
y: Kirigami.Units.smallSpacing |
|
|
|
leftPadding: 0 |
|
rightPadding: 0 |
|
bottomPadding: 0 |
|
topPadding: Kirigami.Units.smallSpacing |
|
topInset: Kirigami.Units.smallSpacing |
|
|
|
contentItem: QQC2.ScrollView { |
|
id: scroll |
|
Component.onCompleted: background.visible = true |
|
Flickable { |
|
id: flickable |
|
contentWidth: width |
|
contentHeight: licenseLabel.contentHeight |
|
clip: true |
|
QQC2.Label { |
|
id: licenseLabel |
|
width: parent.width |
|
x: Math.max(0, (width - contentWidth)/2) |
|
wrapMode: Text.WordWrap |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
|