[Interest] Awkwardness of delegates in heterogenous ListViews

Elvis Stansvik elvstone at gmail.com
Wed Jun 8 15:34:12 CEST 2016


2016-06-08 15:32 GMT+02:00 Elvis Stansvik <elvstone at gmail.com>:
> Hi all,
>
> I'm currently using a "type" role in my items and then a Loader as
> delegate, to give a level of indirection and let me choose the actual
> delegate based on the "type" of the item.
>
> This explains it better (from my ListView):
>
>         delegate: Loader {
>             sourceComponent: {
>                 switch (type) {
>                 case "color":
>                     return colorDelegate
>                 case "flag":
>                     return flagDelegate
>                 ...
>                 }
>             }
>
>             Component {
>                 id: colorDelegate
>
>                 ColorDelegate { }
>             }
>
>             Component {
>                 id: flagDelegate
>
>                 FlagDelegate { }
>             }
>
>             ...
>         }
>
> What I don't like with this approach is that inside my delegates, e.g.
> ColorDelegate.qml, I have to use parent.ListView.view.model to get a

I should clarify: I have to use this notation since it is the parent
(the Loader) which is the real delegate and has the ListView attached
properties.

Elvis

> reference to the model (needed for editing operations). The use of
> "parent" here assumes a certain layout, but I see no other way :(
>
> How have others solved the issue of delegates for heterogenous lists?
>
> Best regards,
> Elvis



More information about the Interest mailing list