Nice idea to have such a method. But is't it a pessimization to return a vector 
which certainly allocates?
Don't throw rocks in me, what about passing std::function that can enumerate 
roles?

Иван Комиссаров

> 2 нояб. 2018 г., в 17:52, Giuseppe D'Angelo via Development 
> <development@qt-project.org> написал(а):
> 
> Hi,
> 
> Il 02/11/18 07:05, Shawn Rutledge ha scritto:
>>> This is reasonable given the tree-of-tables that QAbstractItemModel models; 
>>> there's the bigger question of whether the one-API-fits-all is a good way 
>>> forward, however I don't see anyone willing to rewrite the model classes 
>>> for this. (There are also another couple of ideas I have in the QAIM 
>>> department, e.g. a multiData(), which is just BC because it's a new 
>>> virtual).
>> If anyone was willing to work on it, what sort of API would you propose?
> 
> (Side note: please double check your email client, it seems you've got Sérgio 
> as contact for the development mailing list :-))
> 
> 
> 
> For this sort of API, something really simple, along the lines of
> 
>> struct Data { Qt::ItemDataRole role; QVariant data; };
>> virtual vector<Data> multiData(const QModelIndex &index, vector<Data> roles) 
>> const;
> 
> (We can bikeshed on the exact signature, and if we should be using some 
> "small map" type, QVector, std::vector, ...). Anyhow, the idea is to pass the 
> set of roles that we want to read for a given index, and get the data for all 
> those roles in one go. This should help stop hammering data() once per role; 
> of course, the default implementation will simply call data() multiple times.
> 
> 
> My 2 c,
> 
> -- 
> Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer
> KDAB (France) S.A.S., a KDAB Group company
> Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com
> KDAB - The Qt, C++ and OpenGL Experts
> 
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to