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
82 text: widgetData[
"rating-label"] || i18n.tr(
"Rate this")
89 verticalCenter: parent.verticalCenter
94 if (widgetData[
"visible"] ===
"rating") root.submit();
97 property var urlIconEmpty: widgetData[
"rating-icon-empty"]
98 property var urlIconFull: widgetData[
"rating-icon-full"]
104 implicitHeight: reviewLabel.implicitHeight + reviewSubmitContainer.implicitHeight + anchors.topMargin
106 readonly
property real innerMargin: units.gu(1)
111 top: ratingLabelAndWidgetContainer.visible ? ratingLabelAndWidgetContainer.bottom : parent.top
112 bottom: parent.bottom
113 topMargin: ratingLabelAndWidgetContainer.visible ? reviewContainer.innerMargin : 0
115 visible: widgetData[
"visible"] !==
"rating"
118 objectName:
"reviewLabel"
128 text: widgetData[
"review-label"] || i18n.tr(
"Add a review")
132 id: reviewSubmitContainer
134 top: reviewLabel.bottom
137 bottom: parent.bottom
138 topMargin: reviewContainer.innerMargin
140 implicitHeight: reviewTextArea.implicitHeight + anchors.topMargin
144 objectName:
"reviewTextArea"
148 right: submitButton.left
149 rightMargin: reviewContainer.innerMargin
155 objectName:
"submitButton"
157 readonly
property bool readyToSubmit: {
158 if ((widgetData[
"required"] !==
"review" && rating.value < 0) ||
159 (widgetData[
"required"] !==
"rating" && reviewTextArea.text ===
""))
return false;
167 color: readyToSubmit ? Theme.palette.selected.base : Theme.palette.normal.base
168 text: widgetData[
"submit-label"] || i18n.tr(
"Send")
170 if (readyToSubmit) root.submit()