mirror of
https://github.com/status-im/dotherside.git
synced 2025-02-11 20:16:47 +00:00
Moved the responsability of allocating and copying to the binding side
This commit is contained in:
parent
ef0ed26f7c
commit
53563cf716
@ -22,12 +22,12 @@ typedef void* QHashIntQByteArrayVoidPtr;
|
||||
// Raw function types
|
||||
typedef void(*Function)(void*);
|
||||
typedef void(*DObjectCallback)(void*, void*, int, void**);
|
||||
typedef void(*RowCountCallback)(void* model, QModelIndexVoidPtr index, IntPtr result);
|
||||
typedef void(*ColumnCountCallback)(void* model, QModelIndexVoidPtr index, IntPtr result);
|
||||
typedef void(*DataCallback)(void* model, QModelIndexVoidPtr index, int role, QVariantVoidPtr result);
|
||||
typedef void(*SetDataCallback) (void* model, QModelIndexVoidPtr index, QVariantVoidPtr value, int role, BoolPtr result);
|
||||
typedef void(*RowCountCallback)(void* model, const void* index, IntPtr result);
|
||||
typedef void(*ColumnCountCallback)(void* model, const void* index, IntPtr result);
|
||||
typedef void(*DataCallback)(void* model, const void* index, int role, QVariantVoidPtr result);
|
||||
typedef void(*SetDataCallback) (void* model, const void* index, const void* value, int role, BoolPtr result);
|
||||
typedef void(*RoleNamesCallback)(void* model, QHashIntQByteArrayVoidPtr result);
|
||||
typedef void(*FlagsCallback) (void* model, QModelIndexVoidPtr index, IntPtr result);
|
||||
typedef void(*FlagsCallback) (void* model, const void* index, IntPtr result);
|
||||
typedef void(*HeaderDataCallback) (void* model, int section, int orientation, int role, QVariantVoidPtr result);
|
||||
typedef void(*CreateDObject)(int, void**, void**);
|
||||
typedef void(*DeleteDObject)(int, void*);
|
||||
|
@ -54,48 +54,36 @@ int DosQAbstractListModel::qt_metacall(QMetaObject::Call call, int index, void *
|
||||
|
||||
int DosQAbstractListModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
auto parentIndex = new QModelIndex();
|
||||
*parentIndex = parent;
|
||||
int result;
|
||||
m_rowCountCallback(m_modelObject, parentIndex, &result);
|
||||
m_rowCountCallback(m_modelObject, &parent, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
int DosQAbstractListModel::columnCount(const QModelIndex &parent) const
|
||||
{
|
||||
auto parentIndex = new QModelIndex();
|
||||
*parentIndex = parent;
|
||||
int result;
|
||||
m_columnCountCallback(m_modelObject, parentIndex, &result);
|
||||
m_columnCountCallback(m_modelObject, &parent, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
QVariant DosQAbstractListModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
auto newIndex = new QModelIndex();
|
||||
*newIndex = index;
|
||||
QVariant result;
|
||||
m_dataCallback(m_modelObject, newIndex, role, &result);
|
||||
m_dataCallback(m_modelObject, &index, role, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
bool DosQAbstractListModel::setData(const QModelIndex &index, const QVariant &value, int role)
|
||||
{
|
||||
auto newIndex = new QModelIndex(index);
|
||||
*newIndex = index;
|
||||
auto newValue = new QVariant();
|
||||
*newValue = value;
|
||||
bool result = false;
|
||||
m_setDataCallback(m_modelObject, newIndex, newValue, role, &result);
|
||||
m_setDataCallback(m_modelObject, &index, &value, role, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
Qt::ItemFlags DosQAbstractListModel::flags(const QModelIndex &index) const
|
||||
{
|
||||
auto newIndex = new QModelIndex(index);
|
||||
*newIndex = index;
|
||||
int result;
|
||||
m_flagsCallback(m_modelObject, newIndex, &result);
|
||||
m_flagsCallback(m_modelObject, &index, &result);
|
||||
return Qt::ItemFlags(result);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user