Files
RedBear-OS/local/recipes/kde/kf6-knewstuff/source/src/qtquick/qml/DownloadItemsSheet.qml
T
vasilito edb68153e3 milestone: 22 KF6 enabled, blake3 placeholders removed, text-login fixed
- kf6-knewstuff/kwallet: removed all-zero blake3 placeholders
- CONSOLE-TO-KDE-DESKTOP-PLAN.md: 20→22 KF6 enabled count
- BOOT-PROCESS-IMPROVEMENT-PLAN.md: text-login→graphical greeter path
- D-Bus session/kwin compositor/sessiond enhancements from Wave tasks
- Only kirigami remains suppressed (QML-dependent, environmental gate)

Zero warnings. 24 commits total.
2026-04-29 14:48:47 +01:00

100 lines
3.3 KiB
QML

/*
SPDX-FileCopyrightText: 2019 Dan Leinir Turthra Jensen <admin@leinir.dk>
SPDX-FileCopyrightText: 2023 ivan tkachenko <me@ratijas.tk>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
import QtQuick
import QtQuick.Controls as QQC2
import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.kirigami.delegates as KirigamiDelegates
import org.kde.newstuff as NewStuff
/**
* @brief An overlay sheet for showing a list of download options for one entry
*
* This is used by the NewStuff.Page component
* @since 5.63
*/
Kirigami.Dialog {
id: component
property var entry
// Ensure the dialog does not get too small
height: Math.max(Math.round(root.height - (root.height / 4)), Kirigami.Units.gridUnit * 20)
width: Math.max(Math.round(root.width - (root.width / 4)), Kirigami.Units.gridUnit * 25)
property alias downloadLinks: itemsView.model
signal itemPicked(var entry, int downloadItemId, string downloadName)
showCloseButton: false
title: i18nd("knewstuff6", "Pick Your Installation Option")
ListView {
id: itemsView
clip: true
headerPositioning: ListView.InlineHeader
header: QQC2.Label {
width: ListView.view.width - ListView.view.leftMargin - ListView.view.rightMargin
padding: Kirigami.Units.largeSpacing
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.")
wrapMode: Text.Wrap
}
delegate: QQC2.ItemDelegate {
id: delegate
width: itemsView.width
icon.name: modelData.icon
text: modelData.name
Kirigami.Theme.useAlternateBackgroundColor: true
// Don't need a highlight, hover, or pressed effects
highlighted: false
hoverEnabled: false
down: false
contentItem: RowLayout {
spacing: Kirigami.Units.smallSpacing
// TODO: switch to just IconTitle once it exists, since we don't need
// the subtitle here and are only using a Kirigami delegate for the visual
// consistency it offers
Kirigami.IconTitleSubtitle {
Layout.fillWidth: true
icon.name: delegate.icon.name
title: delegate.text
selected: delegate.highlighted
wrapMode: Text.WrapAnywhere
}
QQC2.Label {
text: modelData.formattedSize
color: delegate.highlighted
? Kirigami.Theme.highlightedTextColor
: Kirigami.Theme.textColor
}
QQC2.ToolButton {
id: installButton
text: i18nd("knewstuff6", "Install")
icon.name: "install-symbolic"
onClicked: {
component.close();
component.itemPicked(component.entry, modelData.id, modelData.name);
}
}
}
}
}
}