mirror of
https://github.com/status-im/dotherside.git
synced 2025-02-12 04:26:43 +00:00
Work on MockQAbstractListModel
This commit is contained in:
parent
b198de0fd6
commit
864849680b
@ -155,14 +155,14 @@ DOS_API void DOS_CALL dos_qobject_delete(DosQObject *vptr);
|
||||
DOS_API DosQModelIndex *DOS_CALL dos_qmodelindex_create();
|
||||
DOS_API DosQModelIndex *DOS_CALL dos_qmodelindex_create_qmodelindex(DosQModelIndex *index);
|
||||
DOS_API void DOS_CALL dos_qmodelindex_delete (DosQModelIndex *vptr);
|
||||
DOS_API int DOS_CALL dos_qmodelindex_row (DosQModelIndex *vptr);
|
||||
DOS_API int DOS_CALL dos_qmodelindex_column (DosQModelIndex *vptr);
|
||||
DOS_API bool DOS_CALL dos_qmodelindex_isValid(DosQModelIndex *vptr);
|
||||
DOS_API int DOS_CALL dos_qmodelindex_row (const DosQModelIndex *vptr);
|
||||
DOS_API int DOS_CALL dos_qmodelindex_column (const DosQModelIndex *vptr);
|
||||
DOS_API bool DOS_CALL dos_qmodelindex_isValid(const DosQModelIndex *vptr);
|
||||
DOS_API DosQVariant *DOS_CALL dos_qmodelindex_data (DosQModelIndex *vptr, int role);
|
||||
DOS_API DosQModelIndex *DOS_CALL dos_qmodelindex_parent (DosQModelIndex *vptr);
|
||||
DOS_API DosQModelIndex *DOS_CALL dos_qmodelindex_child (DosQModelIndex *vptr, int row, int column);
|
||||
DOS_API DosQModelIndex *DOS_CALL dos_qmodelindex_sibling(DosQModelIndex *vptr, int row, int column);
|
||||
DOS_API void DOS_CALL dos_qmodelindex_assign (DosQModelIndex *l, DosQModelIndex *r);
|
||||
DOS_API DosQModelIndex *DOS_CALL dos_qmodelindex_parent (const DosQModelIndex *vptr);
|
||||
DOS_API DosQModelIndex *DOS_CALL dos_qmodelindex_child (const DosQModelIndex *vptr, int row, int column);
|
||||
DOS_API DosQModelIndex *DOS_CALL dos_qmodelindex_sibling(const DosQModelIndex *vptr, int row, int column);
|
||||
DOS_API void DOS_CALL dos_qmodelindex_assign (DosQModelIndex *l, const DosQModelIndex *r);
|
||||
|
||||
// QHash<int, QByteArray>
|
||||
DOS_API DosQHashIntQByteArray *DOS_CALL dos_qhash_int_qbytearray_create();
|
||||
|
@ -35,13 +35,30 @@ typedef void (DOS_CALL *Function)(void *);
|
||||
/// @param argv An array of DosQVariant pointers. They should not be deleted
|
||||
typedef void (DOS_CALL *DObjectCallback)(void *self, DosQVariant *slotName, int argc, DosQVariant **argv);
|
||||
|
||||
typedef void (DOS_CALL *RowCountCallback) (DosQAbstractListModel *model, const DosQModelIndex *index, int *result);
|
||||
typedef void (DOS_CALL *ColumnCountCallback) (DosQAbstractListModel *model, const DosQModelIndex *index, int *result);
|
||||
typedef void (DOS_CALL *DataCallback) (DosQAbstractListModel *model, const DosQModelIndex *index, int role, DosQVariant *result);
|
||||
typedef void (DOS_CALL *SetDataCallback) (DosQAbstractListModel *model, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result);
|
||||
typedef void (DOS_CALL *RoleNamesCallback) (DosQAbstractListModel *model, DosQHashIntQByteArray *result);
|
||||
typedef void (DOS_CALL *FlagsCallback) (DosQAbstractListModel *model, const DosQModelIndex *index, int *result);
|
||||
typedef void (DOS_CALL *HeaderDataCallback) (DosQAbstractListModel *model, int section, int orientation, int role, DosQVariant *result);
|
||||
/// Called when the QAbstractListModel::rowCount method must be executed
|
||||
/// @param self The pointer to the QAbstractListModel in the binded language
|
||||
/// @param index The parent DosQModelIndex. It should not be deleted
|
||||
/// @param result The rowCount result. This must be deferenced and filled from the binded language.
|
||||
/// It should not be deleted
|
||||
typedef void (DOS_CALL *RowCountCallback) (void *self, const DosQModelIndex *parent, int *result);
|
||||
|
||||
/// Called when the QAbstractListModel::columnCount method must be executed
|
||||
/// @param self The pointer to the QAbstractListModel in the binded language
|
||||
/// @param index The parent DosQModelIndex. It should not be deleted
|
||||
/// @param result The rowCount result. This must be deferenced and filled from the binded language.
|
||||
/// It should not be deleted
|
||||
typedef void (DOS_CALL *ColumnCountCallback) (void *self, const DosQModelIndex *parent, int *result);
|
||||
|
||||
/// Called when the QAbstractListModel::data method must be executed
|
||||
/// @param self The pointer to the QAbstractListModel in the binded language
|
||||
/// @param index The DosQModelIndex to which we request the data. It should not be deleted
|
||||
/// @param result The DosQVariant result. This must be deferenced and filled from the binded language.
|
||||
/// It should not be deleted. See dos_qvariant_assign or other DosQVariant setters
|
||||
typedef void (DOS_CALL *DataCallback) (void *self, const DosQModelIndex *index, int role, DosQVariant *result);
|
||||
typedef void (DOS_CALL *SetDataCallback) (void *self, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result);
|
||||
typedef void (DOS_CALL *RoleNamesCallback) (void *self, DosQHashIntQByteArray *result);
|
||||
typedef void (DOS_CALL *FlagsCallback) (void *self, const DosQModelIndex *index, int *result);
|
||||
typedef void (DOS_CALL *HeaderDataCallback) (void *self, int section, int orientation, int role, DosQVariant *result);
|
||||
typedef void (DOS_CALL *CreateDObject)(int, void *, void **, void **);
|
||||
typedef void (DOS_CALL *DeleteDObject)(int, void *);
|
||||
|
||||
|
@ -412,56 +412,56 @@ void dos_qmodelindex_delete(::DosQModelIndex *vptr)
|
||||
delete index;
|
||||
}
|
||||
|
||||
int dos_qmodelindex_row(::DosQModelIndex *vptr)
|
||||
int dos_qmodelindex_row(const ::DosQModelIndex *vptr)
|
||||
{
|
||||
auto index = static_cast<QModelIndex *>(vptr);
|
||||
auto index = static_cast<const QModelIndex *>(vptr);
|
||||
return index->row();
|
||||
}
|
||||
|
||||
int dos_qmodelindex_column(::DosQModelIndex *vptr)
|
||||
int dos_qmodelindex_column(const ::DosQModelIndex *vptr)
|
||||
{
|
||||
auto index = static_cast<QModelIndex *>(vptr);
|
||||
auto index = static_cast<const QModelIndex *>(vptr);
|
||||
return index->column();
|
||||
}
|
||||
|
||||
bool dos_qmodelindex_isValid(::DosQModelIndex *vptr)
|
||||
bool dos_qmodelindex_isValid(const ::DosQModelIndex *vptr)
|
||||
{
|
||||
auto index = static_cast<QModelIndex *>(vptr);
|
||||
auto index = static_cast<const QModelIndex *>(vptr);
|
||||
return index->isValid();
|
||||
}
|
||||
|
||||
::DosQVariant *dos_qmodelindex_data(::DosQModelIndex *vptr, int role)
|
||||
::DosQVariant *dos_qmodelindex_data(const ::DosQModelIndex *vptr, int role)
|
||||
{
|
||||
auto index = static_cast<QModelIndex *>(vptr);
|
||||
auto index = static_cast<const QModelIndex *>(vptr);
|
||||
auto result = new QVariant(index->data(role));
|
||||
return static_cast<QVariant *>(result);
|
||||
}
|
||||
|
||||
::DosQModelIndex *dos_qmodelindex_parent(::DosQModelIndex *vptr)
|
||||
::DosQModelIndex *dos_qmodelindex_parent(const ::DosQModelIndex *vptr)
|
||||
{
|
||||
auto index = static_cast<QModelIndex *>(vptr);
|
||||
auto index = static_cast<const QModelIndex *>(vptr);
|
||||
auto result = new QModelIndex(index->parent());
|
||||
return static_cast<QModelIndex *>(result);
|
||||
}
|
||||
|
||||
::DosQModelIndex *dos_qmodelindex_child(::DosQModelIndex *vptr, int row, int column)
|
||||
::DosQModelIndex *dos_qmodelindex_child(const ::DosQModelIndex *vptr, int row, int column)
|
||||
{
|
||||
auto index = static_cast<QModelIndex *>(vptr);
|
||||
auto index = static_cast<const QModelIndex *>(vptr);
|
||||
auto result = new QModelIndex(index->child(row, column));
|
||||
return static_cast<QModelIndex *>(result);
|
||||
}
|
||||
|
||||
::DosQModelIndex *dos_qmodelindex_sibling(::DosQModelIndex *vptr, int row, int column)
|
||||
::DosQModelIndex *dos_qmodelindex_sibling(const ::DosQModelIndex *vptr, int row, int column)
|
||||
{
|
||||
auto index = static_cast<QModelIndex *>(vptr);
|
||||
auto index = static_cast<const QModelIndex *>(vptr);
|
||||
auto result = new QModelIndex(index->sibling(row, column));
|
||||
return static_cast<QModelIndex *>(result);
|
||||
}
|
||||
|
||||
void dos_qmodelindex_assign(::DosQModelIndex *l, ::DosQModelIndex *r)
|
||||
void dos_qmodelindex_assign(::DosQModelIndex *l, const ::DosQModelIndex *r)
|
||||
{
|
||||
auto li = static_cast<QModelIndex *>(l);
|
||||
auto ri = static_cast<QModelIndex *>(r);
|
||||
auto ri = static_cast<const QModelIndex *>(r);
|
||||
*li = *ri;
|
||||
}
|
||||
|
||||
|
@ -24,8 +24,6 @@ namespace
|
||||
slotDefinitions.definitions = nullptr;
|
||||
|
||||
// Properties
|
||||
::PropertyDefinition propertyDefinitionArray[1];
|
||||
|
||||
::PropertyDefinitions propertyDefinitions;
|
||||
propertyDefinitions.count = 0;
|
||||
propertyDefinitions.definitions = nullptr;
|
||||
@ -39,6 +37,7 @@ MockQAbstractListModel::MockQAbstractListModel()
|
||||
: m_vptr(dos_qabstractlistmodel_create(this, metaObject(), &onSlotCalled, &onRowCountCalled,
|
||||
&onColumnCountCalled, &onDataCalled, &onSetDataCalled,
|
||||
&onRoleNamesCalled, &onFlagsCalled, &onHeaderDataCalled), &dos_qobject_delete)
|
||||
, m_names({"John", "Mary", "Andy", "Anna"})
|
||||
{
|
||||
|
||||
}
|
||||
@ -60,37 +59,40 @@ void MockQAbstractListModel::onSlotCalled(void *selfVPtr, DosQVariant *dosSlotNa
|
||||
string slotName = toStringFromQVariant(dosSlotNameVariant);
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onRowCountCalled(DosQAbstractListModel *model, const DosQModelIndex *index, int *result)
|
||||
void MockQAbstractListModel::onRowCountCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
|
||||
{
|
||||
auto self = static_cast<MockQAbstractListModel*>(selfVPtr);
|
||||
*result = self->m_names.size();
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onColumnCountCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
|
||||
{
|
||||
auto self = static_cast<MockQAbstractListModel*>(selfVPtr);
|
||||
*result = 0;
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onDataCalled(void *selfVPtr, const DosQModelIndex *index, int role, DosQVariant *result)
|
||||
{
|
||||
if (!dos_qmodelindex_isValid(index))
|
||||
return;
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onSetDataCalled(void *selfVPtr, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onColumnCountCalled(DosQAbstractListModel *model, const DosQModelIndex *index, int *result)
|
||||
void MockQAbstractListModel::onRoleNamesCalled(void *selfVPtr, DosQHashIntQByteArray *result)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onDataCalled(DosQAbstractListModel *model, const DosQModelIndex *index, int role, DosQVariant *result)
|
||||
void MockQAbstractListModel::onFlagsCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onSetDataCalled(DosQAbstractListModel *model, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onRoleNamesCalled(DosQAbstractListModel *model, DosQHashIntQByteArray *result)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onFlagsCalled(DosQAbstractListModel *model, const DosQModelIndex *index, int *result)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MockQAbstractListModel::onHeaderDataCalled(DosQAbstractListModel *model, int section, int orientation, int role, DosQVariant *result)
|
||||
void MockQAbstractListModel::onHeaderDataCalled(void *selfVPtr, int section, int orientation, int role, DosQVariant *result)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <Global.h>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
class MockQAbstractListModel
|
||||
{
|
||||
@ -12,13 +14,14 @@ public:
|
||||
|
||||
private:
|
||||
static void onSlotCalled(void *selfVPtr, DosQVariant *dosSlotNameVariant, int dosSlotArgc, DosQVariant **dosSlotArgv);
|
||||
static void onRowCountCalled(DosQAbstractListModel *model, const DosQModelIndex *index, int *result);
|
||||
static void onColumnCountCalled(DosQAbstractListModel *model, const DosQModelIndex *index, int *result);
|
||||
static void onDataCalled(DosQAbstractListModel *model, const DosQModelIndex *index, int role, DosQVariant *result);
|
||||
static void onSetDataCalled(DosQAbstractListModel *model, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result);
|
||||
static void onRoleNamesCalled(DosQAbstractListModel *model, DosQHashIntQByteArray *result);
|
||||
static void onFlagsCalled(DosQAbstractListModel *model, const DosQModelIndex *index, int *result);
|
||||
static void onHeaderDataCalled(DosQAbstractListModel *model, int section, int orientation, int role, DosQVariant *result);
|
||||
static void onRowCountCalled(void *selfVPtr, const DosQModelIndex *index, int *result);
|
||||
static void onColumnCountCalled(void *selfVPtr, const DosQModelIndex *index, int *result);
|
||||
static void onDataCalled(void *selfVPtr, const DosQModelIndex *index, int role, DosQVariant *result);
|
||||
static void onSetDataCalled(void *selfVPtr, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result);
|
||||
static void onRoleNamesCalled(void *selfVPtr, DosQHashIntQByteArray *result);
|
||||
static void onFlagsCalled(void *selfVPtr, const DosQModelIndex *index, int *result);
|
||||
static void onHeaderDataCalled(void *selfVPtr, int section, int orientation, int role, DosQVariant *result);
|
||||
|
||||
VoidPointer m_vptr;
|
||||
std::vector<std::string> m_names;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user