Hi, 

While that solution below works perfectly fine to get data from the appWindow 
to the cover, I am facing an issue trying to do the opposite. 

Let's explain. My AppWindow looks like this: 

ApplicationWindow 
{ 
MyModel { 
... 
onUpdated(cover.myFunction()) 
} 

cover: Qt.resolvedUrl("cover/CoverPage.qml") 
... 
} 

in CoverPage.qml I have the following: 

CoverBackground { 
... 
myFunction(){ 
... 
} 
} 

I am unable to execute myFunction for whatever reason I don't understand. I 
also tried a few things like: 

import "cover' 
MyModel { 
... 
onUpdated(coverPage.myFunction()) 
} 
cover: CoverPage {id: myCoverPage} 

Weird that in that case the font used by the cover is not the regular Sailfish 
font... 

It is the same to access properties from the cover. How is it supposed to work? 

Thanks, 

Antoine 

----- Mail original -----


De: "Andrey Kozhevnikov" <coderusin...@gmail.com> 
À: devel@lists.sailfishos.org 
Envoyé: Samedi 16 Novembre 2013 08:48:05 
Objet: Re: [SailfishDevel] best way to work with covers? 

If you declare all your pages in ApplicationWindow like: 

ApplicationWindow { 
id: appWindow 
cover: Qt.resolvedUrl("CoverPage.qml") 

MainPage { 
id: mainPage 
} 

SecondPage { 
id: secondPage 
} 
} 

then you can use pages global properties and functions from CoverPage: 

CoverBackground { 
id: cover 
... 

Label { 
anchors.centerIn: cover 
... 
text: mainPage.processStatus 
color: secondPage.getCoverColor() 
} 
} 

On 16.11.2013 13:39, Gabriel Boehme wrote: 


Hi Artem, 

thanks for the fast response. 

Your solution is a good idea, and could work for some values (main page 
and first cover) - thanks for that! :), but not all. 

Because I can pass them only in the moment I instantiate them. So I have 
to instantiate all of them in the ApplicationWindow. This is possible, 
but I guess due to the SailfishOS glass effect they appear stacked. So I 
see other files (pages/cover), even if they are not set as the PageStack 
first page or Cover. Maybe it's possible to workaround with opacity and 
checking for PageStatus, but seems not to be the cleanest solution. And 
the other side is, the console output/examples said, it's better to 
create them just in the moment you really need them. 

So I also tried, var page = Qt.createComponent("qml/file"), so I can 
store a page/cover in a variable and push that on the PageStack, but I 
can't reach the property aliases. 

Thanks. 

Gabriel. 


Am Samstag, den 16.11.2013, 01:55 +0200 schrieb Artem Marchenko: 

<blockquote>
Hi Gabriel 


There are several ways of passing data between Cover and rest of app 
(or any components). You can try using app global object ids or 
javascript files with .pragma library and gloval [to them] variables 
or inject global objects from C++ via setContextProperty(). 


The way I like doing it is to keep shared object in main.qml and pass 
it to pages/covers at the moment of instantiation the following way: 


======== 
ApplicationWindow 
{ 
id: app 
property string sharedValue: "whatever you want to share to cover" 





initialPage: Component { 
MainPage { 
torch: app.sharedValue 

} 

} 


cover: Component { 
CoverPage { 
torch: app.sharedValue 
} 
} 


} 

======== 


I hope if helps. 


Cheers, 
Artem. 




On Sat, Nov 16, 2013 at 1:00 AM, Gabriel Boehme 
<m.gabrielboe...@googlemail.com> wrote: 
Hi Sailfish sailors, 

I want to ask, what is recommended/best practice to handle 
different 
covers/covers with dynamic information. 

My case: 

On the main page (MainPage.qml) you can select some options 
and search 
depending on the selected options. My main cover shows the 
selected 
options if minimized, so I can't just create it with 
Qt.resolvedUrl("path/to/maincover.qml"), because I'm "talking" 
to the 
cover with via property aliases. So I'm creating this cover 
directly as 
an instance in ApplicationWindow. 

After the search a ListView shows the results from a model and 
I created 
another cover to switch between the results with CoverAction 
(show 
next/previous) - it takes the data from the model. But also 
shows some 
information from main page - via property alias. 

So the point is: to fill the cover pages with the dynamic data 
I can't 
create them with Qt.resolvedUrl("path/to/cover.qml"), or 
push("mypage.qml") because I need property aliases to set the 
information on the covers. But in the most examples and also 
the console 
output tells me, that it is not clever to create instances in 
the 
ApplicationWindow part. 

So what is best practice? Do I miss something? 

Thank you very much in advance. 

Gabriel 

_______________________________________________ 
SailfishOS.org Devel mailing list 




-- 
Artem Marchenko 
http://agilesoftwaredevelopment.com 
http://twitter.com/AgileArtem 
_______________________________________________ 
SailfishOS.org Devel mailing list 



_______________________________________________ 
SailfishOS.org Devel mailing list 

_______________________________________________ 
</blockquote>


SailfishOS.org Devel mailing list 
_______________________________________________
SailfishOS.org Devel mailing list

Reply via email to