on xenial help sign in
more singleton state save
commit48520a74e74812a107a0a88f610ebbb11b116081 authorAndrea Cimitan <andrea.cimitan@gmail.com> dateFri 12 Aug 2016, 11:04 (10 years ago) parente4621ef
2 files changed+29
qml/Dash/Previews/PreviewCommentInput.qml+14 qml/Dash/Previews/PreviewRatingInput.qml+15
qml/Dash/Previews/PreviewCommentInput.qml+14
@@ -35,6 +35,20 @@ PreviewWidget {
3535 triggered(root.widgetId, "commented", data);
3636 }
3737
38+ property alias commentText: commentTextArea.text
39+
40+ onCommentTextChanged: storeCommentState()
41+ onWidgetIdChanged: restoreCommentState()
42+
43+ function storeCommentState() {
44+ PreviewSingleton.widgetExtraData[widgetId] = [ commentText, commentTextArea.focus ];
45+ }
46+
47+ function restoreCommentState() {
48+ if (PreviewSingleton.widgetExtraData[widgetId][0] != "") commentText = PreviewSingleton.widgetExtraData[widgetId][0];
49+ if (PreviewSingleton.widgetExtraData[widgetId][1]) root.makeSureVisible(commentTextArea);
50+ }
51+
3852 TextArea {
3953 id: commentTextArea
4054 objectName: "commentTextArea"
qml/Dash/Previews/PreviewRatingInput.qml+15
@@ -17,6 +17,7 @@
1717import QtQuick 2.4
1818import Ubuntu.Components 1.3
1919import "../../Components"
20+import "PreviewSingleton"
2021
2122/*! \brief Preview widget for rating.
2223
@@ -53,6 +54,20 @@ PreviewWidget {
5354 property alias ratingValue: rating.value
5455 property alias reviewText: reviewTextArea.text
5556
57+ onRatingValueChanged: storeReviewState()
58+ onReviewTextChanged: storeReviewState()
59+ onWidgetIdChanged: restoreReviewState()
60+
61+ function storeReviewState() {
62+ PreviewSingleton.widgetExtraData[widgetId] = [ ratingValue, reviewText, reviewTextArea.focus ];
63+ }
64+
65+ function restoreReviewState() {
66+ if (PreviewSingleton.widgetExtraData[widgetId][0] > 0) ratingValue = PreviewSingleton.widgetExtraData[widgetId][0];
67+ if (PreviewSingleton.widgetExtraData[widgetId][1] != "") reviewText = PreviewSingleton.widgetExtraData[widgetId][1];
68+ if (PreviewSingleton.widgetExtraData[widgetId][2]) root.makeSureVisible(reviewTextArea);
69+ }
70+
5671 function submit() {
5772 // checks rating-input requirements
5873 if (((widgetData["required"] === "both" ||