Hi Wim.

Correct me if I'm wrong, but I understand your page stack situation to be like 
this:
[ ..., page0, page1, page2 ]
and you want to pop page2, and also replace page1 with a new page, so you end 
up with:
[ ..., page0, page3 ]

Is that right?  If so, then the first argument to replaceAbove() is the page 
above which all other pages should be popped - in the above example, page0 
would be the argument.  So passing pageStack.currentPage as the first argument 
to replaceAbove() is invalid, because there can't be any pages above the top.

Thanks,
Matt

________________________________________
From: Wim de Vries [wsvr...@xs4all.nl]
Sent: Wednesday, August 14, 2013 5:42 PM
To: Matthew Vogt
Cc: Wim de Vries; devel@lists.sailfishos.org
Subject: RE: [SailfishDevel] Cannot pop while operation is in progress

Thanks Matt,
This is my function in main.qml (called from within c++)
  function loadTextEdit(text)
    {
    //pageStack.push(Qt.resolvedUrl("controls/MTextEdit.qml"))//works OK!
    pageStack.replaceAbove(pageStack.currentPage,
Qt.resolvedUrl("controls/MTextEdit.qml"))
    pageStack.currentPage.setText(text)
    return true;
    }
this results in this error:
file:///usr/lib/qt5/qml/Sailfish/Silica/PageStack.js:111: Error: Cannot
replace with target page at the top of the stack

r
wim

> "Cannot pop while operation is in progress" means that the previous
> PageStack operation is still animating, and you must wait until it
> finishes before issuing the next PageStack operation.  There are various
> strategies you can use for this, but they will all result in unattractive
> visual changes: either double animations or disorientating jumps.
>
> It sounds like you should probably use the 'replaceAbove' function:
> https://sailfishos.org/sailfish-silica/qml-sailfishsilica-pagestack.html#replaceAbove-method
> This function is equivalent to "pop all pages above the supplied target
> page, then push a new page", except that it occurs with a single visual
> transition.
>
> Thanks,
> Matt
>
> ________________________________
> From: devel-boun...@lists.sailfishos.org
> [devel-boun...@lists.sailfishos.org] on behalf of Wim de Vries
> [wsvr...@xs4all.nl]
> Sent: Wednesday, August 14, 2013 6:02 AM
> To: devel@lists.sailfishos.org
> Subject: [SailfishDevel] Cannot pop while operation is in progress
>
> If I do pop() within a current page
> and
> pageStack.replace(pageStack.currentPage,
> Qt.resolvedUrl("controls/MTextEdit.qml"))
> within main.qml I get:
> "Cannot pop while operation is in progress"
>
> I need to remove the previous page, so that the user cannot navigate back
> to this page.
> Thanks.
>


_______________________________________________
SailfishOS.org Devel mailing list

Reply via email to