[SailfishDevel] pageStack.pop() - send paramater to prev page
info at flyingfischer.ch
info at flyingfischer.ch
Thu Jun 5 16:49:38 UTC 2014
Hi Chris
thanks for this idea and your code example!
I am working on app in a very early stage that will partially talk to a
remote server and get dynamic content. In some cases it even will create
a little bit of traffic...
...so I will stick for the moment with the solution provided by Konstantin.
Regarding the use of Dialog:
I come from the Java world and am an absolute newbie on QT. I couldn't
figure out how this would work. The documentation from Sailfish OS || QT
is not very clear about this, at least not for me.
...but I intend to learn and will certainly restudy the docu and try to
check out other use cases from other apps, untill I get it ;-)
Thanks to anybody!
Markus
Am 05.06.2014 16:40, schrieb Christopher Lamb:
> 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 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
>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to devel-unsubscribe at lists.sailfishos.org
>
More information about the Devel
mailing list