Renamed QAbstractListModel in QAbstractItemModel

This commit is contained in:
Filippo Cucchetto 2017-03-05 18:18:30 +01:00
parent 87ffb698b8
commit 25f396ef46
15 changed files with 155 additions and 155 deletions

View File

@ -19,13 +19,13 @@ set(HEADERS_LIST
include/DOtherSide/DOtherSide.h
include/DOtherSide/DosQDeclarative.h
include/DOtherSide/DosQObjectWrapper.h
include/DOtherSide/DosQAbstractListModelWrapper.h
include/DOtherSide/DosQAbstractItemModelWrapper.h
include/DOtherSide/DosQObject.h
include/DOtherSide/DosQObjectImpl.h
include/DOtherSide/DosIQObjectImpl.h
include/DOtherSide/OnSlotExecutedHandler.h
include/DOtherSide/DosQMetaObject.h
include/DOtherSide/DosQAbstractListModel.h
include/DOtherSide/DosQAbstractItemModel.h
include/DOtherSide/Utils.h
)
@ -37,7 +37,7 @@ set(SRC_LIST
src/DosQObject.cpp
src/DOtherSideTypesCpp.cpp
src/DosQObjectImpl.cpp
src/DosQAbstractListModel.cpp
src/DosQAbstractItemModel.cpp
)
include_directories(include include/Qt)

View File

@ -372,28 +372,28 @@ DOS_API void DOS_CALL dos_qmetaobject_delete(DosQMetaObject *vptr);
/// @}
/// \defgroup QAbstractListModel QAbstractListModel
/// \brief Functions related to the QAbstractListModel class
/// \defgroup QAbstractItemModel QAbstractItemModel
/// \brief Functions related to the QAbstractItemModel class
/// @{
/// \brief Return QMetaObject associated to the QAbstractListModel class
/// \return The QMetaObject of the QAbstractListModel class
/// \brief Return QMetaObject associated to the QAbstractItemModel class
/// \return The QMetaObject of the QAbstractItemModel class
/// \note The returned QMetaObject should be freed using dos_qmetaobject_delete().
DOS_API DosQMetaObject *DOS_CALL dos_qabstractlistmodel_qmetaobject();
DOS_API DosQMetaObject *DOS_CALL dos_qabstractitemmodel_qmetaobject();
/// \brief Create a new QAbstractListModel
/// \param callbackObject The pointer of QAbstractListModel in the binded language
/// \param metaObject The QMetaObject for this QAbstractListModel
/// \brief Create a new QAbstractItemModel
/// \param callbackObject The pointer of QAbstractItemModel in the binded language
/// \param metaObject The QMetaObject for this QAbstractItemModel
/// \param dObjectCallback The callback for handling the properties read/write and slots execution
/// \param rowCountCallback The callback for handling the QAbstractListModel::rowCount() execution
/// \param columnCountCallback The callback for handling the QAbstractListModel::columnCount() execution
/// \param dataCallback The callback for handling the QAbstractListModel::data() execution
/// \param setDataCallback The callback for handling the QAbstractListModel::setData() execution
/// \param roleNamesCallback The callback for handling the QAbstractListModel::roleNames() execution
/// \param flagsCallback The callback for handling the QAbstractListModel::flags() execution
/// \param headerDataCallback The callback for handling the QAbstractListModel::headerData() execution
DOS_API DosQAbstractListModel *DOS_CALL dos_qabstractlistmodel_create(void *callbackObject,
/// \param rowCountCallback The callback for handling the QAbstractItemModel::rowCount() execution
/// \param columnCountCallback The callback for handling the QAbstractItemModel::columnCount() execution
/// \param dataCallback The callback for handling the QAbstractItemModel::data() execution
/// \param setDataCallback The callback for handling the QAbstractItemModel::setData() execution
/// \param roleNamesCallback The callback for handling the QAbstractItemModel::roleNames() execution
/// \param flagsCallback The callback for handling the QAbstractItemModel::flags() execution
/// \param headerDataCallback The callback for handling the QAbstractItemModel::headerData() execution
DOS_API DosQAbstractItemModel *DOS_CALL dos_qabstractitemmodel_create(void *callbackObject,
DosQMetaObject *metaObject,
DObjectCallback dObjectCallback,
RowCountCallback rowCountCallback,
@ -404,46 +404,46 @@ DOS_API DosQAbstractListModel *DOS_CALL dos_qabstractlistmodel_create(void *call
FlagsCallback flagsCallback,
HeaderDataCallback headerDataCallback);
/// \brief Calls the QAbstractListModel::beginInsertRows() function
/// \param vptr The QAbstractListModel
/// \brief Calls the QAbstractItemModel::beginInsertRows() function
/// \param vptr The QAbstractItemModel
/// \param parent The parent QModelIndex
/// \param first The first row in the range
/// \param last The last row in the range
/// \note The \p parent QModelIndex is owned by the caller thus it will not be deleted
DOS_API void DOS_CALL dos_qabstractlistmodel_beginInsertRows(DosQAbstractListModel *vptr, DosQModelIndex *parent, int first, int last);
DOS_API void DOS_CALL dos_qabstractitemmodel_beginInsertRows(DosQAbstractItemModel *vptr, DosQModelIndex *parent, int first, int last);
/// \brief Calls the QAbstractListModel::endInsertRows() function
/// \param vptr The QAbstractListModel
DOS_API void DOS_CALL dos_qabstractlistmodel_endInsertRows(DosQAbstractListModel *vptr);
/// \brief Calls the QAbstractItemModel::endInsertRows() function
/// \param vptr The QAbstractItemModel
DOS_API void DOS_CALL dos_qabstractitemmodel_endInsertRows(DosQAbstractItemModel *vptr);
/// \brief Calls the QAbstractListModel::beginRemovetRows() function
/// \param vptr The QAbstractListModel
/// \brief Calls the QAbstractItemModel::beginRemovetRows() function
/// \param vptr The QAbstractItemModel
/// \param parent The parent QModelIndex
/// \param first The first column in the range
/// \param last The last column in the range
/// \note The \p parent QModelIndex is owned by the caller thus it will not be deleted
DOS_API void DOS_CALL dos_qabstractlistmodel_beginRemoveRows(DosQAbstractListModel *vptr, DosQModelIndex *parent, int first, int last);
DOS_API void DOS_CALL dos_qabstractitemmodel_beginRemoveRows(DosQAbstractItemModel *vptr, DosQModelIndex *parent, int first, int last);
/// \brief Calls the QAbstractListModel::endRemoveRows() function
/// \param vptr The QAbstractListModel
DOS_API void DOS_CALL dos_qabstractlistmodel_endRemoveRows(DosQAbstractListModel *vptr);
/// \brief Calls the QAbstractItemModel::endRemoveRows() function
/// \param vptr The QAbstractItemModel
DOS_API void DOS_CALL dos_qabstractitemmodel_endRemoveRows(DosQAbstractItemModel *vptr);
/// \brief Calls the QAbstractListModel::beginResetModel() function
/// \param vptr The QAbstractListModel
DOS_API void DOS_CALL dos_qabstractlistmodel_beginResetModel(DosQAbstractListModel *vptr);
/// \brief Calls the QAbstractItemModel::beginResetModel() function
/// \param vptr The QAbstractItemModel
DOS_API void DOS_CALL dos_qabstractitemmodel_beginResetModel(DosQAbstractItemModel *vptr);
/// \brief Calls the QAbstractListModel::endResetModel() function
/// \param vptr The QAbstractListModel
DOS_API void DOS_CALL dos_qabstractlistmodel_endResetModel(DosQAbstractListModel *vptr);
/// \brief Calls the QAbstractItemModel::endResetModel() function
/// \param vptr The QAbstractItemModel
DOS_API void DOS_CALL dos_qabstractitemmodel_endResetModel(DosQAbstractItemModel *vptr);
/// \brief Emit the dataChanged signal
/// \param vptr The DosQAbstractListModel pointer
/// \param vptr The DosQAbstractItemModel pointer
/// \param topLeft The topLeft DosQModelIndex
/// \param bottomRight The bottomright DosQModelIndex
/// \param rolesPtr The roles array
/// \param rolesLength The roles array length
/// \note The \p topLeft, \p bottomRight and \p rolesPtr arguments are owned by the caller thus they will not be deleted
DOS_API void DOS_CALL dos_qabstractlistmodel_dataChanged(DosQAbstractListModel *vptr,
DOS_API void DOS_CALL dos_qabstractitemmodel_dataChanged(DosQAbstractItemModel *vptr,
const DosQModelIndex *topLeft,
const DosQModelIndex *bottomRight,
int *rolesPtr, int rolesLength);

View File

@ -31,8 +31,8 @@ typedef void DosQVariant;
/// A pointer to a QModelIndex
typedef void DosQModelIndex;
/// A pointer to a QAbstractListModel
typedef void DosQAbstractListModel;
/// A pointer to a QAbstractItemModel
typedef void DosQAbstractItemModel;
/// A pointer to a QQmlApplicationEngine
typedef void DosQQmlApplicationEngine;
@ -68,40 +68,40 @@ typedef void DosQObject;
/// \note The \p argv array is owned by the library thus it \b shouldn't be deleted
typedef void (DOS_CALL *DObjectCallback)(void *self, DosQVariant *slotName, int argc, DosQVariant **argv);
/// Called when the QAbstractListModel::rowCount method must be executed
/// \param self The pointer of the QAbstractListModel in the binded language
/// Called when the QAbstractItemModel::rowCount method must be executed
/// \param self The pointer of the QAbstractItemModel in the binded language
/// \param index The parent DosQModelIndex
/// \param[out] result The rowCount result. This must be deferenced and filled from the binded language
/// \note The \p parent QModelIndex is owned by the DOtherSide library thus it \b shouldn't be deleted
/// \note The \p result arg is an out parameter so it should 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
/// Called when the QAbstractItemModel::columnCount method must be executed
/// \param self The pointer to the QAbstractItemModel in the binded language
/// \param index The parent DosQModelIndex
/// \param[out] result The rowCount result. This must be deferenced and filled from the binded language
/// \note The \p parent QModelIndex is owned by the DOtherSide library thus it \b shouldn't be deleted
/// \note The \p result arg is an out parameter so it should 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
/// Called when the QAbstractItemModel::data method must be executed
/// \param self The pointer to the QAbstractItemModel in the binded language
/// \param index The DosQModelIndex to which we request the data
/// \param[out] result The DosQVariant result. This must be deferenced and filled from the binded language.
/// \note The \p index QModelIndex is owned by the DOtherSide library thus it \b shouldn't be deleted
/// \note The \p result arg is an out parameter so it should be deleted
typedef void (DOS_CALL *DataCallback)(void *self, const DosQModelIndex *index, int role, DosQVariant *result);
/// Called when the QAbstractListModel::setData method must be executed
/// Called when the QAbstractItemModel::setData method must be executed
typedef void (DOS_CALL *SetDataCallback)(void *self, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result);
/// Called when the QAbstractListModel::roleNames method must be executed
/// Called when the QAbstractItemModel::roleNames method must be executed
typedef void (DOS_CALL *RoleNamesCallback)(void *self, DosQHashIntQByteArray *result);
/// Called when the QAbstractListModel::flags method must be called
/// Called when the QAbstractItemModel::flags method must be called
typedef void (DOS_CALL *FlagsCallback)(void *self, const DosQModelIndex *index, int *result);
/// Called when the QAbstractListModel::headerData method must be called
/// Called when the QAbstractItemModel::headerData method must be called
typedef void (DOS_CALL *HeaderDataCallback)(void *self, int section, int orientation, int role, DosQVariant *result);
/// Callback called from QML for creating a registered type

View File

@ -11,11 +11,11 @@
namespace DOS {
class DosIQAbstractListModelImpl : public DosIQObjectImpl
class DosIQAbstractItemModelImpl : public DosIQObjectImpl
{
public:
/// Destructor
virtual ~DosIQAbstractListModelImpl() = default;
virtual ~DosIQAbstractItemModelImpl() = default;
/// @see QAbstractListModel::rowCount
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0;

View File

@ -1,19 +1,19 @@
#pragma once
// Qt
#include <QAbstractListModel>
#include <QAbstractItemModel>
// DOtherSide
#include "DOtherSide/DOtherSideTypes.h"
#include "DOtherSide/DosIQAbstractListModelImpl.h"
#include "DOtherSide/DosIQAbstractItemModelImpl.h"
#include "DOtherSide/OnSlotExecutedHandler.h"
namespace DOS {
class DosQAbstractListModel : public QAbstractListModel, public DosIQAbstractListModelImpl
class DosQAbstractItemModel : public QAbstractItemModel, public DosIQAbstractItemModelImpl
{
public:
/// Constructor
DosQAbstractListModel(void *modelObject,
DosQAbstractItemModel(void *modelObject,
DosIQMetaObjectPtr metaObject,
OnSlotExecuted onSlotExecuted,
RowCountCallback rowCountCallback,

View File

@ -1,11 +1,11 @@
#pragma once
#include "DOtherSide/DosQAbstractListModel.h"
#include "DOtherSide/DosQAbstractItemModel.h"
#include "DOtherSide/DosQMetaObject.h"
namespace DOS {
template <int, int>
class DosQAbstractListModelWrapper : public QAbstractListModel, public DosIQAbstractListModelImpl
class DosQAbstractListModelWrapper : public QAbstractListModel, public DosIQAbstractItemModelImpl
{
public:
static const QMetaObject staticMetaObject;
@ -83,7 +83,7 @@ public:
private:
void *m_dObject;
DosQAbstractListModel *m_impl;
DosQAbstractItemModel *m_impl;
static int m_id;
static QmlRegisterType m_data;
};
@ -106,24 +106,24 @@ DosQAbstractListModelWrapper<N, M>::DosQAbstractListModelWrapper(QObject *parent
void *impl = nullptr;
m_data.createDObject(m_id, static_cast<QObject *>(this), &m_dObject, &impl);
beginResetModel();
m_impl = dynamic_cast<DosQAbstractListModel *>(static_cast<QObject *>(impl));
QObject::connect(m_impl, &DosQAbstractListModel::rowsAboutToBeInserted, this, &DosQAbstractListModelWrapper::beginInsertRows);
QObject::connect(m_impl, &DosQAbstractListModel::rowsInserted, this, &DosQAbstractListModelWrapper::endInsertRows);
QObject::connect(m_impl, &DosQAbstractListModel::rowsAboutToBeRemoved, this, &DosQAbstractListModelWrapper::beginRemoveRows);
QObject::connect(m_impl, &DosQAbstractListModel::rowsRemoved, this, &DosQAbstractListModelWrapper::endRemoveRows);
QObject::connect(m_impl, &DosQAbstractListModel::rowsAboutToBeMoved, this, &DosQAbstractListModelWrapper::beginMoveRows);
QObject::connect(m_impl, &DosQAbstractListModel::rowsMoved, this, &DosQAbstractListModelWrapper::endMoveRows);
QObject::connect(m_impl, &DosQAbstractListModel::columnsAboutToBeInserted, this, &DosQAbstractListModelWrapper::beginInsertColumns);
QObject::connect(m_impl, &DosQAbstractListModel::columnsInserted, this, &DosQAbstractListModelWrapper::endInsertColumns);
QObject::connect(m_impl, &DosQAbstractListModel::columnsAboutToBeRemoved, this, &DosQAbstractListModelWrapper::beginRemoveColumns);
QObject::connect(m_impl, &DosQAbstractListModel::columnsRemoved, this, &DosQAbstractListModelWrapper::endRemoveColumns);
QObject::connect(m_impl, &DosQAbstractListModel::columnsAboutToBeMoved, this, &DosQAbstractListModelWrapper::beginMoveColumns);
QObject::connect(m_impl, &DosQAbstractListModel::columnsMoved, this, &DosQAbstractListModelWrapper::endMoveColumns);
QObject::connect(m_impl, &DosQAbstractListModel::modelAboutToBeReset, this, &DosQAbstractListModelWrapper::beginResetModel);
QObject::connect(m_impl, &DosQAbstractListModel::modelReset, this, &DosQAbstractListModelWrapper::endResetModel);
QObject::connect(m_impl, &DosQAbstractListModel::dataChanged, this, &DosQAbstractListModelWrapper::dataChanged);
QObject::connect(m_impl, &DosQAbstractListModel::layoutAboutToBeChanged, this, &DosQAbstractListModelWrapper::layoutAboutToBeChanged);
QObject::connect(m_impl, &DosQAbstractListModel::layoutChanged, this, &DosQAbstractListModelWrapper::layoutChanged);
m_impl = dynamic_cast<DosQAbstractItemModel *>(static_cast<QObject *>(impl));
QObject::connect(m_impl, &DosQAbstractItemModel::rowsAboutToBeInserted, this, &DosQAbstractListModelWrapper::beginInsertRows);
QObject::connect(m_impl, &DosQAbstractItemModel::rowsInserted, this, &DosQAbstractListModelWrapper::endInsertRows);
QObject::connect(m_impl, &DosQAbstractItemModel::rowsAboutToBeRemoved, this, &DosQAbstractListModelWrapper::beginRemoveRows);
QObject::connect(m_impl, &DosQAbstractItemModel::rowsRemoved, this, &DosQAbstractListModelWrapper::endRemoveRows);
QObject::connect(m_impl, &DosQAbstractItemModel::rowsAboutToBeMoved, this, &DosQAbstractListModelWrapper::beginMoveRows);
QObject::connect(m_impl, &DosQAbstractItemModel::rowsMoved, this, &DosQAbstractListModelWrapper::endMoveRows);
QObject::connect(m_impl, &DosQAbstractItemModel::columnsAboutToBeInserted, this, &DosQAbstractListModelWrapper::beginInsertColumns);
QObject::connect(m_impl, &DosQAbstractItemModel::columnsInserted, this, &DosQAbstractListModelWrapper::endInsertColumns);
QObject::connect(m_impl, &DosQAbstractItemModel::columnsAboutToBeRemoved, this, &DosQAbstractListModelWrapper::beginRemoveColumns);
QObject::connect(m_impl, &DosQAbstractItemModel::columnsRemoved, this, &DosQAbstractListModelWrapper::endRemoveColumns);
QObject::connect(m_impl, &DosQAbstractItemModel::columnsAboutToBeMoved, this, &DosQAbstractListModelWrapper::beginMoveColumns);
QObject::connect(m_impl, &DosQAbstractItemModel::columnsMoved, this, &DosQAbstractListModelWrapper::endMoveColumns);
QObject::connect(m_impl, &DosQAbstractItemModel::modelAboutToBeReset, this, &DosQAbstractListModelWrapper::beginResetModel);
QObject::connect(m_impl, &DosQAbstractItemModel::modelReset, this, &DosQAbstractListModelWrapper::endResetModel);
QObject::connect(m_impl, &DosQAbstractItemModel::dataChanged, this, &DosQAbstractListModelWrapper::dataChanged);
QObject::connect(m_impl, &DosQAbstractItemModel::layoutAboutToBeChanged, this, &DosQAbstractListModelWrapper::layoutAboutToBeChanged);
QObject::connect(m_impl, &DosQAbstractItemModel::layoutChanged, this, &DosQAbstractListModelWrapper::layoutChanged);
endResetModel();
Q_ASSERT(m_dObject);
Q_ASSERT(m_impl);

View File

@ -50,10 +50,10 @@ public:
};
/// This is the DosQMetaObject for a QAbstractListModel
class DosQAbstractListModelMetaObject : public BaseDosQMetaObject
class DosQAbstractItemModelMetaObject : public BaseDosQMetaObject
{
public:
DosQAbstractListModelMetaObject();
DosQAbstractItemModelMetaObject();
};
/// This the generic version used by subclasses of QObject or QAbstractListModels

View File

@ -18,7 +18,7 @@
#include "DOtherSide/DosQMetaObject.h"
#include "DOtherSide/DosQObject.h"
#include "DOtherSide/DosQObjectImpl.h"
#include "DOtherSide/DosQAbstractListModel.h"
#include "DOtherSide/DosQAbstractItemModel.h"
#include "DOtherSide/DosQDeclarative.h"
char *convert_to_cstring(const QByteArray &array)
@ -588,12 +588,12 @@ void dos_qmetaobject_delete(::DosQMetaObject *vptr)
delete factory;
}
::DosQMetaObject *dos_qabstractlistmodel_qmetaobject()
::DosQMetaObject *dos_qabstractitemmodel_qmetaobject()
{
return new DOS::DosIQMetaObjectHolder(std::make_shared<DOS::DosQAbstractListModelMetaObject>());
return new DOS::DosIQMetaObjectHolder(std::make_shared<DOS::DosQAbstractItemModelMetaObject>());
}
::DosQAbstractListModel *dos_qabstractlistmodel_create(void *dObjectPointer,
::DosQAbstractItemModel *dos_qabstractitemmodel_create(void *dObjectPointer,
::DosQMetaObject *metaObjectPointer,
::DObjectCallback dObjectCallback,
::RowCountCallback rowCountCallback,
@ -605,7 +605,7 @@ void dos_qmetaobject_delete(::DosQMetaObject *vptr)
::HeaderDataCallback headerDataCallback)
{
auto metaObjectHolder = static_cast<DOS::DosIQMetaObjectHolder *>(metaObjectPointer);
auto model = new DOS::DosQAbstractListModel(dObjectPointer,
auto model = new DOS::DosQAbstractItemModel(dObjectPointer,
metaObjectHolder->data(),
DOS::OnSlotExecutedHandler(dObjectPointer, dObjectCallback),
rowCountCallback,
@ -619,58 +619,58 @@ void dos_qmetaobject_delete(::DosQMetaObject *vptr)
return static_cast<QObject *>(model);
}
void dos_qabstractlistmodel_beginInsertRows(::DosQAbstractListModel *vptr, ::DosQModelIndex *parentIndex, int first, int last)
void dos_qabstractitemmodel_beginInsertRows(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last)
{
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DOS::DosIQAbstractListModelImpl *>(object);
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
auto index = static_cast<QModelIndex *>(parentIndex);
model->publicBeginInsertRows(*index, first, last);
}
void dos_qabstractlistmodel_endInsertRows(::DosQAbstractListModel *vptr)
void dos_qabstractitemmodel_endInsertRows(::DosQAbstractItemModel *vptr)
{
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DOS::DosIQAbstractListModelImpl *>(object);
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
model->publicEndInsertRows();
}
void dos_qabstractlistmodel_beginRemoveRows(::DosQAbstractListModel *vptr, ::DosQModelIndex *parentIndex, int first, int last)
void dos_qabstractitemmodel_beginRemoveRows(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last)
{
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DOS::DosIQAbstractListModelImpl *>(object);
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
auto index = static_cast<QModelIndex *>(parentIndex);
model->publicBeginRemoveRows(*index, first, last);
}
void dos_qabstractlistmodel_endRemoveRows(::DosQAbstractListModel *vptr)
void dos_qabstractitemmodel_endRemoveRows(::DosQAbstractItemModel *vptr)
{
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DOS::DosIQAbstractListModelImpl *>(object);
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
model->publicEndRemoveRows();
}
void dos_qabstractlistmodel_beginResetModel(::DosQAbstractListModel *vptr)
void dos_qabstractitemmodel_beginResetModel(::DosQAbstractItemModel *vptr)
{
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DOS::DosIQAbstractListModelImpl *>(object);
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
model->publicBeginResetModel();
}
void dos_qabstractlistmodel_endResetModel(::DosQAbstractListModel *vptr)
void dos_qabstractitemmodel_endResetModel(::DosQAbstractItemModel *vptr)
{
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DOS::DosIQAbstractListModelImpl *>(object);
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
model->publicEndResetModel();
}
void dos_qabstractlistmodel_dataChanged(::DosQAbstractListModel *vptr,
void dos_qabstractitemmodel_dataChanged(::DosQAbstractItemModel *vptr,
const ::DosQModelIndex *topLeftIndex,
const ::DosQModelIndex *bottomRightIndex,
int *rolesArrayPtr,
int rolesArrayLength)
{
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DOS::DosIQAbstractListModelImpl *>(object);
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
auto topLeft = static_cast<const QModelIndex *>(topLeftIndex);
auto bottomRight = static_cast<const QModelIndex *>(bottomRightIndex);
auto roles = QVector<int>::fromStdVector(std::vector<int>(rolesArrayPtr, rolesArrayPtr + rolesArrayLength));

View File

@ -1,18 +1,18 @@
#include "DOtherSide/DosQAbstractListModel.h"
#include "DOtherSide/DosQAbstractItemModel.h"
#include "DOtherSide/DosQObjectImpl.h"
namespace {
DOS::DosQObjectImpl::ParentMetaCall createParentMetaCall(QAbstractListModel *parent)
DOS::DosQObjectImpl::ParentMetaCall createParentMetaCall(QAbstractItemModel *parent)
{
return [parent](QMetaObject::Call callType, int index, void **args)->int {
return parent->QAbstractListModel::qt_metacall(callType, index, args);
return parent->QAbstractItemModel::qt_metacall(callType, index, args);
};
}
}
namespace DOS {
DosQAbstractListModel::DosQAbstractListModel(void *modelObject,
DosQAbstractItemModel::DosQAbstractItemModel(void *modelObject,
DosIQMetaObjectPtr metaObject,
OnSlotExecuted onSlotExecuted,
RowCountCallback rowCountCallback,
@ -33,109 +33,109 @@ DosQAbstractListModel::DosQAbstractListModel(void *modelObject,
, m_headerDataCallback(std::move(headerDataCallback))
{}
bool DosQAbstractListModel::emitSignal(QObject *emitter, const QString &name, const std::vector<QVariant> &argumentsValues)
bool DosQAbstractItemModel::emitSignal(QObject *emitter, const QString &name, const std::vector<QVariant> &argumentsValues)
{
Q_ASSERT(m_impl);
return m_impl->emitSignal(emitter, name, argumentsValues);
}
const QMetaObject *DosQAbstractListModel::metaObject() const
const QMetaObject *DosQAbstractItemModel::metaObject() const
{
Q_ASSERT(m_impl);
return m_impl->metaObject();
}
int DosQAbstractListModel::qt_metacall(QMetaObject::Call call, int index, void **args)
int DosQAbstractItemModel::qt_metacall(QMetaObject::Call call, int index, void **args)
{
Q_ASSERT(m_impl);
return m_impl->qt_metacall(call, index, args);
}
int DosQAbstractListModel::rowCount(const QModelIndex &parent) const
int DosQAbstractItemModel::rowCount(const QModelIndex &parent) const
{
int result;
m_rowCountCallback(m_modelObject, &parent, &result);
return result;
}
int DosQAbstractListModel::columnCount(const QModelIndex &parent) const
int DosQAbstractItemModel::columnCount(const QModelIndex &parent) const
{
int result;
m_columnCountCallback(m_modelObject, &parent, &result);
return result;
}
QVariant DosQAbstractListModel::data(const QModelIndex &index, int role) const
QVariant DosQAbstractItemModel::data(const QModelIndex &index, int role) const
{
QVariant result;
m_dataCallback(m_modelObject, &index, role, &result);
return result;
}
bool DosQAbstractListModel::setData(const QModelIndex &index, const QVariant &value, int role)
bool DosQAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
bool result = false;
m_setDataCallback(m_modelObject, &index, &value, role, &result);
return result;
}
Qt::ItemFlags DosQAbstractListModel::flags(const QModelIndex &index) const
Qt::ItemFlags DosQAbstractItemModel::flags(const QModelIndex &index) const
{
int result;
m_flagsCallback(m_modelObject, &index, &result);
return Qt::ItemFlags(result);
}
QVariant DosQAbstractListModel::headerData(int section, Qt::Orientation orientation, int role) const
QVariant DosQAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const
{
QVariant result;
m_headerDataCallback(m_modelObject, section, orientation, role, &result);
return result;
}
void *DosQAbstractListModel::modelObject()
void *DosQAbstractItemModel::modelObject()
{
return m_modelObject;
}
QHash<int, QByteArray> DosQAbstractListModel::roleNames() const
QHash<int, QByteArray> DosQAbstractItemModel::roleNames() const
{
QHash<int, QByteArray> result;
m_roleNamesCallback(m_modelObject, &result);
return result;
}
void DOS::DosQAbstractListModel::publicBeginInsertRows(const QModelIndex &index, int first, int last)
void DOS::DosQAbstractItemModel::publicBeginInsertRows(const QModelIndex &index, int first, int last)
{
beginInsertRows(index, first, last);
}
void DOS::DosQAbstractListModel::publicEndInsertRows()
void DOS::DosQAbstractItemModel::publicEndInsertRows()
{
endInsertRows();
}
void DOS::DosQAbstractListModel::publicBeginRemoveRows(const QModelIndex &index, int first, int last)
void DOS::DosQAbstractItemModel::publicBeginRemoveRows(const QModelIndex &index, int first, int last)
{
beginRemoveRows(index, first, last);
}
void DOS::DosQAbstractListModel::publicEndRemoveRows()
void DOS::DosQAbstractItemModel::publicEndRemoveRows()
{
endRemoveRows();
}
void DOS::DosQAbstractListModel::publicBeginResetModel()
void DOS::DosQAbstractItemModel::publicBeginResetModel()
{
beginResetModel();
}
void DOS::DosQAbstractListModel::publicEndResetModel()
void DOS::DosQAbstractItemModel::publicEndResetModel()
{
endResetModel();
}
void DOS::DosQAbstractListModel::publicDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
void DOS::DosQAbstractItemModel::publicDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
{
emit dataChanged(topLeft, bottomRight, roles);
}

View File

@ -1,6 +1,6 @@
#include "DOtherSide/DosQDeclarative.h"
#include "DOtherSide/DosQObjectWrapper.h"
#include "DOtherSide/DosQAbstractListModelWrapper.h"
#include "DOtherSide/DosQAbstractItemModelWrapper.h"
namespace DOS {

View File

@ -49,11 +49,11 @@ QMetaObject *createDynamicQObjectMetaObject()
return builder.toMetaObject();
}
QMetaObject *createDynamicQAbstractListModelMetaObject()
QMetaObject *createDynamicQAbstractItemModelMetaObject()
{
QMetaObjectBuilder builder;
builder.setClassName("DosQAbstractListModel");
builder.setSuperClass(&QAbstractListModel::staticMetaObject);
builder.setClassName("DosQAbstractItemModel");
builder.setSuperClass(&QAbstractItemModel::staticMetaObject);
return builder.toMetaObject();
}
@ -94,8 +94,8 @@ DosQObjectMetaObject::DosQObjectMetaObject()
: BaseDosQMetaObject(::createDynamicQObjectMetaObject())
{}
DosQAbstractListModelMetaObject::DosQAbstractListModelMetaObject()
: BaseDosQMetaObject(::createDynamicQAbstractListModelMetaObject())
DosQAbstractItemModelMetaObject::DosQAbstractItemModelMetaObject()
: BaseDosQMetaObject(::createDynamicQAbstractItemModelMetaObject())
{}
DosQMetaObject::DosQMetaObject(DosIQMetaObjectPtr superClassMetaObject,

View File

@ -15,7 +15,7 @@ find_package(Qt5QuickTest REQUIRED)
add_executable(${PROJECT_NAME} Resources.qrc
test_dotherside.cpp
MockQObject.cpp
MockQAbstractListModel.cpp
MockQAbstractItemModel.cpp
Global.h
main.qml
testQObject.qml

View File

@ -1,4 +1,4 @@
#include "MockQAbstractListModel.h"
#include "MockQAbstractItemModel.h"
#include <QMetaType>
using namespace std;
@ -63,7 +63,7 @@ namespace
}
}
MockQAbstractListModel::MockQAbstractListModel()
MockQAbstractItemModel::MockQAbstractItemModel()
: m_vptr(dos_qabstractlistmodel_create(this, metaObject(), &onSlotCalled, &onRowCountCalled,
&onColumnCountCalled, &onDataCalled, &onSetDataCalled,
&onRoleNamesCalled, &onFlagsCalled, &onHeaderDataCalled), &dos_qobject_delete)
@ -72,34 +72,34 @@ MockQAbstractListModel::MockQAbstractListModel()
}
DosQMetaObject *MockQAbstractListModel::metaObject()
DosQMetaObject *MockQAbstractItemModel::metaObject()
{
static VoidPointer result = initializeMetaObject();
return result.get();
}
DosQObject *MockQAbstractListModel::data()
DosQObject *MockQAbstractItemModel::data()
{
return m_vptr.get();
}
string MockQAbstractListModel::objectName() const
string MockQAbstractItemModel::objectName() const
{
CharPointer result (dos_qobject_objectName(m_vptr.get()), &dos_chararray_delete);
return string(result.get());
}
void MockQAbstractListModel::setObjectName(const string &objectName)
void MockQAbstractItemModel::setObjectName(const string &objectName)
{
dos_qobject_setObjectName(m_vptr.get(), objectName.c_str());
}
string MockQAbstractListModel::name() const
string MockQAbstractItemModel::name() const
{
return m_name;
}
void MockQAbstractListModel::setName(const string &name)
void MockQAbstractItemModel::setName(const string &name)
{
if (m_name == name)
return;
@ -107,7 +107,7 @@ void MockQAbstractListModel::setName(const string &name)
nameChanged(name);
}
void MockQAbstractListModel::nameChanged(const string &name)
void MockQAbstractItemModel::nameChanged(const string &name)
{
int argc = 1;
DosQVariant* argv[1];
@ -116,9 +116,9 @@ void MockQAbstractListModel::nameChanged(const string &name)
dos_qvariant_delete(argv[0]);
}
void MockQAbstractListModel::onSlotCalled(void *selfVPtr, DosQVariant *dosSlotNameVariant, int dosSlotArgc, DosQVariant **dosSlotArgv)
void MockQAbstractItemModel::onSlotCalled(void *selfVPtr, DosQVariant *dosSlotNameVariant, int dosSlotArgc, DosQVariant **dosSlotArgv)
{
auto self = static_cast<MockQAbstractListModel*>(selfVPtr);
auto self = static_cast<MockQAbstractItemModel*>(selfVPtr);
string slotName = toStringFromQVariant(dosSlotNameVariant);
if (slotName == "name") {
@ -133,21 +133,21 @@ void MockQAbstractListModel::onSlotCalled(void *selfVPtr, DosQVariant *dosSlotNa
}
}
void MockQAbstractListModel::onRowCountCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
void MockQAbstractItemModel::onRowCountCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
{
auto self = static_cast<MockQAbstractListModel*>(selfVPtr);
auto self = static_cast<MockQAbstractItemModel*>(selfVPtr);
*result = self->m_names.size();
}
void MockQAbstractListModel::onColumnCountCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
void MockQAbstractItemModel::onColumnCountCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
{
auto self = static_cast<MockQAbstractListModel*>(selfVPtr);
auto self = static_cast<MockQAbstractItemModel*>(selfVPtr);
*result = 1;
}
void MockQAbstractListModel::onDataCalled(void *selfVPtr, const DosQModelIndex *index, int role, DosQVariant *result)
void MockQAbstractItemModel::onDataCalled(void *selfVPtr, const DosQModelIndex *index, int role, DosQVariant *result)
{
auto self = static_cast<MockQAbstractListModel*>(selfVPtr);
auto self = static_cast<MockQAbstractItemModel*>(selfVPtr);
if (!dos_qmodelindex_isValid(index))
return;
@ -161,9 +161,9 @@ void MockQAbstractListModel::onDataCalled(void *selfVPtr, const DosQModelIndex *
dos_qvariant_setString(result, self->m_names[row].c_str());
}
void MockQAbstractListModel::onSetDataCalled(void *selfVPtr, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result)
void MockQAbstractItemModel::onSetDataCalled(void *selfVPtr, const DosQModelIndex *index, const DosQVariant *value, int role, bool *result)
{
auto self = static_cast<MockQAbstractListModel*>(selfVPtr);
auto self = static_cast<MockQAbstractItemModel*>(selfVPtr);
*result = false;
if (!dos_qmodelindex_isValid(index))
@ -181,17 +181,17 @@ void MockQAbstractListModel::onSetDataCalled(void *selfVPtr, const DosQModelInde
*result = true;
}
void MockQAbstractListModel::onRoleNamesCalled(void *selfVPtr, DosQHashIntQByteArray *result)
void MockQAbstractItemModel::onRoleNamesCalled(void *selfVPtr, DosQHashIntQByteArray *result)
{
}
void MockQAbstractListModel::onFlagsCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
void MockQAbstractItemModel::onFlagsCalled(void *selfVPtr, const DosQModelIndex *index, int *result)
{
}
void MockQAbstractListModel::onHeaderDataCalled(void *selfVPtr, int section, int orientation, int role, DosQVariant *result)
void MockQAbstractItemModel::onHeaderDataCalled(void *selfVPtr, int section, int orientation, int role, DosQVariant *result)
{
}

View File

@ -4,10 +4,10 @@
#include <vector>
#include <string>
class MockQAbstractListModel
class MockQAbstractItemModel
{
public:
MockQAbstractListModel();
MockQAbstractItemModel();
DosQMetaObject *metaObject();
DosQObject *data();

View File

@ -19,7 +19,7 @@
#include <DOtherSide/DosQObject.h>
#include <DOtherSide/DosQMetaObject.h>
#include <DOtherSide/DosQObject.h>
#include <DOtherSide/DosQAbstractListModel.h>
#include <DOtherSide/DosQAbstractItemModel.h>
#include "MockQObject.h"
#include "MockQAbstractListModel.h"
@ -433,7 +433,7 @@ class TestQAbstractListModel : public QObject
private slots:
void init()
{
testObject.reset(new MockQAbstractListModel());
testObject.reset(new MockQAbstractItemModel());
testObject->setObjectName("testObject");
testObject->setName("foo");
@ -516,7 +516,7 @@ private slots:
private:
QString value;
unique_ptr<MockQAbstractListModel> testObject;
unique_ptr<MockQAbstractItemModel> testObject;
unique_ptr<QQmlApplicationEngine> engine;
};