@@ -54,18 +54,28 @@ PreviewWidget {
5454 property alias ratingValue: rating.value
5555 property alias reviewText: reviewTextArea.text
5656
57− onRatingValueChanged: storeReviewState()
58− onReviewTextChanged: storeReviewState()
57+ onRatingValueChanged: storeRatingState()
58+ onReviewTextChanged: storeTextState()
5959 onWidgetIdChanged: restoreReviewState()
6060
61− function storeReviewState() {
62− PreviewSingleton.widgetExtraData[widgetId] = [ ratingValue, reviewText, reviewTextArea.focus ];
61+ function initializeWidgetExtraData() {
62+ if (typeof(PreviewSingleton.widgetExtraData[widgetId]) == "undefined") PreviewSingleton.widgetExtraData[widgetId] = [];
63+ }
64+
65+ function storeRatingState() {
66+ initializeWidgetExtraData();
67+ PreviewSingleton.widgetExtraData[widgetId][0] = ratingValue;
68+ }
69+
70+ function storeTextState() {
71+ initializeWidgetExtraData();
72+ PreviewSingleton.widgetExtraData[widgetId][1] = reviewText;
6373 }
6474
6575 function restoreReviewState() {
76+ if (!PreviewSingleton.widgetExtraData[widgetId]) return;
6677 if (PreviewSingleton.widgetExtraData[widgetId][0] > 0) ratingValue = PreviewSingleton.widgetExtraData[widgetId][0];
6778 if (PreviewSingleton.widgetExtraData[widgetId][1] != "") reviewText = PreviewSingleton.widgetExtraData[widgetId][1];
68− if (PreviewSingleton.widgetExtraData[widgetId][2]) root.makeSureVisible(reviewTextArea);
6979 }
7080
7181 function submit() {
@@ -104,7 +114,7 @@ PreviewWidget {
104114 size: 5
105115 height: units.gu(4)
106116 onValueChanged: {
107− if (widgetData["visible"] === "rating") root.submit();
117+ if (widgetData && widgetData["visible"] === "rating") root.submit();
108118 }
109119
110120 property var urlIconEmpty: widgetData["rating-icon-empty"] || "image://theme/non-starred"