18 import Ubuntu.Components 0.1
19 import
"../../Components"
40 switch(widgetData[
"visible"]) {
43 return ratingLabelAndWidgetContainer.implicitHeight + reviewContainer.implicitHeight;
45 return ratingLabelAndWidgetContainer.implicitHeight;
47 return reviewContainer.implicitHeight;
53 if (((widgetData[
"required"] ===
"both" ||
54 widgetData[
"required"] ===
"rating") &&
56 ((widgetData[
"required"] ===
"both" ||
57 widgetData[
"required"] ===
"review") &&
58 reviewTextArea.text ===
""))
return;
60 var data = {
"rating": rating.value,
"review": reviewTextArea.text,
"author": null};
61 triggered(root.widgetId,
"rated", data);
65 id: ratingLabelAndWidgetContainer
70 implicitHeight: rating.height
71 visible: widgetData[
"visible"] !==
"review"
74 objectName:
"ratingLabel"
76 verticalCenter: parent.verticalCenter
79 color: root.scopeStyle ? root.scopeStyle.foreground :
"grey"
81 text: widgetData[
"rating-label"] || i18n.tr(
"Rate this")
88 verticalCenter: parent.verticalCenter
93 if (widgetData[
"visible"] ===
"rating") root.submit();
96 property var urlIconEmpty: widgetData[
"rating-icon-empty"]
97 property var urlIconFull: widgetData[
"rating-icon-full"]
103 implicitHeight: reviewLabel.implicitHeight + reviewSubmitContainer.implicitHeight + anchors.topMargin
105 readonly
property real innerMargin: units.gu(1)
110 top: ratingLabelAndWidgetContainer.visible ? ratingLabelAndWidgetContainer.bottom : parent.top
111 bottom: parent.bottom
112 topMargin: ratingLabelAndWidgetContainer.visible ? reviewContainer.innerMargin : 0
114 visible: widgetData[
"visible"] !==
"rating"
117 objectName:
"reviewLabel"
124 color: root.scopeStyle ? root.scopeStyle.foreground :
"grey"
126 text: widgetData[
"review-label"] || i18n.tr(
"Add a review")
130 id: reviewSubmitContainer
132 top: reviewLabel.bottom
135 bottom: parent.bottom
136 topMargin: reviewContainer.innerMargin
138 implicitHeight: reviewTextArea.implicitHeight + anchors.topMargin
142 objectName:
"reviewTextArea"
146 right: submitButton.left
147 rightMargin: reviewContainer.innerMargin
153 objectName:
"submitButton"
155 readonly
property bool readyToSubmit: {
156 if ((widgetData[
"required"] !==
"review" && rating.value < 0) ||
157 (widgetData[
"required"] !==
"rating" && reviewTextArea.text ===
""))
return false;
165 color: readyToSubmit ? Theme.palette.selected.base : Theme.palette.normal.base
166 text: widgetData[
"submit-label"] || i18n.tr(
"Send")
168 if (readyToSubmit) root.submit()