[Interest] 64-bit internal ID for QModelIndex?

Stephen Chu stephen at ju-ju.com
Tue Aug 21 22:55:38 CEST 2012


On 8/21/12 4:26 PM, Nikos Chantziaras wrote:
> On 21/08/12 22:45, Stephen Chu wrote:
>> On 8/21/12 3:35 PM, Christoph Feck wrote:
>>> On Tuesday 21 August 2012 20:55:00 Stephen Chu wrote:
>>>> Is there a way to store a 64-bit internal ID in QModelIndex? The
>>>> function QModelIndex::internalId() returns a 64-bit number but
>>>> there's no way to put one in. The constructor takes only a 32-bit
>>>> integer.
>>>
>>> Try using the overload that takes the void * pointer. The return value
>>> is 64 bit, because pointers can also be 64 bit, and C++ doesn't allow
>>> different overloads with different return values.
>>
>> Thanks for the help. But my app is currently 32-bit. :(
>
> Would a pointer to a qint64 work?

Yes, it will. I was thinking about that but got stuck trying to figuring 
out how I can manage the memory since QModelIndedx does not own the 
object/memory pointed by the void*

Say I allocate a QList<int64_t> and create indices with internal pointer 
pointing to elements in the list. When I need to update the model from 
external data, I will have to re-allocate the list and the existing 
pointers will be left dangling. What is the proper steps to update the 
model data in this case?




More information about the Interest mailing list