[SailfishDevel] ListView vs Repeater

Krisztian Olah fasza2mobile at gmail.com
Tue Oct 14 12:41:29 UTC 2014


              Hi Oleksii,
  After writing the code I realized that RemorseItem by default excecutes
its executable onDestruction() when its timer is on. I am not quite sure
why it didn't work the same way before or why I precieved it differently.

Thanks again Kris

On 14 October 2014 08:46, Oleksii Serdiuk <contacts at oleksii.name> wrote:

> Hi Kris,
>
> Aha! So what you want is:
>
> 1. User selects to remove an item in the ListView.
> 2. RemorseItem activates so user can cancel the deletion.
> 3. When timer times out, the item is actually deleted from the model.
>
> And, in this case, 3. breaks when user scrolls the item away before
> timeout: delegate is deleted -> RemorseItem never times out -> item not
> deleted from the model.
>
> Then yes, performing deletion in Component.onDestruction() is the way
> Jolla's standard apps do (at least I've seen it in one of their apps).
> So you're on the right track :-)
>
> On 13/10/14 23:54, Krisztian Olah wrote:
> >        Hi Oleksii,
> >   It is the model that handles the actual removal, but I want a
> > RemorseItem to call it, which is in return requested by the delegate. I
> > want all list items to have their own remorse timer in case user wants
> > to cancel one but not the other.
> >   In my current version it works fine, except when the user scrolls away
> > too far the RemorseItem is destroyed and the file is left on the disk,
> > but come to think of it; perhaps I could just call the model.remove()
> > function when onDestruction() signal is emitted. Thanks, if I didn't
> > write this letter I might not think of it. :)
> >
> > Anyway if you want to see the latest version you can have a look here:
> >
> https://github.com/KrisztianOlah/london-sail/blob/devel/qml/pages/MyMapsPage.qml
> >
> > I'd be happy for any feedback. :)
> >
> > Thanks Kris
> >
> > On 13 October 2014 20:10, Oleksii Serdiuk <contacts at oleksii.name
> > <mailto:contacts at oleksii.name>> wrote:
> >
> >     Hi Kris,
> >
> >     If I understood you right, why do you try to remove list elements
> >     directly from the ListVie. You should be removing them from the
> >     model and it will also remove components from the list.
> >
> >     See
> >     http://qt-project.org/doc/qt-__5/qml-qtqml-models-listmodel.__html
> >     <http://qt-project.org/doc/qt-5/qml-qtqml-models-listmodel.html>
> >
> >     You can access ListView's model through its 'model' property:
> >
> >     > listView.model.remove(index);
> >
> >
> >     If you'd like to animate the removal, set 'remove' property of
> >     ListView (SilicaListView is based on ListView) to some transition
> >     animation.
> >
> >
> http://qt-project.org/doc/qt-__5/qml-qtquick-listview.html#__remove-prop
> >     <
> http://qt-project.org/doc/qt-5/qml-qtquick-listview.html#remove-prop>
> >
> >
> >     That would be a "proper" way to do it :-)
> >
> >
> >
> >     On 10.10.2014 17:00, Krisztian Olah wrote:
> >
> >                        Hi everyone,
> >
> >            I need some help between choosing ListView or Repeater.
> >         I've got a SilicaListView whose elements I want to remove(only
> >         remove,
> >         never add) dynamically from GUI. When I have fairly a long list
> >         count(~25), reaching the element with
> >         ListView.contentItem.children[__index] is not possible for the
> >         mid to end
> >         of the list, probably because ListView destroys items that are
> not
> >         visible. When that happens children[index] will not refer to the
> >         same
> >         element as model.index and therefore I cannot call remove() on
> >         the item.
> >         Using a Repeater would of course prevent this, but I don't think
> >         I can
> >         have a RemoveAnimation and I think I would have to reset the
> model.
> >
> >            Is there another way that I didn't think of that would allow
> >         me to
> >         remove items from my model with animation and would allow me to
> >         have a
> >         list up to 1000 members(in real use it will probably be under
> >         100) long?
> >
> >                Thanks in advance
> >                         Kris
>
> --
> With best regards,
> Oleksii Serdiuk
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to
> devel-unsubscribe at lists.sailfishos.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20141014/c697060d/attachment.html>


More information about the Devel mailing list