Warning, /frameworks/knewstuff/src/qtquick/qml/DownloadItemsSheet.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2019 Dan Leinir Turthra Jensen <admin@leinir.dk>
0003     SPDX-FileCopyrightText: 2023 ivan tkachenko <me@ratijas.tk>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 import QtQuick
0009 import QtQuick.Controls as QQC2
0010 import QtQuick.Layouts
0011 import org.kde.kirigami 2 as Kirigami
0012 import org.kde.kirigami.delegates as KirigamiDelegates
0013 import org.kde.newstuff as NewStuff
0014 
0015 /**
0016  * @brief An overlay sheet for showing a list of download options for one entry
0017  *
0018  * This is used by the NewStuff.Page component
0019  * @since 5.63
0020  */
0021 Kirigami.OverlaySheet {
0022     id: component
0023 
0024     property var entry
0025 
0026     property alias downloadLinks: itemsView.model
0027 
0028     signal itemPicked(var entry, int downloadItemId, string downloadName)
0029 
0030     showCloseButton: true
0031     title: i18nd("knewstuff6", "Pick Your Installation Option")
0032 
0033     ListView {
0034         id: itemsView
0035 
0036         headerPositioning: ListView.InlineHeader
0037         header: QQC2.Label {
0038             width: ListView.view.width - ListView.view.leftMargin - ListView.view.rightMargin
0039             padding: Kirigami.Units.largeSpacing
0040 
0041             text: i18nd("knewstuff6", "Please select the option you wish to install from the list of downloadable items below. If it is unclear which you should chose out of the available options, please contact the author of this item and ask that they clarify this through the naming of the items.")
0042             wrapMode: Text.Wrap
0043         }
0044 
0045         delegate: QQC2.ItemDelegate {
0046             id: delegate
0047 
0048             width: itemsView.width
0049 
0050             icon.name: modelData.icon
0051             text: modelData.name
0052 
0053             // Don't need a highlight, hover, or pressed effects
0054             highlighted: false
0055             hoverEnabled: false
0056             down: false
0057 
0058             contentItem: RowLayout {
0059                 spacing: Kirigami.Units.smallSpacing
0060 
0061                 // TODO: switch to just IconTitle once it exists, since we don't need
0062                 // the subtitle here and are only using a Kirigami delegate for the visual
0063                 // consistency it offers
0064                 Kirigami.IconTitleSubtitle {
0065                     Layout.fillWidth: true
0066                     icon.name: delegate.icon.name
0067                     title: delegate.text
0068                     selected: delegate.highlighted
0069                 }
0070                 QQC2.Label {
0071                     text: modelData.formattedSize
0072                     color: delegate.highlighted
0073                         ? Kirigami.Theme.highlightedTextColor
0074                         : Kirigami.Theme.textColor
0075                 }
0076                 QQC2.ToolButton {
0077                     id: installButton
0078 
0079                     text: i18nd("knewstuff6", "Install")
0080                     icon.name: "install-symbolic"
0081 
0082                     onClicked: {
0083                         component.close();
0084                         component.itemPicked(component.entry, modelData.id, modelData.name);
0085                     }
0086                 }
0087             }
0088         }
0089     }
0090 }