Index: discover/qml/ApplicationDelegate.qml =================================================================== --- discover/qml/ApplicationDelegate.qml +++ discover/qml/ApplicationDelegate.qml @@ -32,6 +32,7 @@ id: delegateArea property alias application: installButton.application property bool compact: false + property bool showRating: true showClickFeedback: true function trigger() { @@ -59,8 +60,9 @@ } ColumnLayout { - spacing: delegateArea.compact ? 3 : 5 + spacing: delegateArea.compact ? 0 : 5 anchors { + verticalCenter: parent.verticalCenter right: parent.right left: resourceIcon.right leftMargin: Kirigami.Units.largeSpacing @@ -78,22 +80,29 @@ InstallApplicationButton { id: installButton anchors { - verticalCenter: parent.verticalCenter + verticalCenter: delegateArea.compact ? parent.bottom: parent.verticalCenter left: parent.right } } } - Rectangle { - color: Kirigami.Theme.linkColor - Layout.fillWidth: true - Layout.rightMargin: delegateArea.compact ? installButton.width + Kirigami.Units.largeSpacing : 0 - height: Kirigami.Units.devicePixelRatio / 2 + RowLayout { + visible: showRating + spacing: Kirigami.Units.largeSpacing + Rating { + rating: delegateArea.application.rating ? delegateArea.application.rating.sortableRating : 0 + starSize: delegateArea.compact ? summary.font.pointSize : head.font.pointSize + } + QQC2.Label { + text: delegateArea.application.rating ? i18n("%1 ratings", delegateArea.application.rating.ratingCount) : i18n("No ratings yet") + opacity: 0.5 + } } Layout.fillWidth: true QQC2.Label { + id: summary Layout.fillWidth: true bottomPadding: Kirigami.Units.smallSpacing elide: Text.ElideRight Index: discover/qml/ApplicationPage.qml =================================================================== --- discover/qml/ApplicationPage.qml +++ discover/qml/ApplicationPage.qml @@ -117,7 +117,19 @@ Layout.fillWidth: true Layout.alignment: Text.AlignBottom } + RowLayout { + spacing: Kirigami.Units.largeSpacing + Rating { + rating: appInfo.application.rating ? appInfo.application.rating.sortableRating : 0 + starSize: summary.font.pointSize + } + QQC2.Label { + text: appInfo.application.rating ? i18n("%1 ratings", appInfo.application.rating.ratingCount) : i18n("No ratings yet") + opacity: 0.5 + } + } Kirigami.Heading { + id: summary level: 4 text: appInfo.application.comment maximumLineCount: 2 Index: discover/qml/ApplicationsListPage.qml =================================================================== --- discover/qml/ApplicationsListPage.qml +++ discover/qml/ApplicationsListPage.qml @@ -45,6 +45,7 @@ property alias listHeader: apps.header property alias listHeaderPositioning: apps.headerPositioning property bool compact: page.width < 500 || !applicationWindow().wideScreen + property bool showRating: true property bool canNavigate: true readonly property alias subcategories: appsModel.subcategories @@ -131,6 +132,7 @@ delegate: ApplicationDelegate { application: model.application compact: page.compact + showRating: page.showRating } QQC2.Label { Index: discover/qml/InstalledPage.qml =================================================================== --- discover/qml/InstalledPage.qml +++ discover/qml/InstalledPage.qml @@ -14,6 +14,7 @@ title: i18n("Installed") compact: true + showRating: false canNavigate: false listHeader: null