[SailfishDevel] Bug in the Silica Reference docs and possible bug in the Dialog component
Superpelican
superpelican at zoho.com
Mon Aug 12 09:57:51 UTC 2013
Hello Matthew,
Thanks a lot for your quick reply!
The acceptDestinationAction property is exactly what I'm looking for. :)
The dialog on the pageStack should indeed be replaced with the
questionPage. I already had the acceptDestination set to questionPage,
but wasn't aware of the existence of the acceptDestinationAction property.
Thanks for all your help,
Superpelican
On 08/12/2013 12:58 AM, Matthew Vogt wrote:
> Hi Superpelican, thanks for the explanation.
>
> What you want is for the dialog which selects the multiplier to be
> transitory, right? So the page sequence will be: initial-page
> ->dialog -> question-page -> base-page.
>
> In this case, you need to use the 'acceptDestination' property of the
> dialog:
> https://sailfishos.org/sailfish-silica/qml-sailfishsilica-dialog.html#acceptDestination-prop
>
> If you set the question-page as the 'acceptDestination' and set the
> 'acceptDestinationAction' property to 'PageStackAction.Replace', then
> the effect of accepting the dialog will be to replace the dialog on
> the stack top with question-page. The pageStack state will transition
> directly from [ initial-page, dialog] to [ initial-page, question-page
> ], and returning from question-page will then go directly back to
> initial-page.
>
> Note that you must provide the instance or component for the
> 'acceptDestination' page before the user has accepted the dialog
> (because we need to be able to show that page when the user starts to
> drag right-to-left). This means you may need to communicate the
> dialog state at acceptance to the already instantiated question-page,
> by some means.
>
> Hope that helps,
> Matt
>
> ------------------------------------------------------------------------
> *From:* Superpelican [superpelican at zoho.com]
> *Sent:* Monday, August 12, 2013 4:45 AM
> *To:* Matthew Vogt
> *Cc:* devel at lists.sailfishos.org
> *Subject:* Re: [SailfishDevel] Bug in the Silica Reference docs and
> possible bug in the Dialog component
>
> Hello Matthew,
>
> Sorry for my late reply.
>
> I believe you misunderstood me. I'm not developing a custom Sailfish
> Dialog component, but creating a Sailfish app.
> The sources can be found here
> <https://bitbucket.org/Superpelican/quick_clamshell/src>.
>
> My intent is also not to explicitly pop the dialog of the pageStack,
> but I was forced to do this, because the dialog doesn't do it itself!
> BTW I have already removed the code that should explicitly pop the
> dialog of the pageStack because it didn't work.
>
> >Also, as the implementor of the Dialog, you should use the onDone()
> handler to react to the user's actions, leaving the accepted() signal
> to be handled by users of >your dialog.
>
> Because I'm not creating a custom dialog component, I am actually the
> user of the dialog, so that's why I'm handling the onAccepted() signal. ;)
>
> I've demonstrated what I'm experiencing in this video:
> http://ubuntuone.com/71UqvktzqGWMvukeVTW8Qy
> <http://ubuntuone.com/71UqvktzqGWMvukeVTW8Qy> (should be viewable in
> any HTML5 video supporting browser, that supports WebM, like Firefox
> and Chromium).
>
> Kind Regards,
>
> Superpelican
>
> On 08/05/2013 01:38 PM, Matthew Vogt wrote:
>> Hi Superpelican.
>> Thanks for catching the errors in the Dialog documentation, I will
>> correct them.
>>
>> In your Clamshell dialog, you do not need to explicitly pop() the
>> dialog page in response to the accept action; it is popped by the
>> user's interaction (either a drag or an 'Accept' click), and the
>> accepted signal is generated in response to this event.
>>
>> Also, as the implementor of the Dialog, you should use the onDone()
>> handler to react to the user's actions, leaving the accepted() signal
>> to be handled by users of your dialog.
>>
>> Thanks,
>> Matt
>>
>> ------------------------------------------------------------------------
>> *From:* devel-bounces at lists.sailfishos.org
>> [devel-bounces at lists.sailfishos.org] on behalf of Superpelican
>> [superpelican at zoho.com]
>> *Sent:* Sunday, August 04, 2013 8:42 PM
>> *To:* devel at lists.sailfishos.org
>> *Subject:* [SailfishDevel] Bug in the Silica Reference docs and
>> possible bug in the Dialog component
>>
>> Hello,
>>
>> Sfiet_Konstantin and I have had another debugging session on IRC
>> recently with my app.
>> (http://merproject.org/logs/%23sailfishos/%23sailfishos.2013-08-03.log)
>>
>> I had defined a handler that would be called when the user accepted a
>> dialog. However
>> we saw that the handler was never called. Then I noticed that the
>> documentation page
>> on the Silica Reference about the Dialog component has an error in
>> it. The description part
>> of the page described that an user can accept a dialog by pushing it
>> *from right
>> to left*.
>>
>> But the onAccepted() signal hander description described that the
>> user could accept a dialog
>> by pushing it *from left to right*. Well I tested it in the emulator
>> and the description of the
>> Dialog component at the top of the page is correct. However the
>> description of the onAccepted()
>> signal handler is incorrect. Instead when you push the dialog *from
>> left to right* you *reject it*!
>>
>> So every time I thought I was accepting the dialog, I actually
>> rejected it! ;) I had only read the wrong part
>> of the documentation page.
>>
>> The onRejected() signal handler description is incorrect too. It says
>> you can reject a dialog by pushing it
>> *from right to left*. Which actually accepts the dialog.
>>
>> I hope someone can edit the Silica Reference, so that not more
>> developers read the wrong part and wonder
>> why their defined action doesn't occur! ;)
>>
>>
>> Also we noticed that when a dialog is accepted, it isn't popped from
>> the pageStack. While according to Sfiet_Konstantin
>> this should happen. This is especially a problem in my app, where the
>> app has a homescreen where a mode is chosen.
>> Then when a particular mode is chosen the user is first prompted for
>> a dialog, to enter information that is required for
>> that mode to operate. After the user has accepted the dialog, the
>> mode begins. The user can quit the mode and return
>> to the homescreen by simply pushing away the "mode page".
>>
>> However when the user does that, the dialog is still there and he/she
>> will have to reject the dialog too and will then finally return to
>> the homescreen. Not only does this require another action from the user,
>> it can also be confusing to see a dialog with the previously entered
>> value still in it. Some users will think they need to accept the dialog.
>> But if they do, they'll return to the "mode page", not the
>> homescreen. This can be very confusing.
>>
>> This can all be seen in this video:
>> http://ubuntuone.com/7MIfo6vKsdqg9PmgSQ9iH4
>> <http://ubuntuone.com/7MIfo6vKsdqg9PmgSQ9iH4> (note: this requires a
>> browser that supports HTML5, otherwise
>> you'll need to download the video and play it in your local video
>> player). Unfortunately the video has a very low framerate.
>> Sfiet_Konstantin and I
>> don't know whether this is due to my laptop not being particulary
>> highly spec'd or Wayland causing the low framerate. I can remember
>> recording
>> applications and games with another recordmydesktop frontend on a
>> much lower spec'd computer, so I doubt that computer is too slow.
>>
>> The source code of my app can be found at
>> http://bitbucket.org/Superpelican/quick_clamshell/src/
>>
>> I hope this is helpful for the sailors/Jollaians,
>>
>> Superpelican
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20130812/c27fe86d/attachment.html>
More information about the Devel
mailing list