<html><head></head><body><div id="fenix-user-content">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Hello,</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;font-family:'NokiaPureTextLight'"><br></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">In first case your Cover is not an instance, instead it's created directly from File, that means the function is not known. </span></p>

<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;font-family:'NokiaPureTextLight'"><br></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">The second case should work, if you change onUpdated to onUpdated(myCoverPage.myFunction()) Because at the moment you don't use the id's name!</span></p>

<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;font-family:'NokiaPureTextLight'"><br></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Cheers Gabriel.</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;font-family:'NokiaPureTextLight'"><br></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">--</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Von meinem Nokia N9 gesendet</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p></div><br><div id="fenix-reply-header"><p>Tigre-Bleu schrieb am 30.11.13 00:09:<br>
</p></div><div id="fenix-quoted-body"><div><div style="font-size:12pt;font-family:times new roman,new york,times,serif"><div>Hi,<br></div><div><br></div><div>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.<br>
</div><div><br></div><div>Let's explain. My AppWindow looks like this:<br></div><div><br></div><div style="padding-left:30px">ApplicationWindow<br>{<br>   MyModel {<br>      ...<br>      onUpdated(cover.myFunction())<br>
   }<br></div><div style="padding-left:30px"><br></div><div style="padding-left:30px">   cover: Qt.resolvedUrl("cover/CoverPage.qml")<br>   ...<br>}<br></div><div><br></div><div>in CoverPage.qml I have the following:<br>
</div><div><br></div><div style="padding-left:30px">CoverBackground {<br>...<br>  myFunction(){<br>  ...<br>  }<br>}<br></div><div><br></div><div>I am unable to execute myFunction for whatever reason I don't understand. I also tried a few things like:<br>
</div><div style="padding-left:30px"><br></div><div style="padding-left:30px">import "cover'<br></div><div style="padding-left:30px">   MyModel {<br>      ...<br>      onUpdated(coverPage.myFunction())<br>   }</div>
<div style="padding-left:30px">cover: CoverPage {id: myCoverPage}<br></div><div><br></div><div>Weird that in that case the font used by the cover is not the regular Sailfish font...<br></div><div><br></div><div>It is the same to access properties from the cover. How is it supposed to work?<br>
</div><div><br></div><div>Thanks,<br></div><div><br></div><div>Antoine<br></div><div><br></div><hr><div><br>De: "Andrey Kozhevnikov" <<a href="mailto:coderusinbox@gmail.com" target="_blank">coderusinbox@gmail.com</a>><br>
À: <a href="mailto:devel@lists.sailfishos.org" target="_blank">devel@lists.sailfishos.org</a><br>Envoyé: Samedi 16 Novembre 2013 08:48:05<br>Objet: Re: [SailfishDevel] best way to work with covers?<br></div><div><br></div>
<div>If you declare all your pages in ApplicationWindow like:<br></div><div><br></div><div>ApplicationWindow {<br>   id: appWindow<br>   cover: Qt.resolvedUrl("CoverPage.qml")<br></div><div><br></div><div>   MainPage {<br>
     id: mainPage<br>   }<br></div><div><br></div><div>   SecondPage {<br>     id: secondPage<br>   }<br>}<br></div><div><br></div><div>then you can use pages global properties and functions from CoverPage:<br></div><div>
<br></div><div>CoverBackground {<br>   id: cover<br>   ...<br></div><div><br></div><div>   Label {<br>     anchors.centerIn: cover<br>     ...<br>     text: mainPage.processStatus<br>     color: secondPage.getCoverColor()<br>
   }<br>}<br></div><div><br></div><div>On 16.11.2013 13:39, Gabriel Boehme wrote:<br></div><blockquote>Hi Artem,<br><div><br></div> thanks for the fast response.<br><div><br></div> Your solution is a good idea, and could work for some values (main page<br>
 and first cover) - thanks for that! :), but not all.<br><div><br></div> Because I can pass them only in the moment I instantiate them. So I have<br> to instantiate all of them in the ApplicationWindow. This is possible,<br>
 but I guess due to the SailfishOS glass effect they appear stacked. So I<br> see other files (pages/cover), even if they are not set as the PageStack<br> first page or Cover. Maybe it's possible to workaround with opacity and<br>
 checking for PageStatus, but seems not to be the cleanest solution. And<br> the other side is, the console output/examples said, it's better to<br> create them just in the moment you really need them.<br><div><br></div>
 So I also tried, var page = Qt.createComponent("qml/file"), so I can<br> store a page/cover in a variable and push that on the PageStack, but I<br> can't reach the property aliases.<br><div><br></div> Thanks.<br>
<div><br></div> Gabriel.<br><div><br></div><br> Am Samstag, den 16.11.2013, 01:55 +0200 schrieb Artem Marchenko:<br><blockquote>Hi Gabriel<br><div><br></div><br> There are several ways of passing data between Cover and rest of app<br>
 (or any components). You can try using app global object ids or<br> javascript files with .pragma library and gloval [to them] variables<br> or inject global objects from C++ via setContextProperty().<br><div><br></div><br>
 The way I like doing it is to keep shared object in main.qml and pass<br> it to pages/covers at the moment of instantiation the following way:<br><div><br></div><br> ========<br> ApplicationWindow<br> {<br>      id: app<br>
      property string sharedValue: "whatever you want to share to cover"<br><div><br></div><br><div><br></div><br><div><br></div>      initialPage: Component {<br>          MainPage {<br>              torch: app.sharedValue<br>
<div><br></div>          }<br><div><br></div>      }<br><div><br></div><br>      cover: Component {<br>          CoverPage {<br>              torch: app.sharedValue<br>          }<br>      }<br><div><br></div><br> }<br><div>
<br></div> ========<br><div><br></div><br> I hope if helps.<br><div><br></div><br> Cheers,<br> Artem.<br><div><br></div><br><div><br></div><br> On Sat, Nov 16, 2013 at 1:00 AM, Gabriel Boehme<br> <<a href="mailto:m.gabrielboehme@googlemail.com" target="_blank">m.gabrielboehme@googlemail.com</a>> wrote:<br>
          Hi Sailfish sailors,<br>          <br>          I want to ask, what is recommended/best practice to handle<br>          different<br>          covers/covers with dynamic information.<br>          <br>          My case:<br>
          <br>          On the main page (MainPage.qml) you can select some options<br>          and search<br>          depending on the selected options. My main cover shows the<br>          selected<br>          options if minimized, so I can't just create it with<br>
          Qt.resolvedUrl("path/to/maincover.qml"), because I'm "talking"<br>          to the<br>          cover with via property aliases. So I'm creating this cover<br>          directly as<br>
          an instance in ApplicationWindow.<br>          <br>          After the search a ListView shows the results from a model and<br>          I created<br>          another cover to switch between the results with CoverAction<br>
          (show<br>          next/previous) - it takes the data from the model. But also<br>          shows some<br>          information from main page - via property alias.<br>          <br>          So the point is: to fill the cover pages with the dynamic data<br>
          I can't<br>          create them with Qt.resolvedUrl("path/to/cover.qml"), or<br>          push("mypage.qml") because I need property aliases to set the<br>          information on the covers. But in the most examples and also<br>
          the console<br>          output tells me, that it is not clever to create instances in<br>          the<br>          ApplicationWindow part.<br>          <br>          So what is best practice? Do I miss something?<br>
          <br>          Thank you very much in advance.<br>          <br>          Gabriel<br>          <br>          _______________________________________________<br>          SailfishOS.org Devel mailing list<br><div>
<br></div><br><div><br></div><br> -- <br> Artem Marchenko<br> <a href="http://agilesoftwaredevelopment.com" target="_blank">http://agilesoftwaredevelopment.com</a><br> <a href="http://twitter.com/AgileArtem" target="_blank">http://twitter.com/AgileArtem</a><br>
 _______________________________________________<br> SailfishOS.org Devel mailing list<br></blockquote><br> _______________________________________________<br> SailfishOS.org Devel mailing list<br><div><br></div>_______________________________________________</blockquote>
<div><br>SailfishOS.org Devel mailing list<br></div></div></div><br>_______________________________________________<br>
SailfishOS.org Devel mailing list<br></div><br></body></html>