Warning, /maui/mauikit/src/controls.5/private/AboutDialog.qml is written in an unsupported language. File is not indexed.
0001
0002 /*
0003 * Copyright 2018 Camilo Higuita <milo.h@aol.com>
0004 *
0005 * This program is free software; you can redistribute it and/or modify
0006 * it under the terms of the GNU Library General Public License as
0007 * published by the Free Software Foundation; either version 2, or
0008 * (at your option) any later version.
0009 *
0010 * This program is distributed in the hope that it will be useful,
0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0013 * GNU General Public License for more details
0014 *
0015 * You should have received a copy of the GNU Library General Public
0016 * License along with this program; if not, write to the
0017 * Free Software Foundation, Inc.,
0018 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0019 */
0020
0021 import QtQuick 2.15
0022 import QtQuick.Controls 2.15
0023 import QtQuick.Layouts 1.3
0024 import QtGraphicalEffects 1.12
0025
0026 import org.mauikit.controls 1.3 as Maui
0027
0028 Maui.PopupPage
0029 {
0030 id: control
0031
0032 persistent: false
0033 widthHint: 0.9
0034 heightHint: 0.8
0035
0036 maxWidth: 360
0037 maxHeight: implicitHeight
0038
0039 Maui.Theme.inherit: false
0040 Maui.Theme.colorSet: Maui.Theme.Complementary
0041
0042 property alias mainHeader : _header
0043
0044 Control
0045 {
0046 id: _header
0047 Layout.fillWidth: true
0048 implicitHeight: _div1.implicitHeight + topPadding + bottomPadding
0049 padding: Maui.Style.defaultPadding
0050 background: null
0051
0052 contentItem: Maui.ListItemTemplate
0053 {
0054 id: _div1
0055
0056 imageSource: Maui.App.iconName
0057
0058 fillMode: Image.PreserveAspectFit
0059
0060 iconSizeHint: Maui.Style.iconSizes.huge
0061 imageSizeHint: iconSizeHint
0062 isMask: false
0063
0064 spacing: Maui.Style.space.big
0065 label1.wrapMode: Text.WrapAtWordBoundaryOrAnywhere
0066 label1.text: Maui.App.about.displayName
0067 label1.font.weight: Font.Black
0068 label1.font.pointSize: Maui.Style.fontSizes.enormous
0069
0070 label2.text: Maui.App.about.shortDescription
0071 label2.font.pointSize: Maui.Style.fontSizes.big
0072 label2.elide: Text.ElideRight
0073 label2.wrapMode: Text.WrapAtWordBoundaryOrAnywhere
0074 }
0075 }
0076 Label
0077 {
0078 Maui.Theme.inherit: true
0079 Layout.alignment: horizontalAlignment
0080 // Layout.fillWidth: true
0081 horizontalAlignment:Qt.AlignLeft
0082 text: Maui.App.about.version + " " + Maui.App.about.otherText
0083 font.family: "Monospace"
0084 opacity: 0.6
0085 font.pointSize: Maui.Style.fontSizes.tiny
0086 color: _div1.label1.color
0087 padding: Maui.Style.space.small
0088 background: Rectangle
0089 {
0090 opacity: 0.5
0091 color: "black"
0092 radius: Maui.Style.radiusV
0093 }
0094
0095 MouseArea
0096 {
0097 anchors.fill: parent
0098 hoverEnabled: true
0099 cursorShape: Qt.PointingHandCursor
0100 onClicked:
0101 {
0102 Maui.Handy.copyTextToClipboard(parent.text)
0103 root.notify("dialog-information", i18n("Version ID copied to clipboard"))
0104 control.close()
0105
0106 }
0107
0108 ToolTip.delay: 1000
0109 ToolTip.timeout: 5000
0110 ToolTip.visible: containsMouse
0111 ToolTip.text: i18n("Copy")
0112 }
0113 }
0114
0115
0116 Column
0117 {
0118 id: _links
0119 spacing: Maui.Style.defaultSpacing
0120 Layout.fillWidth: true
0121
0122 Button
0123 {
0124 width: parent.width
0125 text: i18nd("mauikit", "Reports")
0126 onClicked: Qt.openUrlExternally(Maui.App.about.bugAddress)
0127 }
0128
0129 Button
0130 {
0131 width: parent.width
0132 text: i18nd("mauikit", "Home Page")
0133 onClicked: Qt.openUrlExternally(Maui.App.about.homepage)
0134 }
0135 }
0136
0137
0138 Maui.Separator
0139 {
0140 Layout.fillWidth: true
0141 }
0142 Item{}
0143 Maui.SectionItem
0144 {
0145 id: _authorsSection
0146 label1.text: i18nd("mauikit", "Authors")
0147 visible: Maui.App.about.authors.length > 0
0148
0149 // iconSource: "view-media-artist"
0150 template.isMask: true
0151 template.iconSizeHint: Maui.Style.iconSize
0152 columns: 1
0153
0154 Column
0155 {
0156 spacing: Maui.Style.defaultSpacing
0157 Layout.fillWidth: true
0158 opacity: 0.8
0159
0160 Repeater
0161 {
0162 model: Maui.App.about.authors
0163
0164 Maui.ListItemTemplate
0165 {
0166 id: _credits
0167
0168 width: parent.width
0169
0170 label1.text: modelData.emailAddress ? String("<a href='mailto:%1' style=\"text-decoration:none;color:#fafafa\">%2</a>").arg(modelData.emailAddress).arg(modelData.name) : modelData.name
0171 label1.textFormat: Text.RichText
0172 label3.text: modelData.task
0173 Connections
0174 {
0175 target: _credits.label1
0176 function onLinkActivated(link)
0177 {
0178 Qt.openUrlExternally(link)
0179 }
0180 }
0181 }
0182 }
0183 }
0184 }
0185
0186
0187 Maui.SectionItem
0188 {
0189 id: _translatorsSection
0190 label1.text: i18nd("mauikit", "Translators")
0191 visible: Maui.App.about.translators.length > 0
0192 // iconSource: "folder-language"
0193 template.isMask: true
0194 template.iconSizeHint: Maui.Style.iconSize
0195 columns: 1
0196
0197 Column
0198 {
0199 id: _translators
0200 spacing: Maui.Style.defaultSpacing
0201 Layout.fillWidth: true
0202 opacity: 0.8
0203
0204 Repeater
0205 {
0206 model: Maui.App.about.translators
0207
0208 Maui.ListItemTemplate
0209 {
0210 id: _tCredits
0211
0212 width: parent.width
0213
0214 label1.text: modelData.emailAddress ? String("<a href='mailto:%1' style=\"text-decoration:none;color:#fafafa\">%2</a>").arg(modelData.emailAddress).arg(modelData.name) : modelData.name
0215 label1.textFormat: Text.RichText
0216 label3.text: modelData.task
0217 Connections
0218 {
0219 target: _tCredits.label1
0220 function onLinkActivated(link)
0221 {
0222 Qt.openUrlExternally(link)
0223 }
0224 }
0225 }
0226 }
0227 }
0228 }
0229
0230 Maui.SectionItem
0231 {
0232 id: _creditsSection
0233 label1.text: i18nd("mauikit", "Credits")
0234 visible: Maui.App.about.credits.length > 0
0235 // iconSource: "love"
0236 template.isMask: true
0237 template.iconSizeHint: Maui.Style.iconSize
0238 columns: 1
0239
0240 Column
0241 {
0242 spacing: Maui.Style.defaultSpacing
0243 Layout.fillWidth: true
0244 opacity: 0.8
0245
0246 Repeater
0247 {
0248 model: Maui.App.about.credits
0249
0250 Maui.ListItemTemplate
0251 {
0252 id: _tCredits
0253
0254 width: parent.width
0255
0256 label1.text: modelData.emailAddress ? String("<a href='mailto:%1' style=\"text-decoration:none;color:#fafafa\">%2</a>").arg(modelData.emailAddress).arg(modelData.name) : modelData.name
0257 label1.textFormat: Text.RichText
0258 label3.text: modelData.task
0259 Connections
0260 {
0261 target: _tCredits.label1
0262 function onLinkActivated(link)
0263 {
0264 Qt.openUrlExternally(link)
0265 }
0266 }
0267 }
0268 }
0269 }
0270 }
0271
0272 Maui.SectionItem
0273 {
0274 id: _licensesSection
0275 visible: Maui.App.about.licenses.length > 0
0276 // iconSource: "license"
0277
0278 template.isMask: true
0279 template.iconSizeHint: Maui.Style.iconSize
0280
0281 label1.text: i18nd("mauikit", "Licenses")
0282 columns: 1
0283
0284 Column
0285 {
0286 id: _licenses
0287 spacing: Maui.Style.defaultSpacing
0288 Layout.fillWidth: true
0289 opacity: 0.8
0290
0291 Repeater
0292 {
0293 model: Maui.App.about.licenses
0294 Maui.ListItemTemplate
0295 {
0296 width: parent.width
0297 label1.text: modelData.name
0298 label3.text: modelData.spdx
0299 }
0300 }
0301 }
0302 }
0303
0304 Maui.SectionItem
0305 {
0306 id: _componentsSection
0307 // iconSource: "code-context"
0308 visible: Maui.App.about.components.length > 0
0309 template.isMask: true
0310 template.iconSizeHint: Maui.Style.iconSize
0311 columns: 1
0312
0313 label1.text: i18nd("mauikit", "Components")
0314
0315 Column
0316 {
0317 spacing: Maui.Style.defaultSpacing
0318 Layout.fillWidth: true
0319 opacity: 0.8
0320
0321 Repeater
0322 {
0323 model: Maui.App.about.components
0324 Maui.ListItemTemplate
0325 {
0326 width: parent.width
0327 label1.textFormat: Text.RichText
0328
0329 label1.text: modelData.webAddress ? String("<a href='%1' style=\"text-decoration:none;color:#fafafa\">%2</a>").arg(modelData.webAddress).arg(modelData.name) : modelData.name
0330
0331 label2.text: modelData.description
0332 label3.text: modelData.version
0333
0334 Connections
0335 {
0336 target: label1
0337 function onLinkActivated(link)
0338 {
0339 Qt.openUrlExternally(link)
0340 }
0341 }
0342 }
0343 }
0344 }
0345 }
0346
0347 Item
0348 {
0349 Layout.fillWidth: true
0350 implicitHeight: Maui.Style.space.big
0351 }
0352
0353 ColumnLayout
0354 {
0355 id: _footerColumn
0356 Layout.fillWidth: true
0357 opacity: 0.7
0358 spacing: Maui.Style.space.small
0359
0360 Maui.Icon
0361 {
0362 visible: Maui.App.about.copyrightStatement.indexOf("Maui") > 0
0363 Layout.alignment: Qt.AlignCenter
0364 source: "qrc:/assets/mauikit.svg"
0365 color: Maui.Theme.textColor
0366 isMask: true
0367 implicitHeight: Maui.Style.iconSizes.big
0368 implicitWidth: implicitHeight
0369 }
0370
0371 Maui.ListItemTemplate
0372 {
0373 id: _copyRight
0374 Layout.fillWidth: true
0375 isMask: true
0376
0377 iconSizeHint: Maui.Style.iconSizes.medium
0378 // headerSizeHint: iconSizeHint + Maui.Style.space.medium
0379
0380 spacing: Maui.Style.defaultSpacing
0381 label1.text: Maui.App.about.copyrightStatement
0382 label1.horizontalAlignment: Qt.AlignHCenter
0383 label1.font.pointSize: Maui.Style.fontSizes.tiny
0384 label1.font.family: "Monospace"
0385 }
0386 }
0387
0388 Item
0389 {
0390 id: _iconItem
0391 parent: control.background
0392 clip: true
0393 anchors.fill: parent
0394
0395 Image
0396 {
0397 anchors.fill: parent
0398 source: "qrc:/assets/subtle-dots.png"
0399 fillMode: Image.Tile
0400 opacity: 0.15
0401 }
0402 }
0403 }