diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-01-31 15:20:29 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-01-31 15:23:31 +0100 |
commit | 82214670602985982769594ad795aff424bce8bd (patch) | |
tree | aa14f50af15a6abf3ae79325d06116d2f5f41def | |
parent | 342b0332b895534e5a7083aa5a1cf4cf1aa120f3 (diff) | |
download | kube-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.qml | 6 | ||||
-rw-r--r-- | views/composer/qml/View.qml | 5 | ||||
-rw-r--r-- | views/composer/tests/tst_composerview.qml | 5 |
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" }) |