8import QtQuick.Layouts 1.11
9import QtQuick.Controls 2.11 as QtControls
11import org.kde.kirigami 2.0 as Kirigami
16 property bool editable: false
18 property int rating: 0
19 property real starSize: Kirigami.Units.gridUnit
20 property bool reverseLayout: false
25 readonly property var ratingIndex: Math.floor((theRepeater.count*view.rating)/view.max)
26 readonly property var ratingHalf: (theRepeater.count*view.rating)%view.max >= view.max / 2
29 Layout.minimumWidth: view.starSize
30 Layout.minimumHeight: view.starSize
31 visible: view.reverseLayout
32 text: ratingAsText.text
35 visible: view.reverseLayout
36 Layout.minimumHeight: view.starSize;
44 Layout.minimumWidth: view.starSize
45 Layout.minimumHeight: view.starSize
46 Layout.preferredWidth: view.starSize
47 Layout.preferredHeight: view.starSize
49 source: index < view.ratingIndex
51 : (view.ratingHalf && index == view.ratingIndex
52 ? (view.LayoutMirroring.enabled ?
"rating-half-rtl" :
"rating-half")
54 opacity: (view.editable &&
mouse.item.containsMouse) ? 0.7 : 1
60 condition: view.editable
63 onClicked: rating = (max/theRepeater.model*(index+1))
70 visible: !view.reverseLayout
71 Layout.minimumHeight: view.starSize;
77 Layout.minimumWidth: view.starSize
78 Layout.minimumHeight: view.starSize
79 visible: !view.reverseLayout
80 text:
i18ndc(
"knewstuff6",
"A text representation of the rating, shown as a fraction of the max value",
"(%1/%2)", view.rating / 10, view.max / 10)
QString i18ndc(const char *domain, const char *context, const char *text, const TYPE &arg...)