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

0001 /*
0002  *   SPDX-FileCopyrightText: 2012 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
0003  *
0004  *   SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 import QtQuick 2.1
0008 import QtQuick.Layouts 1.1
0009 import org.kde.kirigami 2.14 as Kirigami
0010 
0011 RowLayout
0012 {
0013     id: view
0014     property bool editable: false
0015     property int max: 10
0016     property int rating: 0
0017     property real starSize: Kirigami.Units.gridUnit
0018 
0019     clip: true
0020     spacing: 0
0021 
0022     readonly property var ratingIndex: (theRepeater.count/view.max)*view.rating
0023 
0024     Repeater {
0025         id: theRepeater
0026         model: 5
0027         delegate: Kirigami.Icon {
0028             Layout.minimumWidth: view.starSize
0029             Layout.minimumHeight: view.starSize
0030             Layout.preferredWidth: view.starSize
0031             Layout.preferredHeight: view.starSize
0032 
0033             width: height
0034             source: "rating"
0035             opacity: (view.editable && mouse.item.containsMouse ? 0.7
0036                         : index>=view.ratingIndex ? 0.2
0037                         : 1)
0038 
0039             ConditionalLoader {
0040                 id: mouse
0041 
0042                 anchors.fill: parent
0043                 condition: view.editable
0044                 componentTrue: MouseArea {
0045                     hoverEnabled: true
0046                     onClicked: rating = (max/theRepeater.model*(index+1))
0047                 }
0048                 componentFalse: null
0049             }
0050         }
0051     }
0052 }