@@ -17,6 +17,7 @@
17import QtQuick 2.4
17import QtQuick 2.4
18import Ubuntu.Components 1.3
18import Ubuntu.Components 1.3
19import "../../Components"
19import "../../Components"
20+import "PreviewSingleton"
21/*! \brief Preview widget for rating.
22/*! \brief Preview widget for rating.
@@ -53,6 +54,31 @@ PreviewWidget {
53 property alias ratingValue: rating.value
54 property alias ratingValue: rating.value
54 property alias reviewText: reviewTextArea.text
55 property alias reviewText: reviewTextArea.text
57+ onRatingValueChanged: storeRatingState()
58+ onReviewTextChanged: storeTextState()
59+ onWidgetIdChanged: restoreReviewState()
61+ function initializeWidgetExtraData() {
62+ if (typeof(PreviewSingleton.widgetExtraData[widgetId]) == "undefined") PreviewSingleton.widgetExtraData[widgetId] = [];
65+ function storeRatingState() {
66+ initializeWidgetExtraData();
67+ PreviewSingleton.widgetExtraData[widgetId][0] = ratingValue;
70+ function storeTextState() {
71+ initializeWidgetExtraData();
72+ PreviewSingleton.widgetExtraData[widgetId][1] = reviewText;
75+ function restoreReviewState() {
76+ if (!PreviewSingleton.widgetExtraData[widgetId]) return;
77+ if (PreviewSingleton.widgetExtraData[widgetId][0] > 0) ratingValue = PreviewSingleton.widgetExtraData[widgetId][0];
78+ if (typeof(PreviewSingleton.widgetExtraData[widgetId][1]) != "undefined" &&
79+ PreviewSingleton.widgetExtraData[widgetId][1] != "") reviewText = PreviewSingleton.widgetExtraData[widgetId][1];
56 function submit() {
82 function submit() {
57 // checks rating-input requirements
83 // checks rating-input requirements
58 if (((widgetData["required"] === "both" ||
84 if (((widgetData["required"] === "both" ||
@@ -89,7 +115,7 @@ PreviewWidget {
90 height: units.gu(4)
116 height: units.gu(4)
91 onValueChanged: {
117 onValueChanged: {
92− if (widgetData["visible"] === "rating") root.submit();
118+ if (widgetData && widgetData["visible"] === "rating") root.submit();
95 property var urlIconEmpty: widgetData["rating-icon-empty"] || "image://theme/non-starred"
121 property var urlIconEmpty: widgetData["rating-icon-empty"] || "image://theme/non-starred"