Given a pass of astyle

This commit is contained in:
Filippo Cucchetto 2016-02-27 15:07:23 +01:00
parent b2f0c64d15
commit 7f1f91a71e
11 changed files with 254 additions and 262 deletions

View File

@ -15,7 +15,7 @@ extern "C"
#endif
// QCoreApplication
DOS_API void dos_qcoreapplication_application_dir_path(char** result);
DOS_API void dos_qcoreapplication_application_dir_path(char **result);
// QGuiApplication
DOS_API void dos_qguiapplication_create();
@ -30,70 +30,70 @@ DOS_API void dos_qapplication_quit();
DOS_API void dos_qapplication_delete();
// QQmlApplicationEngine
DOS_API void dos_qqmlapplicationengine_create(void** vptr);
DOS_API void dos_qqmlapplicationengine_load(void* vptr, const char* filename);
DOS_API void dos_qqmlapplicationengine_load_url(void* vptr, void* url);
DOS_API void dos_qqmlapplicationengine_load_data(void* vptr, const char* data);
DOS_API void dos_qqmlapplicationengine_add_import_path(void* vptr, const char* path);
DOS_API void dos_qqmlapplicationengine_context(void* vptr, void** context);
DOS_API void dos_qqmlapplicationengine_delete(void* vptr);
DOS_API void dos_qqmlapplicationengine_create(void **vptr);
DOS_API void dos_qqmlapplicationengine_load(void *vptr, const char *filename);
DOS_API void dos_qqmlapplicationengine_load_url(void *vptr, void *url);
DOS_API void dos_qqmlapplicationengine_load_data(void *vptr, const char *data);
DOS_API void dos_qqmlapplicationengine_add_import_path(void *vptr, const char *path);
DOS_API void dos_qqmlapplicationengine_context(void *vptr, void **context);
DOS_API void dos_qqmlapplicationengine_delete(void *vptr);
// QQuickView
DOS_API void dos_qquickview_create(void** vptr);
DOS_API void dos_qquickview_show(void* vptr);
DOS_API void dos_qquickview_source(void* vptr, char** result);
DOS_API void dos_qquickview_set_source_url(void* vptr, void* url);
DOS_API void dos_qquickview_set_source(void* vptr, const char* filename);
DOS_API void dos_qquickview_set_resize_mode(void* vptr, int resizeMode);
DOS_API void dos_qquickview_delete(void* vptr);
DOS_API void dos_qquickview_rootContext(void* vptr, void** result);
DOS_API void dos_qquickview_create(void **vptr);
DOS_API void dos_qquickview_show(void *vptr);
DOS_API void dos_qquickview_source(void *vptr, char **result);
DOS_API void dos_qquickview_set_source_url(void *vptr, void *url);
DOS_API void dos_qquickview_set_source(void *vptr, const char *filename);
DOS_API void dos_qquickview_set_resize_mode(void *vptr, int resizeMode);
DOS_API void dos_qquickview_delete(void *vptr);
DOS_API void dos_qquickview_rootContext(void *vptr, void **result);
// QQmlContext
DOS_API void dos_qqmlcontext_baseUrl(void* vptr, char** result);
DOS_API void dos_qqmlcontext_setcontextproperty(void* vptr, const char* name, void* value);
DOS_API void dos_qqmlcontext_baseUrl(void *vptr, char **result);
DOS_API void dos_qqmlcontext_setcontextproperty(void *vptr, const char *name, void *value);
// CharArray
DOS_API void dos_chararray_delete(char* ptr);
DOS_API void dos_chararray_delete(char *ptr);
// QVariant
DOS_API void dos_qvariant_create(void** vptr);
DOS_API void dos_qvariant_create_int(void** vptr, int value);
DOS_API void dos_qvariant_create_bool(void** vptr, bool value);
DOS_API void dos_qvariant_create_string(void** vptr, const char* value);
DOS_API void dos_qvariant_create_qobject(void** vptr, void* value);
DOS_API void dos_qvariant_create_qvariant(void** vptr, void* value);
DOS_API void dos_qvariant_create_float(void** vptr, float value);
DOS_API void dos_qvariant_create_double(void** vptr, double value);
DOS_API void dos_qvariant_toInt(void* vptr, int* result);
DOS_API void dos_qvariant_setInt(void* vptr, int value);
DOS_API void dos_qvariant_toBool(void* vptr, bool* result);
DOS_API void dos_qvariant_setBool(void* vptr, bool value);
DOS_API void dos_qvariant_toFloat(void* vptr, float* result);
DOS_API void dos_qvariant_setFloat(void* vptr, float value);
DOS_API void dos_qvariant_toDouble(void* vptr, double* result);
DOS_API void dos_qvariant_setDouble(void* vptr, double value);
DOS_API void dos_qvariant_toString(void* vptr, char** result);
DOS_API void dos_qvariant_setString(void* vptr, const char* value);
DOS_API void dos_qvariant_toQObject(void* vptr, void** value);
DOS_API void dos_qvariant_setQObject(void* vptr, void* value);
DOS_API void dos_qvariant_isnull(void* vptr, bool* result);
DOS_API void dos_qvariant_delete(void* vptr);
DOS_API void dos_qvariant_assign(void* vptr, void* other);
DOS_API void dos_qvariant_create(void **vptr);
DOS_API void dos_qvariant_create_int(void **vptr, int value);
DOS_API void dos_qvariant_create_bool(void **vptr, bool value);
DOS_API void dos_qvariant_create_string(void **vptr, const char *value);
DOS_API void dos_qvariant_create_qobject(void **vptr, void *value);
DOS_API void dos_qvariant_create_qvariant(void **vptr, void *value);
DOS_API void dos_qvariant_create_float(void **vptr, float value);
DOS_API void dos_qvariant_create_double(void **vptr, double value);
DOS_API void dos_qvariant_toInt(void *vptr, int *result);
DOS_API void dos_qvariant_setInt(void *vptr, int value);
DOS_API void dos_qvariant_toBool(void *vptr, bool *result);
DOS_API void dos_qvariant_setBool(void *vptr, bool value);
DOS_API void dos_qvariant_toFloat(void *vptr, float *result);
DOS_API void dos_qvariant_setFloat(void *vptr, float value);
DOS_API void dos_qvariant_toDouble(void *vptr, double *result);
DOS_API void dos_qvariant_setDouble(void *vptr, double value);
DOS_API void dos_qvariant_toString(void *vptr, char **result);
DOS_API void dos_qvariant_setString(void *vptr, const char *value);
DOS_API void dos_qvariant_toQObject(void *vptr, void **value);
DOS_API void dos_qvariant_setQObject(void *vptr, void *value);
DOS_API void dos_qvariant_isnull(void *vptr, bool *result);
DOS_API void dos_qvariant_delete(void *vptr);
DOS_API void dos_qvariant_assign(void *vptr, void *other);
// QMetaObject
DOS_API void dos_qmetaobject_create(void** vptr,
DOS_API void dos_qmetaobject_create(void **vptr,
void *superClassMetaObject,
const char *className,
const SignalDefinitions *signalDefinitions,
const SlotDefinitions *slotDefinitions,
const PropertyDefinitions *propertyDefinitions);
DOS_API void dos_qmetaobject_delete(void* vptr);
DOS_API void dos_qmetaobject_delete(void *vptr);
// QAbstractListModel
DOS_API void dos_qabstractlistmodel_qmetaobject(void** vptr);
DOS_API void dos_qabstractlistmodel_create(void** vptr,
void* callbackObject,
void* metaObject,
DOS_API void dos_qabstractlistmodel_qmetaobject(void **vptr);
DOS_API void dos_qabstractlistmodel_create(void **vptr,
void *callbackObject,
void *metaObject,
DObjectCallback dObjectCallback,
RowCountCallback rowCountCallback,
ColumnCountCallback columnCountCallback,
@ -102,68 +102,68 @@ DOS_API void dos_qabstractlistmodel_create(void** vptr,
RoleNamesCallback roleNamesCallback,
FlagsCallback flagsCallback,
HeaderDataCallback headerDataCallback);
DOS_API void dos_qabstractlistmodel_beginInsertRows(void* vptr, void* parent, int first, int last);
DOS_API void dos_qabstractlistmodel_endInsertRows(void* vptr);
DOS_API void dos_qabstractlistmodel_beginRemoveRows(void* vptr, void* parent, int first, int last);
DOS_API void dos_qabstractlistmodel_endRemoveRows(void* vptr);
DOS_API void dos_qabstractlistmodel_beginResetModel(void* vptr);
DOS_API void dos_qabstractlistmodel_endResetModel(void* vptr);
DOS_API void dos_qabstractlistmodel_dataChanged(void* vptr, void* topLeft, void* bottomRight, int* rolesPtr, int rolesLength);
DOS_API void dos_qabstractlistmodel_beginInsertRows(void *vptr, void *parent, int first, int last);
DOS_API void dos_qabstractlistmodel_endInsertRows(void *vptr);
DOS_API void dos_qabstractlistmodel_beginRemoveRows(void *vptr, void *parent, int first, int last);
DOS_API void dos_qabstractlistmodel_endRemoveRows(void *vptr);
DOS_API void dos_qabstractlistmodel_beginResetModel(void *vptr);
DOS_API void dos_qabstractlistmodel_endResetModel(void *vptr);
DOS_API void dos_qabstractlistmodel_dataChanged(void *vptr, void *topLeft, void *bottomRight, int *rolesPtr, int rolesLength);
// QObject
DOS_API void dos_qobject_qmetaobject(void** vptr);
DOS_API void dos_qobject_create(void** vptr, void* dObjectPointer,
void* metaObject,
DOS_API void dos_qobject_qmetaobject(void **vptr);
DOS_API void dos_qobject_create(void **vptr, void *dObjectPointer,
void *metaObject,
DObjectCallback dObjectCallback);
DOS_API void dos_qobject_signal_emit(void* vptr,
const char* name,
DOS_API void dos_qobject_signal_emit(void *vptr,
const char *name,
int parametersCount,
void** parameters);
DOS_API void dos_qobject_signal_connect(void* senderVPtr,
const char* signal,
void* receiverVPtr,
const char* method,
void **parameters);
DOS_API void dos_qobject_signal_connect(void *senderVPtr,
const char *signal,
void *receiverVPtr,
const char *method,
int type,
bool* result);
DOS_API void dos_qobject_signal_disconnect(void* senderVPtr,
const char* signal,
void* receiverVPtr,
const char* method,
bool* result);
DOS_API void dos_qobject_objectName(void* vptr, char** result);
DOS_API void dos_qobject_setObjectName(void* vptr, const char* name);
DOS_API void dos_qobject_delete(void* vptr);
bool *result);
DOS_API void dos_qobject_signal_disconnect(void *senderVPtr,
const char *signal,
void *receiverVPtr,
const char *method,
bool *result);
DOS_API void dos_qobject_objectName(void *vptr, char **result);
DOS_API void dos_qobject_setObjectName(void *vptr, const char *name);
DOS_API void dos_qobject_delete(void *vptr);
// QModelIndex
DOS_API void dos_qmodelindex_create(void** vptr);
DOS_API void dos_qmodelindex_create_qmodelindex(void** vptr, void* index);
DOS_API void dos_qmodelindex_delete(void* vptr);
DOS_API void dos_qmodelindex_row(void* vptr, int* row);
DOS_API void dos_qmodelindex_column(void* vptr, int* column);
DOS_API void dos_qmodelindex_isValid(void* vptr, bool* isValid);
DOS_API void dos_qmodelindex_data(void* vptr, int role, void* data);
DOS_API void dos_qmodelindex_parent(void* vptr, void* parent);
DOS_API void dos_qmodelindex_child(void* vptr, int row, int column, void* child);
DOS_API void dos_qmodelindex_sibling(void* vptr, int row, int column, void* sibling);
DOS_API void dos_qmodelindex_assign(void* l, void* r);
DOS_API void dos_qmodelindex_create(void **vptr);
DOS_API void dos_qmodelindex_create_qmodelindex(void **vptr, void *index);
DOS_API void dos_qmodelindex_delete(void *vptr);
DOS_API void dos_qmodelindex_row(void *vptr, int *row);
DOS_API void dos_qmodelindex_column(void *vptr, int *column);
DOS_API void dos_qmodelindex_isValid(void *vptr, bool *isValid);
DOS_API void dos_qmodelindex_data(void *vptr, int role, void *data);
DOS_API void dos_qmodelindex_parent(void *vptr, void *parent);
DOS_API void dos_qmodelindex_child(void *vptr, int row, int column, void *child);
DOS_API void dos_qmodelindex_sibling(void *vptr, int row, int column, void *sibling);
DOS_API void dos_qmodelindex_assign(void *l, void *r);
// QHash<int, QByteArray>
DOS_API void dos_qhash_int_qbytearray_create(QHashIntQByteArrayVoidPtr* vptr);
DOS_API void dos_qhash_int_qbytearray_create(QHashIntQByteArrayVoidPtr *vptr);
DOS_API void dos_qhash_int_qbytearray_delete(QHashIntQByteArrayVoidPtr vptr);
DOS_API void dos_qhash_int_qbytearray_insert(QHashIntQByteArrayVoidPtr vptr, int key, const char* value);
DOS_API void dos_qhash_int_qbytearray_value(QHashIntQByteArrayVoidPtr vptr, int key, char** result);
DOS_API void dos_qhash_int_qbytearray_insert(QHashIntQByteArrayVoidPtr vptr, int key, const char *value);
DOS_API void dos_qhash_int_qbytearray_value(QHashIntQByteArrayVoidPtr vptr, int key, char **result);
// QResource
DOS_API void dos_qresource_register(const char* filename);
DOS_API void dos_qresource_register(const char *filename);
// QUrl
DOS_API void dos_qurl_create(void** vptr, const char* url, int parsingMode);
DOS_API void dos_qurl_delete(void* vptr);
DOS_API void dos_qurl_to_string(void* vptr, char** result);
DOS_API void dos_qurl_create(void **vptr, const char *url, int parsingMode);
DOS_API void dos_qurl_delete(void *vptr);
DOS_API void dos_qurl_to_string(void *vptr, char **result);
// QDeclarative
DOS_API void dos_qdeclarative_qmlregistertype(const QmlRegisterType* qmlRegisterType, int* result);
DOS_API void dos_qdeclarative_qmlregistersingletontype(const QmlRegisterType* qmlRegisterType, int* result);
DOS_API void dos_qdeclarative_qmlregistertype(const QmlRegisterType *qmlRegisterType, int *result);
DOS_API void dos_qdeclarative_qmlregistersingletontype(const QmlRegisterType *qmlRegisterType, int *result);
#ifdef __cplusplus
}

View File

@ -7,29 +7,28 @@ extern "C"
#endif
// Raw data types
typedef void* QVariantVoidPtr;
typedef void* QModelIndexVoidPtr;
typedef void* QAbstractListModelVoidPtr;
typedef void* QQmlApplicationEngineVoidPtr;
typedef void* QQuickViewVoidPtr;
typedef void* QQmlContextVoidPtr;
typedef void* QHashIntQByteArrayVoidPtr;
typedef void *QVariantVoidPtr;
typedef void *QModelIndexVoidPtr;
typedef void *QAbstractListModelVoidPtr;
typedef void *QQmlApplicationEngineVoidPtr;
typedef void *QQuickViewVoidPtr;
typedef void *QQmlContextVoidPtr;
typedef void *QHashIntQByteArrayVoidPtr;
// Raw function types
typedef void(*Function)(void*);
typedef void(*DObjectCallback)(void*, void*, int, void**);
typedef void(*RowCountCallback)(void* model, const void* index, int* result);
typedef void(*ColumnCountCallback)(void* model, const void* index, int* 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, bool* result);
typedef void(*RoleNamesCallback)(void* model, QHashIntQByteArrayVoidPtr result);
typedef void(*FlagsCallback) (void* model, const void* index, int* 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*);
typedef void(*Function)(void *);
typedef void(*DObjectCallback)(void *, void *, int, void **);
typedef void(*RowCountCallback)(void *model, const void *index, int *result);
typedef void(*ColumnCountCallback)(void *model, const void *index, int *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, bool *result);
typedef void(*RoleNamesCallback)(void *model, QHashIntQByteArrayVoidPtr result);
typedef void(*FlagsCallback) (void *model, const void *index, int *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 *);
struct QmlRegisterType
{
struct QmlRegisterType {
int major;
int minor;
const char *uri;
@ -39,46 +38,40 @@ struct QmlRegisterType
DeleteDObject deleteDObject;
};
struct SignalDefinition
{
const char* name;
struct SignalDefinition {
const char *name;
int parametersCount;
int* parametersMetaTypes;
int *parametersMetaTypes;
};
struct SignalDefinitions
{
struct SignalDefinitions {
int count;
SignalDefinition* definitions;
SignalDefinition *definitions;
};
struct SlotDefinition
{
const char* name;
struct SlotDefinition {
const char *name;
int returnMetaType;
int parametersCount;
int* parametersMetaTypes;
int *parametersMetaTypes;
};
struct SlotDefinitions
{
struct SlotDefinitions {
int count;
SlotDefinition* definitions;
SlotDefinition *definitions;
};
struct PropertyDefinition
{
const char* name;
struct PropertyDefinition {
const char *name;
int propertyMetaType;
const char* readSlot;
const char* writeSlot;
const char* notifySignal;
const char *readSlot;
const char *writeSlot;
const char *notifySignal;
};
struct PropertyDefinitions
{
struct PropertyDefinitions {
int count;
PropertyDefinition* definitions;
PropertyDefinition *definitions;
};
#ifdef __cplusplus

View File

@ -10,11 +10,9 @@
#include "DOtherSide/DOtherSideTypes.h"
#include "DOtherSide/Utils.h"
namespace DOS
{
namespace DOS {
struct SignalDefinition
{
struct SignalDefinition {
SignalDefinition(QString n,
std::vector<QMetaType::Type> v)
: name(std::move(n))
@ -34,8 +32,7 @@ struct SignalDefinition
std::vector<QMetaType::Type> parameterTypes;
};
struct SlotDefinition
{
struct SlotDefinition {
SlotDefinition(QString n,
QMetaType::Type t,
std::vector<QMetaType::Type> v)
@ -57,8 +54,7 @@ struct SlotDefinition
std::vector<QMetaType::Type> parameterTypes;
};
struct PropertyDefinition
{
struct PropertyDefinition {
PropertyDefinition(QString n,
QMetaType::Type t,
QString r,
@ -90,9 +86,9 @@ using SignalDefinitions = std::vector<SignalDefinition>;
using SlotDefinitions = std::vector<SlotDefinition>;
using PropertyDefinitions = std::vector<PropertyDefinition>;
SignalDefinitions toVector(const ::SignalDefinitions& cType);
SlotDefinitions toVector(const ::SlotDefinitions& cType);
PropertyDefinitions toVector(const ::PropertyDefinitions& cType);
SignalDefinitions toVector(const ::SignalDefinitions &cType);
SlotDefinitions toVector(const ::SlotDefinitions &cType);
PropertyDefinitions toVector(const ::PropertyDefinitions &cType);
class DosIQMetaObjectHolder;
class DosIQMetaObject;
@ -101,31 +97,39 @@ class DosQMetaObject;
using OnMetaObject = std::function<DosIQMetaObjectHolder*()>;
using OnSlotExecuted = std::function<QVariant(const QString&, const std::vector<QVariant>&)>;
using OnSlotExecuted = std::function<QVariant(const QString &, const std::vector<QVariant>&)>;
class SafeQMetaObjectPtr
{
public:
SafeQMetaObjectPtr(QMetaObject* ptr)
SafeQMetaObjectPtr(QMetaObject *ptr)
: m_d(ptr, ::free)
{}
SafeQMetaObjectPtr(SafeQMetaObjectPtr&&) = delete;
SafeQMetaObjectPtr(const SafeQMetaObjectPtr&) = delete;
SafeQMetaObjectPtr& operator=(const SafeQMetaObjectPtr&) = delete;
SafeQMetaObjectPtr(SafeQMetaObjectPtr &&) = delete;
SafeQMetaObjectPtr(const SafeQMetaObjectPtr &) = delete;
SafeQMetaObjectPtr &operator=(const SafeQMetaObjectPtr &) = delete;
operator bool() const Q_DECL_NOEXCEPT { return m_d != nullptr; }
operator const QMetaObject*() const Q_DECL_NOEXCEPT { return m_d.get(); }
const QMetaObject* operator->() const Q_DECL_NOEXCEPT { return m_d.get(); }
void reset(QMetaObject* other) Q_DECL_NOEXCEPT { m_d.reset(other); }
operator bool() const Q_DECL_NOEXCEPT
{
return m_d != nullptr;
}
operator const QMetaObject *() const Q_DECL_NOEXCEPT
{
return m_d.get();
}
const QMetaObject *operator->() const Q_DECL_NOEXCEPT
{
return m_d.get();
}
void reset(QMetaObject *other) Q_DECL_NOEXCEPT { m_d.reset(other); }
private:
std::unique_ptr<QMetaObject, void(*)(void*)> m_d;
std::unique_ptr<QMetaObject, void(*)(void *)> m_d;
};
struct QmlRegisterType
{
struct QmlRegisterType {
int major;
int minor;
std::string uri;

View File

@ -7,14 +7,13 @@
#include "DOtherSide/DosIQObjectImpl.h"
#include "DOtherSide/OnSlotExecutedHandler.h"
namespace DOS
{
namespace DOS {
class DosQAbstractListModel : public QAbstractListModel, public DosIQObjectImpl
{
public:
/// Constructor
DosQAbstractListModel(void* modelObject,
DosQAbstractListModel(void *modelObject,
DosIQMetaObjectPtr metaObject,
OnSlotExecuted onSlotExecuted,
RowCountCallback rowCountCallback,
@ -35,37 +34,37 @@ public:
int qt_metacall(QMetaObject::Call, int, void **) override;
/// Return the model's row count
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
/// Return the model's column count
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
/// Return the QVariant at the given index
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
/// Sets the QVariant value at the given index and role
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
/// Return the item flags for the given index
Qt::ItemFlags flags(const QModelIndex& index) const override;
Qt::ItemFlags flags(const QModelIndex &index) const override;
/// Return the data for the given role and section in the header with the specified orientation
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
/// Return the dModelPointer
void* modelObject();
void *modelObject();
/// Return the roleNames
QHash<int, QByteArray> roleNames() const override;
/// Expose beginInsertRows
void publicBeginInsertRows(const QModelIndex& index, int first, int last);
void publicBeginInsertRows(const QModelIndex &index, int first, int last);
/// Expose endInsertRows
void publicEndInsertRows();
/// Expose beginRemoveRows
void publicBeginRemoveRows(const QModelIndex& index, int first, int last);
void publicBeginRemoveRows(const QModelIndex &index, int first, int last);
/// Expose endInsertRows
void publicEndRemoveRows();
@ -77,13 +76,13 @@ public:
void publicEndResetModel();
/// Expose dataChanged
void publicDataChanged(const QModelIndex& topLeft,
const QModelIndex& bottomRight,
const QVector<int>& roles = QVector<int>());
void publicDataChanged(const QModelIndex &topLeft,
const QModelIndex &bottomRight,
const QVector<int> &roles = QVector<int>());
private:
std::unique_ptr<DosIQObjectImpl> m_impl;
void* m_modelObject;
void *m_modelObject;
RowCountCallback m_rowCountCallback;
ColumnCountCallback m_columnCountCallback;
DataCallback m_dataCallback;

View File

@ -7,8 +7,7 @@
#include "DOtherSideTypesCpp.h"
#include "DOtherSide/DosIQObjectImpl.h"
namespace DOS
{
namespace DOS {
/// This class model a QObject
class DosQObject : public QObject, public DosIQObjectImpl
@ -19,10 +18,10 @@ public:
OnSlotExecuted onSlotExecuted);
/// Emit a signal
bool emitSignal(const QString& name, const std::vector<QVariant>& arguments) override;
bool emitSignal(const QString &name, const std::vector<QVariant> &arguments) override;
/// Return the metaObject
const QMetaObject* metaObject() const override;
const QMetaObject *metaObject() const override;
/// The qt_metacall
int qt_metacall(QMetaObject::Call, int, void **) override;

View File

@ -10,8 +10,7 @@
#include "DOtherSide/DosQObject.h"
#include "DOtherSide/DOtherSideTypesCpp.h"
namespace DOS
{
namespace DOS {
/// This class implement the interface IDosQObject
/// and it's injected in DosQObject
@ -21,28 +20,28 @@ public:
using ParentMetaCall = std::function<int(QMetaObject::Call, int, void **)>;
/// Constructor
DosQObjectImpl(QObject* parent,
DosQObjectImpl(QObject *parent,
ParentMetaCall parentMetaCall,
std::shared_ptr<const DosIQMetaObject> metaObject,
OnSlotExecuted onSlotExecuted);
/// @see IDosQObject::emitSignal
bool emitSignal(const QString& name, const std::vector<QVariant>& arguments) override;
bool emitSignal(const QString &name, const std::vector<QVariant> &arguments) override;
/// @see IDosQObject::metaObject()
const QMetaObject* metaObject() const override;
const QMetaObject *metaObject() const override;
/// @see IDosQObject::qt_metacall
int qt_metacall(QMetaObject::Call, int, void **) override;
private:
bool executeSlot(const QMetaMethod& method, void** args, int argumentsOffset = 1);
bool executeSlot(int index, void** args);
bool readProperty(int index, void** args);
bool writeProperty(int index, void** args);
bool executeSlot(const QMetaMethod &method, void **args, int argumentsOffset = 1);
bool executeSlot(int index, void **args);
bool readProperty(int index, void **args);
bool writeProperty(int index, void **args);
QObject* m_parent;
QObject *m_parent;
const ParentMetaCall m_parentMetaCall;
const OnSlotExecuted m_onSlotExecuted;
mutable std::shared_ptr<const DosIQMetaObject> m_metaObject;

View File

@ -5,6 +5,6 @@
#include <QtCore/QObject>
namespace DOS {
int dosQmlRegisterType(QmlRegisterType args);
int dosQmlRegisterSingletonType(QmlRegisterType args);
int dosQmlRegisterType(QmlRegisterType args);
int dosQmlRegisterSingletonType(QmlRegisterType args);
}

View File

@ -7,18 +7,17 @@
// DOtherSide
#include "DOtherSide/DOtherSideTypesCpp.h"
namespace DOS
{
namespace DOS {
class OnSlotExecutedHandler
{
public:
OnSlotExecutedHandler(void* dObjectPointer, DObjectCallback dObjectCallback);
OnSlotExecutedHandler(void *dObjectPointer, DObjectCallback dObjectCallback);
QVariant operator()(const QString& name, const std::vector<QVariant>& args);
QVariant operator()(const QString &name, const std::vector<QVariant> &args);
private:
void* m_dObjectPointer;
void *m_dObjectPointer;
DObjectCallback m_dObjectCallback;
};

View File

@ -7,29 +7,33 @@
// Qt
#include <QtGlobal>
namespace DOS
{
namespace DOS {
template <typename T>
struct wrapped_array {
wrapped_array(T* first, T* last) : begin_ {first}, end_ {last} {}
wrapped_array(T* first, std::ptrdiff_t size)
wrapped_array(T *first, T *last) : begin_ {first}, end_ {last} {}
wrapped_array(T *first, std::ptrdiff_t size)
: wrapped_array {first, first + size} {}
T* begin() const Q_DECL_NOEXCEPT { return begin_; }
T* end() const Q_DECL_NOEXCEPT { return end_; }
T *begin() const Q_DECL_NOEXCEPT
{
return begin_;
}
T *end() const Q_DECL_NOEXCEPT
{
return end_;
}
T* begin_;
T* end_;
T *begin_;
T *end_;
};
template <typename T>
wrapped_array<T> wrap_array(T* first, std::ptrdiff_t size) Q_DECL_NOEXCEPT
wrapped_array<T> wrap_array(T *first, std::ptrdiff_t size) Q_DECL_NOEXCEPT
{ return {first, size}; }
template <typename T, typename G>
std::vector<T> toVector(G* first, std::ptrdiff_t size) Q_DECL_NOEXCEPT
{
std::vector<T> toVector(G *first, std::ptrdiff_t size) Q_DECL_NOEXCEPT {
const wrapped_array<G> array = wrap_array(first, size);
std::vector<T> result;
for (auto it = array.begin(); it != array.end(); ++it)
@ -38,8 +42,7 @@ std::vector<T> toVector(G* first, std::ptrdiff_t size) Q_DECL_NOEXCEPT
}
template <typename T, typename K, typename R = typename std::result_of<K(T)>::type>
std::vector<R> toVector(T* first, std::ptrdiff_t size, K f) Q_DECL_NOEXCEPT
{
std::vector<R> toVector(T *first, std::ptrdiff_t size, K f) Q_DECL_NOEXCEPT {
wrapped_array<T> array = wrap_array<T>(first, size);
std::vector<R> result;
for (auto it = array.begin(); it != array.end(); ++it)

View File

@ -342,7 +342,7 @@ void dos_qobject_create(void **vptr, void *dObjectPointer, void *metaObject,
auto dosQObject = new DosQObject(metaObjectHolder->data(),
OnSlotExecutedHandler(dObjectPointer, dObjectCallback));
QQmlEngine::setObjectOwnership(dosQObject, QQmlEngine::CppOwnership);
*vptr = static_cast<QObject*>(dosQObject);
*vptr = static_cast<QObject *>(dosQObject);
}
void dos_qobject_delete(void *vptr)
@ -391,7 +391,7 @@ void dos_qobject_objectName(void *vptr, char **result)
convert_to_cstring(object->objectName(), result);
}
void dos_qobject_setObjectName(void *vptr, const char* name)
void dos_qobject_setObjectName(void *vptr, const char *name)
{
auto object = static_cast<QObject *>(vptr);
object->setObjectName(QString::fromUtf8(name));
@ -403,10 +403,10 @@ void dos_qmodelindex_create(void **vptr)
*vptr = index;
}
void dos_qmodelindex_create_qmodelindex(void **vptr, void* other_vptr)
void dos_qmodelindex_create_qmodelindex(void **vptr, void *other_vptr)
{
auto index = new QModelIndex();
auto other = static_cast<QModelIndex*>(other_vptr);
auto other = static_cast<QModelIndex *>(other_vptr);
*index = *other;
*vptr = index;
}
@ -463,7 +463,7 @@ void dos_qmodelindex_sibling(void *vptr, int row, int column, void *sibling)
*siblingIndex = index->sibling(row, column);
}
void dos_qmodelindex_assign(void* l, void* r)
void dos_qmodelindex_assign(void *l, void *r)
{
auto li = static_cast<QModelIndex *>(l);
auto ri = static_cast<QModelIndex *>(r);
@ -572,27 +572,27 @@ void dos_qabstractlistmodel_create(void **vptr,
flagsCallback,
headerDataCallback);
QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership);
*vptr = static_cast<QObject*>(model);
*vptr = static_cast<QObject *>(model);
}
void dos_qabstractlistmodel_beginInsertRows(void *vptr, QModelIndexVoidPtr parentIndex, int first, int last)
{
auto object = static_cast<QObject*>(vptr);
auto model = dynamic_cast<DosQAbstractListModel*>(object);
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosQAbstractListModel *>(object);
auto index = static_cast<QModelIndex *>(parentIndex);
model->publicBeginInsertRows(*index, first, last);
}
void dos_qabstractlistmodel_endInsertRows(void *vptr)
{
auto object = static_cast<QObject*>(vptr);
auto model = dynamic_cast<DosQAbstractListModel*>(object);
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosQAbstractListModel *>(object);
model->publicEndInsertRows();
}
void dos_qabstractlistmodel_beginRemoveRows(void *vptr, QModelIndexVoidPtr parentIndex, int first, int last)
{
auto object = static_cast<QObject*>(vptr);
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosQAbstractListModel *>(object);
auto index = static_cast<QModelIndex *>(parentIndex);
model->publicBeginRemoveRows(*index, first, last);
@ -600,22 +600,22 @@ void dos_qabstractlistmodel_beginRemoveRows(void *vptr, QModelIndexVoidPtr paren
void dos_qabstractlistmodel_endRemoveRows(void *vptr)
{
auto object = static_cast<QObject*>(vptr);
auto model = dynamic_cast<DosQAbstractListModel*>(object);
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosQAbstractListModel *>(object);
model->publicEndRemoveRows();
}
void dos_qabstractlistmodel_beginResetModel(void *vptr)
{
auto object = static_cast<QObject*>(vptr);
auto model = dynamic_cast<DosQAbstractListModel*>(object);
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosQAbstractListModel *>(object);
model->publicBeginResetModel();
}
void dos_qabstractlistmodel_endResetModel(void *vptr)
{
auto object = static_cast<QObject*>(vptr);
auto model = dynamic_cast<DosQAbstractListModel*>(object);
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosQAbstractListModel *>(object);
model->publicEndResetModel();
}
@ -625,7 +625,7 @@ void dos_qabstractlistmodel_dataChanged(void *vptr,
int *rolesArrayPtr,
int rolesArrayLength)
{
auto object = static_cast<QObject*>(vptr);
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosQAbstractListModel *>(object);
auto topLeft = static_cast<QModelIndex *>(topLeftIndex);
auto bottomRight = static_cast<QModelIndex *>(bottomRightIndex);
@ -633,9 +633,9 @@ void dos_qabstractlistmodel_dataChanged(void *vptr,
model->publicDataChanged(*topLeft, *bottomRight, roles);
}
void dos_qdeclarative_qmlregistertype(const ::QmlRegisterType *cArgs, int* result)
void dos_qdeclarative_qmlregistertype(const ::QmlRegisterType *cArgs, int *result)
{
auto holder = static_cast<DosIQMetaObjectHolder*>(cArgs->staticMetaObject);
auto holder = static_cast<DosIQMetaObjectHolder *>(cArgs->staticMetaObject);
DOS::QmlRegisterType args;
args.major = cArgs->major;
@ -651,7 +651,7 @@ void dos_qdeclarative_qmlregistertype(const ::QmlRegisterType *cArgs, int* resul
void dos_qdeclarative_qmlregistersingletontype(const ::QmlRegisterType *cArgs, int *result)
{
auto holder = static_cast<DosIQMetaObjectHolder*>(cArgs->staticMetaObject);
auto holder = static_cast<DosIQMetaObjectHolder *>(cArgs->staticMetaObject);
DOS::QmlRegisterType args;
args.major = cArgs->major;

View File

@ -16,45 +16,45 @@ public:
DosQObjectWrapper(QObject *parent = nullptr);
~DosQObjectWrapper();
const QMetaObject* metaObject() const override;
const QMetaObject *metaObject() const override;
int qt_metacall(QMetaObject::Call, int, void **) override;
static const QmlRegisterType& qmlRegisterType();
static const QmlRegisterType &qmlRegisterType();
static void setQmlRegisterType(QmlRegisterType data);
static void setStaticMetaObject(const QMetaObject& metaObject);
static void setStaticMetaObject(const QMetaObject &metaObject);
static void setId(int id);
private:
void* m_dObject;
DosQObject* m_impl;
void *m_dObject;
DosQObject *m_impl;
static int m_id;
static QmlRegisterType m_data;
};
template<int N, int M>
const QMetaObject DosQObjectWrapper<N,M>::staticMetaObject = QObject::staticMetaObject;
const QMetaObject DosQObjectWrapper<N, M>::staticMetaObject = QObject::staticMetaObject;
template<int N, int M>
QmlRegisterType DosQObjectWrapper<N,M>::m_data;
QmlRegisterType DosQObjectWrapper<N, M>::m_data;
template<int N, int M>
int DosQObjectWrapper<N,M>::m_id = -1;
int DosQObjectWrapper<N, M>::m_id = -1;
template<int N, int M>
DosQObjectWrapper<N,M>::DosQObjectWrapper(QObject *parent)
DosQObjectWrapper<N, M>::DosQObjectWrapper(QObject *parent)
: QObject(parent)
, m_dObject(nullptr)
, m_impl(nullptr)
{
void* impl = nullptr;
void *impl = nullptr;
m_data.createDObject(m_id, &m_dObject, &impl);
m_impl = static_cast<DosQObject*>(impl);
m_impl = static_cast<DosQObject *>(impl);
Q_ASSERT(m_dObject);
Q_ASSERT(m_impl);
}
template<int N, int M>
DosQObjectWrapper<N,M>::~DosQObjectWrapper()
DosQObjectWrapper<N, M>::~DosQObjectWrapper()
{
m_data.deleteDObject(m_id, m_dObject);
m_dObject = nullptr;
@ -62,39 +62,39 @@ DosQObjectWrapper<N,M>::~DosQObjectWrapper()
}
template<int N, int M>
const QMetaObject *DosQObjectWrapper<N,M>::metaObject() const
const QMetaObject *DosQObjectWrapper<N, M>::metaObject() const
{
Q_ASSERT(m_impl);
return m_impl->metaObject();
}
template<int N, int M>
int DosQObjectWrapper<N,M>::qt_metacall(QMetaObject::Call call, int index, void **args)
int DosQObjectWrapper<N, M>::qt_metacall(QMetaObject::Call call, int index, void **args)
{
Q_ASSERT(m_impl);
return m_impl->qt_metacall(call, index, args);
}
template<int N, int M>
void DosQObjectWrapper<N,M>::setQmlRegisterType(QmlRegisterType data)
void DosQObjectWrapper<N, M>::setQmlRegisterType(QmlRegisterType data)
{
m_data = std::move(data);
}
template<int N, int M>
void DosQObjectWrapper<N,M>::setStaticMetaObject(const QMetaObject &metaObject)
void DosQObjectWrapper<N, M>::setStaticMetaObject(const QMetaObject &metaObject)
{
*(const_cast<QMetaObject*>(&staticMetaObject)) = metaObject;
*(const_cast<QMetaObject *>(&staticMetaObject)) = metaObject;
}
template<int N, int M>
void DosQObjectWrapper<N,M>::setId(int id)
void DosQObjectWrapper<N, M>::setId(int id)
{
m_id = id;
}
template<int N, int M>
const QmlRegisterType& DosQObjectWrapper<N,M>::qmlRegisterType()
const QmlRegisterType &DosQObjectWrapper<N, M>::qmlRegisterType()
{
return m_data;
}
@ -106,7 +106,7 @@ template<int N>
int dosQmlRegisterType(QmlRegisterType args)
{
RegisterTypeQObject<N>::setQmlRegisterType(std::move(args));
const QmlRegisterType& type = RegisterTypeQObject<N>::qmlRegisterType();
const QmlRegisterType &type = RegisterTypeQObject<N>::qmlRegisterType();
RegisterTypeQObject<N>::setStaticMetaObject(*(type.staticMetaObject->metaObject()));
int result = qmlRegisterType<RegisterTypeQObject<N>>(type.uri.c_str(), type.major, type.minor, type.qml.c_str());
RegisterTypeQObject<N>::setId(result);
@ -114,8 +114,7 @@ int dosQmlRegisterType(QmlRegisterType args)
}
template<int N>
struct DosQmlRegisterHelper
{
struct DosQmlRegisterHelper {
static int Register(int i, QmlRegisterType args)
{
if (i > N)
@ -123,13 +122,12 @@ struct DosQmlRegisterHelper
else if (i == N)
return dosQmlRegisterType<N>(std::move(args));
else
return DosQmlRegisterHelper<N-1>::Register(i, std::move(args));
return DosQmlRegisterHelper < N - 1 >::Register(i, std::move(args));
}
};
template<>
struct DosQmlRegisterHelper<0>
{
struct DosQmlRegisterHelper<0> {
static int Register(int i, QmlRegisterType args)
{
return i == 0 ? dosQmlRegisterType<0>(std::move(args)) : -1;
@ -154,11 +152,11 @@ QObject *singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
template<int N>
int dosQmlRegisterSingletonType(QmlRegisterType args)
{
using Func = QObject*(*)(QQmlEngine*, QJSEngine*);
using Func = QObject * (*)(QQmlEngine *, QJSEngine *);
Func f = singletontype_provider<N>;
RegisterSingletonTypeQObject<N>::setQmlRegisterType(std::move(args));
const QmlRegisterType& type = RegisterSingletonTypeQObject<N>::qmlRegisterType();
const QmlRegisterType &type = RegisterSingletonTypeQObject<N>::qmlRegisterType();
RegisterSingletonTypeQObject<N>::setStaticMetaObject(*(type.staticMetaObject->metaObject()));
int result = qmlRegisterSingletonType<RegisterSingletonTypeQObject<N>>(type.uri.c_str(), type.major, type.minor, type.qml.c_str(), f);
RegisterSingletonTypeQObject<N>::setId(result);
@ -166,8 +164,7 @@ int dosQmlRegisterSingletonType(QmlRegisterType args)
}
template<int N>
struct DosQmlRegisterSingletonHelper
{
struct DosQmlRegisterSingletonHelper {
static int Register(int i, QmlRegisterType args)
{
if (i > N)
@ -175,13 +172,12 @@ struct DosQmlRegisterSingletonHelper
else if (i == N)
return dosQmlRegisterSingletonType<N>(std::move(args));
else
return DosQmlRegisterSingletonHelper<N-1>::Register(i, std::move(args));
return DosQmlRegisterSingletonHelper < N - 1 >::Register(i, std::move(args));
}
};
template<>
struct DosQmlRegisterSingletonHelper<0>
{
struct DosQmlRegisterSingletonHelper<0> {
static int Register(int i, QmlRegisterType args)
{
return i == 0 ? dosQmlRegisterSingletonType<0>(std::move(args)) : -1;