You could also create a shared (stateless) JS library which you can use to
share variables between different qml documents.


​/Mikko​


2014-06-06 9:47 GMT+03:00 Andrey Kozhevnikov <coderusin...@gmail.com>:

> 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-unsubscribe@lists.
>>> sailfishos.org
>>>
>>>  _______________________________________________
>> SailfishOS.org Devel mailing list
>> To unsubscribe, please send a mail to devel-unsubscribe@lists.
>> sailfishos.org
>>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to devel-unsubscribe@lists.
> sailfishos.org
>
_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

Reply via email to