summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2018-01-31 15:20:29 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2018-01-31 15:23:31 +0100
commit82214670602985982769594ad795aff424bce8bd (patch)
treeaa14f50af15a6abf3ae79325d06116d2f5f41def
parent342b0332b895534e5a7083aa5a1cf4cf1aa120f3 (diff)
downloadkube-82214670602985982769594ad795aff424bce8bd.tar.gz
kube-82214670602985982769594ad795aff424bce8bd.zip
Introduced setup() signal for views.
onCompleted is apparently not guaranteed to be called after all properties have been set (reply broke). The onSetup handler is now the standard handler for views to setup their initial state.
-rw-r--r--framework/qml/View.qml6
-rw-r--r--views/composer/qml/View.qml5
-rw-r--r--views/composer/tests/tst_composerview.qml5
3 files changed, 10 insertions, 6 deletions
diff --git a/framework/qml/View.qml b/framework/qml/View.qml
index 0065c206..e5a4c274 100644
--- a/framework/qml/View.qml
+++ b/framework/qml/View.qml
@@ -32,6 +32,12 @@ FocusScope {
32 property int count: contentItems.length 32 property int count: contentItems.length
33 default property alias contentItems: content.data 33 default property alias contentItems: content.data
34 34
35 //This signal will be emitted once all initial properties have been set and the view is ready to load
36 signal setup()
37 Controls2.StackView.onActivated: {
38 root.setup()
39 }
40
35 onCurrentIndexChanged: showRelevantSplits() 41 onCurrentIndexChanged: showRelevantSplits()
36 Component.onCompleted: showRelevantSplits() 42 Component.onCompleted: showRelevantSplits()
37 43
diff --git a/views/composer/qml/View.qml b/views/composer/qml/View.qml
index f81901c4..4086f715 100644
--- a/views/composer/qml/View.qml
+++ b/views/composer/qml/View.qml
@@ -49,9 +49,8 @@ Kube.View {
49 } 49 }
50 ] 50 ]
51 51
52 Component.onCompleted: loadMessage(root.message, root.loadAsDraft) 52 onSetup: {
53 53 loadMessage(root.message, root.loadAsDraft)
54 Controls2.StackView.onActivated: {
55 Kube.Fabric.postMessage(Kube.Messages.synchronize, {"type": "mail", "specialPurpose": "drafts"}) 54 Kube.Fabric.postMessage(Kube.Messages.synchronize, {"type": "mail", "specialPurpose": "drafts"})
56 //For autocompletion 55 //For autocompletion
57 Kube.Fabric.postMessage(Kube.Messages.synchronize, {"type": "contacts"}) 56 Kube.Fabric.postMessage(Kube.Messages.synchronize, {"type": "contacts"})
diff --git a/views/composer/tests/tst_composerview.qml b/views/composer/tests/tst_composerview.qml
index b26bf762..92328077 100644
--- a/views/composer/tests/tst_composerview.qml
+++ b/views/composer/tests/tst_composerview.qml
@@ -129,12 +129,11 @@ TestCase {
129 }] 129 }]
130 } 130 }
131 TestStore.setup(initialState) 131 TestStore.setup(initialState)
132 var composer = createTemporaryObject(composerComponent, testCase, {})
133 132
134 var createdMail = TestStore.load("mail", {resource: "resource1"}) 133 var createdMail = TestStore.load("mail", {resource: "resource1"})
134 var composer = createTemporaryObject(composerComponent, testCase, {message: createdMail, loadAsDraft: false})
135 composer.setup()
135 136
136 var loadAsDraft = false
137 composer.loadMessage(createdMail, loadAsDraft)
138 var subject = findChild(composer, "subject"); 137 var subject = findChild(composer, "subject");
139 verify(subject) 138 verify(subject)
140 tryVerify(function(){ return subject.text == "RE: subject" }) 139 tryVerify(function(){ return subject.text == "RE: subject" })