Reformatted the code

This commit is contained in:
Filippo Cucchetto 2015-01-31 17:01:03 +01:00
parent 27db2ef854
commit 8e36e4d957
11 changed files with 95 additions and 96 deletions

View File

@ -34,7 +34,7 @@ void* BaseQAbstractListModel::modelObject()
return m_modelObject;
}
QHash<int,QByteArray> BaseQAbstractListModel::roleNames() const
QHash<int, QByteArray> BaseQAbstractListModel::roleNames() const
{
QHash<int, QByteArray> result;
m_roleNamesCallback(m_modelObject, &result);

View File

@ -6,7 +6,7 @@
/// This class act as a base class for D and Nim QAbstractListModel
class BaseQAbstractListModel : public QAbstractListModel
{
public:
public:
/// Constructor
BaseQAbstractListModel(void* modelObject,
RowCountCallback rowCountCallback,
@ -25,9 +25,7 @@ class BaseQAbstractListModel : public QAbstractListModel
/// Return the roleNames
virtual QHash<int, QByteArray> roleNames() const override;
private:
private:
void* m_modelObject;
RowCountCallback m_rowCountCallback;
DataCallback m_dataCallback;

View File

@ -66,12 +66,12 @@ void dos_qapplication_quit()
qApp->quit();
}
void dos_qqmlapplicationengine_create(void **vptr)
void dos_qqmlapplicationengine_create(void** vptr)
{
*vptr = new QQmlApplicationEngine();
}
void dos_qqmlapplicationengine_load(void *vptr, const char *filename)
void dos_qqmlapplicationengine_load(void* vptr, const char* filename)
{
QQmlApplicationEngine* engine = reinterpret_cast<QQmlApplicationEngine*>(vptr);
engine->load(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QDir::separator() + QString(filename)));
@ -107,7 +107,7 @@ void dos_qquickview_delete(void* vptr)
delete view;
}
void dos_qquickview_source(void *vptr, char** result, int* length)
void dos_qquickview_source(void* vptr, char** result, int* length)
{
QQuickView* view = reinterpret_cast<QQuickView*>(vptr);
QUrl url = view->source();
@ -158,17 +158,17 @@ void dos_qqmlcontext_setcontextproperty(void* vptr, const char* name, void* valu
context->setContextProperty(QString::fromUtf8(name), *variant);
}
void dos_qvariant_create(void **vptr)
void dos_qvariant_create(void** vptr)
{
*vptr = new QVariant();
}
void dos_qvariant_create_int(void **vptr, int value)
void dos_qvariant_create_int(void** vptr, int value)
{
*vptr = new QVariant(value);
}
void dos_qvariant_create_bool(void **vptr, bool value)
void dos_qvariant_create_bool(void** vptr, bool value)
{
*vptr = new QVariant(value);
}
@ -186,7 +186,7 @@ void dos_qvariant_create_qvariant(void** vptr, void* other)
*vptr = newQVariant;
}
void dos_qvariant_create_qobject(void **vptr, void* value)
void dos_qvariant_create_qobject(void** vptr, void* value)
{
auto qobject = reinterpret_cast<QObject*>(value);
auto variant = new QVariant();
@ -218,7 +218,7 @@ void dos_qvariant_isnull(void* vptr, bool* isNull)
*isNull = variant->isNull();
}
void dos_qvariant_delete(void *vptr)
void dos_qvariant_delete(void* vptr)
{
auto variant = reinterpret_cast<QVariant*>(vptr);
delete variant;
@ -314,7 +314,7 @@ void dos_qobject_create(void** vptr, void* dObjectPointer, DObjectCallback dObje
*vptr = dynamicQObject;
}
void dos_qobject_delete(void *vptr)
void dos_qobject_delete(void* vptr)
{
auto dynamicQObject = reinterpret_cast<DynamicQObject*>(vptr);
dynamicQObject->disconnect();
@ -458,7 +458,7 @@ void dos_qhash_int_qbytearray_create(QHashIntQByteArrayVoidPtr* vptr)
void dos_qhash_int_qbytearray_delete(QHashIntQByteArrayVoidPtr vptr)
{
auto qHash = reinterpret_cast<QHash<int,QByteArray>*>(vptr);
auto qHash = reinterpret_cast<QHash<int, QByteArray>*>(vptr);
delete qHash;
}

View File

@ -47,15 +47,15 @@ void dos_chararray_create(char** ptr, int size);
void dos_chararray_delete(char* ptr);
// QVariant
void dos_qvariant_create(void **vptr);
void dos_qvariant_create_int(void **vptr, int value);
void dos_qvariant_create_bool(void **vptr, bool value);
void dos_qvariant_create_string(void **vptr, const char* value);
void dos_qvariant_create_qobject(void **vptr, void* value);
void dos_qvariant_create_qvariant(void **vptr, void* value);
void dos_qvariant_create_float(void **vptr, float value);
void dos_qvariant_create_double(void **vptr, double value);
void dos_qvariant_create_qabstractlistmodel(void **vptr, void* value);
void dos_qvariant_create(void** vptr);
void dos_qvariant_create_int(void** vptr, int value);
void dos_qvariant_create_bool(void** vptr, bool value);
void dos_qvariant_create_string(void** vptr, const char* value);
void dos_qvariant_create_qobject(void** vptr, void* value);
void dos_qvariant_create_qvariant(void** vptr, void* value);
void dos_qvariant_create_float(void** vptr, float value);
void dos_qvariant_create_double(void** vptr, double value);
void dos_qvariant_create_qabstractlistmodel(void** vptr, void* value);
void dos_qvariant_toInt(void* vptr, int* value);
void dos_qvariant_setInt(void* vptr, int value);
void dos_qvariant_toBool(void* vptr, bool* value);
@ -68,8 +68,8 @@ void dos_qvariant_toString(void* vptr, char** ptr, int* size);
void dos_qvariant_setString(void* vptr, const char* value);
void dos_qvariant_setQObject(void* vptr, void* value);
void dos_qvariant_setQAbstractListModel(void* vptr, void* value);
void dos_qvariant_isnull(void *vptr, bool* isNull);
void dos_qvariant_delete(void *vptr);
void dos_qvariant_isnull(void* vptr, bool* isNull);
void dos_qvariant_delete(void* vptr);
void dos_qvariant_assign(void* vptr, void* other);
// QObject
@ -100,7 +100,7 @@ void dos_qobject_property_create(void* vptr,
const char* readSlot,
const char* writeSlot,
const char* notifySignal);
void dos_qobject_delete(void *vptr);
void dos_qobject_delete(void* vptr);
// QModelIndex
void dos_qmodelindex_create(void** vptr);

View File

@ -16,8 +16,8 @@ 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 (*DataCallback) (void* model, QModelIndexVoidPtr index, int role, QVariantVoidPtr result);
typedef void (*RoleNamesCallback) (void* model, QHashIntQByteArrayVoidPtr result);
typedef void (*RowCountCallback)(void* model, QModelIndexVoidPtr index, IntPtr result);
typedef void (*DataCallback)(void* model, QModelIndexVoidPtr index, int role, QVariantVoidPtr result);
typedef void (*RoleNamesCallback)(void* model, QHashIntQByteArrayVoidPtr result);
#endif

View File

@ -56,20 +56,14 @@ DynamicProperty::DynamicProperty(const DynamicProperty& other)
d.reset(new PropertyData(*other.d));
}
DynamicProperty&DynamicProperty::operator=(const DynamicProperty& other)
DynamicProperty& DynamicProperty::operator=(const DynamicProperty& other)
{
if (!other.d && d)
{
d.reset();
}
else if (other.d && !d)
{
d.reset(new PropertyData(*other.d));
}
else if (other.d && d)
{
*d = *other.d;
}
return *this;
}

View File

@ -23,7 +23,9 @@ public:
QString name() const;
QMetaType::Type type() const;
bool isValid() const { return d != nullptr; }
bool isValid() const {
return d != nullptr;
}
bool isReadable() const;
bool isWriteable() const;

View File

@ -22,7 +22,7 @@ bool DynamicQObject::registerSlot(const QString& name,
const QList<QMetaType::Type>& argumentsTypes,
int& slotIndex)
{
DynamicSlot slot (name, returnType, argumentsTypes);
DynamicSlot slot(name, returnType, argumentsTypes);
if (m_slotsBySignature.contains(slot.signature()))
return false;
@ -33,7 +33,7 @@ bool DynamicQObject::registerSlot(const QString& name,
auto afterSignalAdded = [](QMetaObjectBuilder&) {};
auto afterPropertyAdded = afterSignalAdded;
auto afterSlotAdded = [&slot, returnType](QMetaObjectBuilder& metaObjectBuilder) {
auto afterSlotAdded = [&slot, returnType](QMetaObjectBuilder & metaObjectBuilder) {
QMetaMethodBuilder methodBuilder = metaObjectBuilder.addSlot(slot.signature());
methodBuilder.setReturnType(QMetaType::typeName(returnType));
methodBuilder.setAttributes(QMetaMethod::Scriptable);
@ -61,7 +61,7 @@ bool DynamicQObject::registerSignal(const QString& name, const QList<QMetaType::
m_signalsByName.insertMulti(signal.name(), signal);
m_signalsBySignature[signal.signature()] = signal;
auto afterSignalAdded = [&signal](QMetaObjectBuilder& metaObjectBuilder) {
auto afterSignalAdded = [&signal](QMetaObjectBuilder & metaObjectBuilder) {
QMetaMethodBuilder methodBuilder = metaObjectBuilder.addSignal(signal.signature());
methodBuilder.setReturnType(QMetaType::typeName(QMetaType::Void));
methodBuilder.setAccess(QMetaMethod::Public);
@ -101,9 +101,9 @@ bool DynamicQObject::registerProperty(const QString& name,
m_propertiesByName.insert(name.toUtf8(), property);
auto afterSignalAdded = [](QMetaObjectBuilder& metaObjectBuilder) {};
auto afterSlotAdded = [](QMetaObjectBuilder& metaObjectBuilder) {};
auto afterPropertyAdded = [name, type, notifySignal](QMetaObjectBuilder& metaObjectBuilder)
auto afterSignalAdded = [](QMetaObjectBuilder & metaObjectBuilder) {};
auto afterSlotAdded = [](QMetaObjectBuilder & metaObjectBuilder) {};
auto afterPropertyAdded = [name, type, notifySignal](QMetaObjectBuilder & metaObjectBuilder)
{
int signalIndex = -1;
if (notifySignal.isValid())
@ -161,7 +161,7 @@ bool DynamicQObject::emitSignal(const QString& name, const QList<QVariant>& args
QVariantList argsCopy = args;
QVector<void*> arguments(argsCopy.size() + 1 ,0);
QVector<void*> arguments(argsCopy.size() + 1 , 0);
arguments[0] = 0;
for (int i = 0; i < argsCopy.size(); ++i)
arguments[i + 1] = &argsCopy[i];
@ -183,7 +183,7 @@ bool DynamicQObject::executeSlot(const DynamicSlot& slot, void** args)
QList<QVariant> arguments;
for (int i = 0; i < slot.argumentsTypes().count(); ++i)
arguments << QVariant(slot.argumentTypeAt(i), args[i+1]);
arguments << QVariant(slot.argumentTypeAt(i), args[i + 1]);
QVariant result = executeSlot(slot, arguments);
@ -205,7 +205,7 @@ QVariant DynamicQObject::executeSlot(const DynamicSlot& slot, const QList<QVaria
std::vector<void*> argumentsAsVoidPointers(numParametersPlusReturn);
for (int i = 0; i < numParametersPlusReturn; ++i) {
argumentsAsVariants[i] = i == 0 ? QVariant() : args[i-1];
argumentsAsVariants[i] = i == 0 ? QVariant() : args[i - 1];
argumentsAsVoidPointers[i] = &argumentsAsVariants[i];
}
@ -256,7 +256,7 @@ bool DynamicQObject::writeProperty(const DynamicProperty& property, void** args)
if (writeSlot.returnType() != QMetaType::Void)
return false;
QVariant newValue (writeSlot.argumentTypeAt(0), args[0]);
QVariant newValue(writeSlot.argumentTypeAt(0), args[0]);
executeSlot(writeSlot, {newValue});
}
@ -326,7 +326,7 @@ QMetaObject* DynamicQObject::recreateMetaObjectBuilder(QMetaObject* currentMetaO
metaObjectBuilder.setClassName(currentMetaObject->className());
metaObjectBuilder.setSuperClass(currentMetaObject->superClass());
foreach(auto& method, signalsList)
foreach (auto& method, signalsList)
metaObjectBuilder.addMethod(method);
// Call custom code to be executed after signal have been added

View File

@ -12,7 +12,7 @@ class QMetaObjectBuilder;
/// This class implements a QObject to which signals, slots and properties can be added dynamically
class DynamicQObject : public QObject
{
typedef void (*Callback)(void*, void*, int, void **);
typedef void (*Callback)(void*, void*, int, void**);
public:
/// Constructor
@ -22,10 +22,14 @@ public:
virtual ~DynamicQObject();
/// Sets the function to be called from C++ to D or Nimrod
void setDObjectCallback(Callback callback) { m_dObjectCallback = callback; }
void setDObjectCallback(Callback callback) {
m_dObjectCallback = callback;
}
/// Sets the D or Nimrod object that owns this DynamicQObject
void setDObjectPointer(void* dObjectPointer) { m_dObjectPointer = dObjectPointer; }
void setDObjectPointer(void* dObjectPointer) {
m_dObjectPointer = dObjectPointer;
}
/// Register a new signal
bool registerSignal(const QString& name,
@ -49,10 +53,10 @@ public:
bool emitSignal(const QString& name, const QList<QVariant>& argumentsValues);
/// Return the QMetaObject for this DynamicQObject
virtual const QMetaObject *metaObject() const;
virtual const QMetaObject* metaObject() const;
/// The qt metacall. Called from Qt when a signals, slot or property is invoked
int qt_metacall(QMetaObject::Call, int, void **);
int qt_metacall(QMetaObject::Call, int, void**);
private:
bool executeSlot(const DynamicSlot& slot, void** args);

View File

@ -5,7 +5,7 @@
#include <DynamicQObject.h>
#include <QDebug>
int main(int argc, char *argv[])
int main(int argc, char* argv[])
{
QGuiApplication app(argc, argv);

View File

@ -6,6 +6,7 @@ import tables
type
Roles {.pure.} = enum
Name = cint(0)
MyQAbstractListModel = ref object of QAbstractListModel
m_roleNames: Table[int, cstring]
m_names: seq[string]