Warning, /plasma/discover/discover/qml/AddonsView.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick 2.1
0002 import QtQuick.Controls 2.14
0003 import QtQuick.Layouts 1.1
0004 import org.kde.discover 2.0
0005 import "navigation.js" as Navigation
0006 import org.kde.kirigami 2.14 as Kirigami
0007 
0008 Kirigami.OverlaySheet {
0009     id: addonsView
0010     parent: applicationWindow().overlay
0011 
0012     property alias application: addonsModel.application
0013     property bool isInstalling: false
0014     readonly property alias addonsCount: listview.count
0015     readonly property bool containsAddons: listview.count > 0 || isExtended
0016     readonly property bool isExtended: ResourcesModel.isExtended(application.appstreamId)
0017 
0018     title: i18n("Addons for %1", application.name)
0019 
0020     ListView {
0021         id: listview
0022 
0023         implicitWidth: Kirigami.Units.gridUnit * 25
0024 
0025         visible: addonsView.containsAddons
0026         enabled: !addonsView.isInstalling
0027 
0028         model: ApplicationAddonsModel { id: addonsModel }
0029 
0030         delegate: Kirigami.CheckableListItem {
0031             id: listItem
0032 
0033             enabled: !addonsView.isInstalling
0034 
0035             icon: undefined
0036             label: model.display
0037             subtitle: model.toolTip
0038 
0039             checked: model.checked
0040 
0041             onCheckedChanged: addonsModel.changeState(packageName, listItem.checked)
0042         }
0043     }
0044 
0045     footer: RowLayout {
0046 
0047         readonly property bool active: addonsModel.hasChanges && !addonsView.isInstalling
0048 
0049         Button {
0050             text: i18n("Moreā€¦")
0051             visible: application.appstreamId.length>0 && addonsView.isExtended
0052             onClicked: Navigation.openExtends(application.appstreamId, application.name)
0053         }
0054 
0055         Item { Layout.fillWidth: true }
0056 
0057         Button {
0058             icon.name: "dialog-ok"
0059             text: i18n("Apply Changes")
0060             onClicked: addonsModel.applyChanges()
0061 
0062             enabled: parent.active
0063         }
0064         Button {
0065             icon.name: "document-revert"
0066             text: i18n("Reset")
0067             onClicked: addonsModel.discardChanges()
0068 
0069             enabled: parent.active
0070         }
0071     }
0072 }