[SailfishDevel] pageStack.pop() - send paramater to prev page
Andrey Kozhevnikov
coderusinbox at gmail.com
Fri Jun 6 06:47:35 UTC 2014
i have an another idea for you:
...
var newPage = pageStack.push(Qt.resolvedUrl("newPage.qml"), {...})
newPage.done.connect(thisPage.pageDone)
...
//thisPage
...
function pageDone(var1, var2, var3, ...) {
//do something with var
}
...
//newPage
...
signal done(string var1, int var2, string var3, ...)
...
//Button
...
onClicked: {
page.done("something", 123, "test", ...)
}
...
05.06.2014 22:49, info at flyingfischer.ch пишет:
> 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
>>
> _______________________________________________
> 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