Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

Reply
Developer
strobejb
Posts: 282
Registered: ‎10-15-2012
My Device: bb10 developer

ArrayDataModel with QObject*

Has anyone been successful in using an ArrayDataModel with their ListViews? In particular I need to store a QObject-derived object for each ListItem. I have this working with GroupDataModel, but ArrayDataModel is proving problematic.

 

ArrayDataModel *model = new ArrayDataModel();

 

QObject *myobj = .... pointer to my object ....

 

QVariant var = QVariant::fromValue<void *>((void *)myobj);
model->append(var);

 

My ListView appears to have items in it, but they are all blank. I've also tried deriving my own class from ArrayDataModel, overriding the itemType() member and returning "item" - to ensure that the itemtype matches up with what I have defined for my ListView, but the entries in the list are always blank.

Please use plain text.
Developer
kylefowler
Posts: 526
Registered: ‎05-17-2009
My Device: 9900

Re: ArrayDataModel with QObject*

try something like:
QVariant variant = qVariantFromValue((QObject*)obj);
Like all of my posts
Please use plain text.
Developer
strobejb
Posts: 282
Registered: ‎10-15-2012
My Device: bb10 developer

Re: ArrayDataModel with QObject*

I switched to using QListDataModel and managed to get this working:

 

class UnsortedDataModel : public QListDataModel<QObject *>
{
Q_OBJECT

public:
   UnsortedDataModel() : QListDataModel()
  {
  }

  ~UnsortedDataModel()
  {
  }

  QString itemType(const QVariantList &indexPath)

  {

     return "item";

  }
};

 

 

Please use plain text.