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, i...@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, i...@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-unsubscr...@lists.sailfishos.org



_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

Reply via email to