[SailfishDevel] pageStack.pop() - send paramater to prev page

Christopher Lamb christopher.lamb at thurweb.ch
Fri Jun 6 15:42:07 UTC 2014


Hi Michael

I agree with that, in fact that point  was covered in the paragraph 
starting "The downside is ...".  Rather than lazy-loading pages, I 
lazy-load page-content where requried (i.e creating the page takes a 
noticable time). So the Page is static, but lazy-loads its child elements.

Grüsse

Chris


On 05.06.14 17:28, Michael Neufing wrote:
> Hi Chris,
>
> one problem I see with your solution is that the App could take long 
> time to launch, when there are a bunch of Pages that have to be 
> initialized at launch (depending on the structure of the Pages).
>
> So I would prefer lazy loading Pages, which will be initialized when 
> it is needed.
>
>
> Mit freundlichen Grüßen,
>
> Michael Neufing
>
>
> Christopher Lamb <christopher.lamb at thurweb.ch> schrieb am 16:40 
> Donnerstag, 5.Juni 2014:
>
>
> Hi Markus
>
> In my app I chose to instantiate all my Pages in the same place. Each 
> of the pages has a declaration in a separate qml file (e.g. 
> MainPage.qml, AreaSelectionPage.qml).
>
> With this architecture none of the declarations need to know about the 
> previous or next page. It is not their concern. Instead they emit 
> signals NextPage, BackPageWithInfo, and Cancelled. In the signal 
> handler in the page instantation I do the actual pushing and popping, 
> and because all pages are instantiated in the same scope,  they are 
> all available to be pushed / popped to. (see code example below).
>
> The downside is that all the pages are created on startup (regardless 
> of if they are ever visited). For lightweight pages this is not a 
> problem, but for some pages this might be a problem. For these I 
> dynamically create the page content when the page is visible.
>
> Grüsse
>
> Chris
>
>
> ApplicationWindow  {
>      id:  appWindow
>      .......
>      initialPage:  mainPage
>      MainPage  {
>          id:  mainPage
>             ....
>          onNextPage:  {
>               if  (pageType  =="SMS")  {
>                  console.log("smsType  is:  "  +  smsType)
>                  if  (smsType  =="Default")  pageStack.push(smsPage,  {lati:  mainPage.getLati(),  longi:  mainPage.getLongi(),
>   alti:  mainPage.getAlt
>   i(),  area_id:  area_id,  template_id:  template_id,  msg_status:  msg_status,  lastPage:  "mainPage"})
>              }
>              else  {
>                  pageStack.push(areaSelectionPage)
>              }
>          }
>      }
>      AreaSelectionPage  {
>          id:  areaSelectionPage
>          ....
>          onBackPageWithInfo:  {
>              mainPage.areaSet  =  true;
>              mainPage.area_id  =  area_id;
>              pageStack.pop(mainPage);
>          }
>          onCancelled:  pageStack.pop(mainPage);
>       }
>      SMSPage  {
>          id:  smsPage
>          ....
>          onNextPage:  {
>              pageStack.push(contactSelectionPage,  {area_id:  area_id,  template_id:  template_id})
>          }
>       }
>      ContactSelectionPage  {
>          id:  contactSelectionPage
>          ....
>          onBackPageWithInfo:  {
>              console.log("About  to  pop  smsPage;  contactName:  "  +  contactName  +  ",  contactPhone:  "  +  contactPhone);
>              smsPage.contactName  =  contactName;
>              smsPage.contactPhone  =  contactPhone;
>              smsPage.lastPage  =  "contactSelectionPage";
>              pageStack.pop(smsPage);
>          }
>          onCancelled:  pageStack.pop(smsPage);
>       }
> }
>
>
>
>
>
>
> On 05.06.14 14:43, info at flyingfischer.ch 
> <mailto:info at flyingfischer.ch> wrote:
>> Thanks for your inputs!
>>
>> Calling
>>
>> PreviousPage.topic = "MyTopic";
>> pageStack.pop();
>>
>> gives me a ReferenceError: PreviousPage is not defined.
>>
>> PreviousPage.qml and property string topic do exist.
>>
>> Thanks for your patience!
>>
>> Markus
>>
>> _______________________________________________
>> SailfishOS.org Devel mailing list
>> To unsubscribe, please send a mail to 
>> devel-unsubscribe at lists.sailfishos.org 
>> <mailto:devel-unsubscribe at lists.sailfishos.org>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to 
> devel-unsubscribe at lists.sailfishos.org 
> <mailto:devel-unsubscribe at lists.sailfishos.org>
>
>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to devel-unsubscribe at lists.sailfishos.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20140606/976447ac/attachment-0001.html>


More information about the Devel mailing list