[DQml] Refactored and beautified the code
Removed the int parameter from methods that return a string
This commit is contained in:
parent
0b284798bc
commit
c9ffaf4f59
|
@ -8,7 +8,6 @@ add_library(${PROJECT_NAME} STATIC
|
|||
qquickview.d
|
||||
qqmlapplicationengine.d
|
||||
qqmlcontext.d
|
||||
chararray.d
|
||||
qguiapplication.d
|
||||
qapplication.d
|
||||
qmodelindex.d
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
import dothersideinterface;
|
||||
import std.string;
|
||||
|
||||
class CharArray
|
||||
{
|
||||
this()
|
||||
{
|
||||
_size = 0;
|
||||
dos_chararray_create(_data, _size);
|
||||
}
|
||||
|
||||
this(int size)
|
||||
{
|
||||
_size = size;
|
||||
dos_chararray_create(_data, _size);
|
||||
}
|
||||
|
||||
this(char* data, int size)
|
||||
{
|
||||
_data = data;
|
||||
_size = size;
|
||||
}
|
||||
|
||||
~this()
|
||||
{
|
||||
dos_chararray_delete(_data);
|
||||
}
|
||||
|
||||
char* data()
|
||||
{
|
||||
return _data;
|
||||
}
|
||||
|
||||
int size()
|
||||
{
|
||||
return _size;
|
||||
}
|
||||
|
||||
ref char* dataRef()
|
||||
{
|
||||
return _data;
|
||||
}
|
||||
|
||||
ref int sizeRef()
|
||||
{
|
||||
return _size;
|
||||
}
|
||||
|
||||
override string toString()
|
||||
{
|
||||
return fromStringz(_data).dup;
|
||||
}
|
||||
|
||||
private char* _data;
|
||||
private int _size;
|
||||
}
|
|
@ -21,18 +21,16 @@ extern(C)
|
|||
// QQuickView
|
||||
void dos_qquickview_create(ref void*);
|
||||
void dos_qquickview_show(void*);
|
||||
void dos_qquickview_source(void*, ref char *, ref int);
|
||||
void dos_qquickview_source(void*, ref char *);
|
||||
void dos_qquickview_set_source(void*, immutable (char)* filename);
|
||||
void dos_qquickview_rootContext(void*, ref void*);
|
||||
void dos_qquickview_delete(void*);
|
||||
|
||||
// CharArray
|
||||
void dos_chararray_create(ref char*);
|
||||
void dos_chararray_create(ref char*, int size);
|
||||
void dos_chararray_delete(char*);
|
||||
|
||||
// QQmlContext
|
||||
void dos_qqmlcontext_baseUrl(void*, ref char*, ref int);
|
||||
void dos_qqmlcontext_baseUrl(void*, ref char*);
|
||||
void dos_qqmlcontext_setcontextproperty(void*, immutable (char)*, void*);
|
||||
|
||||
// QVariant
|
||||
|
@ -47,7 +45,7 @@ extern(C)
|
|||
void dos_qvariant_setInt(void*, int);
|
||||
void dos_qvariant_toBool(void*, ref bool);
|
||||
void dos_qvariant_setBool(void*, bool);
|
||||
void dos_qvariant_toString(void*, ref char*, ref int);
|
||||
void dos_qvariant_toString(void*, ref char*);
|
||||
void dos_qvariant_setString(void*, immutable(char)*);
|
||||
void dos_qvariant_toFloat(void*, ref float);
|
||||
void dos_qvariant_setFloat(void*, float);
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
import std.stdio;
|
||||
import std.string;
|
||||
import std.traits;
|
||||
import std.conv;
|
||||
import std.functional;
|
||||
import core.memory;
|
||||
import dotherside;
|
||||
|
||||
class MyObject : QObject
|
||||
{
|
||||
this()
|
||||
{
|
||||
foo = registerSlot("foo", &_foo);
|
||||
bar = registerSlot("bar", &_bar);
|
||||
nameChanged = registerSignal!(string)("nameChanged");
|
||||
tor = registerSlot("tor", &_tor);
|
||||
}
|
||||
|
||||
public QSlot!(void delegate(int)) foo;
|
||||
private void _foo(int fooValue)
|
||||
{
|
||||
writeln("D: Called foo slot with argument ", fooValue , "!!");
|
||||
}
|
||||
|
||||
public QSlot!(int delegate(int)) bar;
|
||||
private int _bar(int barValue)
|
||||
{
|
||||
writeln("D: Called bar slot with argument " , barValue, "!!");
|
||||
return 666;
|
||||
}
|
||||
|
||||
public QSlot!(string delegate(string)) tor;
|
||||
private string _tor (string torValue)
|
||||
{
|
||||
writeln("D: Called tor slot with argument ", torValue, "!!");
|
||||
return "2343";
|
||||
}
|
||||
|
||||
public QSignal!(string) nameChanged;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
try
|
||||
{
|
||||
auto app = new QGuiApplication;
|
||||
scope(exit) destroy(app);
|
||||
|
||||
auto view = new QQuickView;
|
||||
scope(exit) destroy(view);
|
||||
|
||||
auto myObject = new MyObject();
|
||||
scope(exit) destroy(myObject);
|
||||
|
||||
auto context = view.rootContext();
|
||||
context.setContextProperty("myObject", new QVariant(myObject));
|
||||
|
||||
view.setSource("Test.qml");
|
||||
view.show();
|
||||
|
||||
myObject.nameChanged("prova");
|
||||
|
||||
app.exec();
|
||||
}
|
||||
catch
|
||||
{}
|
||||
}
|
|
@ -2,7 +2,7 @@ import qobject;
|
|||
import qvariant;
|
||||
|
||||
/*
|
||||
enum Type {
|
||||
enum Type {
|
||||
UnknownType = 0, Bool = 1, Int = 2, UInt = 3, LongLong = 4, ULongLong = 5,
|
||||
Double = 6, Long = 32, Short = 33, Char = 34, ULong = 35, UShort = 36,
|
||||
UChar = 37, Float = 38,
|
||||
|
@ -47,7 +47,7 @@ public QMetaType GetMetaType(T)()
|
|||
|| is (T == QObject)
|
||||
|| is (T == QVariant)
|
||||
|| is (T == void*))
|
||||
{
|
||||
{
|
||||
static if (is (T == bool))
|
||||
return QMetaType.Bool;
|
||||
else if (is (T == int))
|
||||
|
@ -64,4 +64,4 @@ public QMetaType GetMetaType(T)()
|
|||
return QMetaType.VoidStar;
|
||||
else
|
||||
return QMetaType.Unknown;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import dothersideinterface;
|
||||
import qvariant;
|
||||
import chararray;
|
||||
import std.string;
|
||||
|
||||
class QQmlContext
|
||||
{
|
||||
|
@ -16,10 +16,11 @@ class QQmlContext
|
|||
|
||||
public string baseUrl()
|
||||
{
|
||||
auto array = new CharArray();
|
||||
scope(exit) destroy(array);
|
||||
dos_qqmlcontext_baseUrl(data, array.dataRef(), array.sizeRef());
|
||||
return array.toString();
|
||||
char* array;
|
||||
dos_qqmlcontext_baseUrl(data, array);
|
||||
string result = fromStringz(array).dup;
|
||||
dos_chararray_delete(array);
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setContextProperty(string name, QVariant value)
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import dothersideinterface;
|
||||
import qqmlcontext;
|
||||
import chararray;
|
||||
import std.string;
|
||||
|
||||
class QQuickView
|
||||
|
@ -29,10 +28,11 @@ class QQuickView
|
|||
|
||||
string source()
|
||||
{
|
||||
auto array = new CharArray();
|
||||
scope(exit) destroy(array);
|
||||
dos_qquickview_source(data, array.dataRef(), array.sizeRef());
|
||||
return array.toString();
|
||||
char* array;
|
||||
dos_qquickview_source(data, array);
|
||||
string result = fromStringz(array).dup;
|
||||
dos_chararray_delete(array);
|
||||
return result;
|
||||
}
|
||||
|
||||
void setSource(string filename)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import dothersideinterface;
|
||||
import qobject;
|
||||
import std.string;
|
||||
import chararray;
|
||||
|
||||
class QVariant
|
||||
{
|
||||
|
@ -149,10 +148,11 @@ class QVariant
|
|||
|
||||
public override string toString()
|
||||
{
|
||||
auto result = new CharArray();
|
||||
scope(exit) destroy(result);
|
||||
dos_qvariant_toString(this.data, result.dataRef(), result.sizeRef());
|
||||
return result.toString();
|
||||
char* array;
|
||||
dos_qvariant_toString(this.data, array);
|
||||
string result = fromStringz(array).dup;
|
||||
dos_chararray_delete(array);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void* data = null;
|
||||
|
|
|
@ -16,11 +16,10 @@
|
|||
#include "BaseQAbstractListModel.h"
|
||||
#include "BaseQObject.h"
|
||||
|
||||
void convert_to_cstring(const QString& source, char** destination, int* length)
|
||||
void convert_to_cstring(const QString& source, char** destination)
|
||||
{
|
||||
QByteArray array = source.toUtf8();
|
||||
*destination = qstrdup(array.data());
|
||||
*length = qstrlen(array.data());
|
||||
}
|
||||
|
||||
void dos_qguiapplication_create()
|
||||
|
@ -110,11 +109,11 @@ 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)
|
||||
{
|
||||
QQuickView* view = reinterpret_cast<QQuickView*>(vptr);
|
||||
QUrl url = view->source();
|
||||
convert_to_cstring(url.toString(), result, length);
|
||||
convert_to_cstring(url.toString(), result);
|
||||
}
|
||||
|
||||
void dos_qquickview_set_source(void* vptr, const char* filename)
|
||||
|
@ -129,29 +128,16 @@ void dos_qquickview_rootContext(void* vptr, void** context)
|
|||
*context = view->rootContext();
|
||||
}
|
||||
|
||||
void dos_chararray_create(char** ptr)
|
||||
{
|
||||
*ptr = 0;
|
||||
}
|
||||
|
||||
void dos_chararray_create(char** ptr, int size)
|
||||
{
|
||||
if (size > 0)
|
||||
*ptr = new char[size];
|
||||
else
|
||||
*ptr = 0;
|
||||
}
|
||||
|
||||
void dos_chararray_delete(char* ptr)
|
||||
{
|
||||
if (ptr) delete[] ptr;
|
||||
}
|
||||
|
||||
void dos_qqmlcontext_baseUrl(void* vptr, char** result, int* length)
|
||||
void dos_qqmlcontext_baseUrl(void* vptr, char** result)
|
||||
{
|
||||
QQmlContext* context = reinterpret_cast<QQmlContext*>(vptr);
|
||||
QUrl url = context->baseUrl();
|
||||
convert_to_cstring(url.toString(), result, length);
|
||||
convert_to_cstring(url.toString(), result);
|
||||
}
|
||||
|
||||
void dos_qqmlcontext_setcontextproperty(void* vptr, const char* name, void* value)
|
||||
|
@ -258,10 +244,10 @@ void dos_qvariant_toDouble(void* vptr, double* value)
|
|||
*value = variant->toDouble();
|
||||
}
|
||||
|
||||
void dos_qvariant_toString(void* vptr, char** ptr, int* size)
|
||||
void dos_qvariant_toString(void* vptr, char** ptr)
|
||||
{
|
||||
auto variant = reinterpret_cast<QVariant*>(vptr);
|
||||
convert_to_cstring(variant->toString(), ptr, size);
|
||||
convert_to_cstring(variant->toString(), ptr);
|
||||
}
|
||||
|
||||
void dos_qvariant_setInt(void* vptr, int value)
|
||||
|
|
|
@ -39,17 +39,16 @@ 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, int* length);
|
||||
DOS_API void dos_qquickview_source(void* vptr, char** result);
|
||||
DOS_API void dos_qquickview_set_source(void* vptr, const char* filename);
|
||||
DOS_API void dos_qquickview_delete(void* vptr);
|
||||
DOS_API void dos_qquickview_rootContext(void* vptr, void** context);
|
||||
DOS_API void dos_qquickview_rootContext(void* vptr, void** result);
|
||||
|
||||
// QQmlContext
|
||||
DOS_API void dos_qqmlcontext_baseUrl(void* vptr, char** result, int* length);
|
||||
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_create(char** ptr, int size);
|
||||
DOS_API void dos_chararray_delete(char* ptr);
|
||||
|
||||
// QVariant
|
||||
|
@ -62,19 +61,19 @@ 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_create_qabstractlistmodel(void** vptr, void* value);
|
||||
DOS_API void dos_qvariant_toInt(void* vptr, int* 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* 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* 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* 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** ptr, int* size);
|
||||
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_setQObject(void* vptr, void* value);
|
||||
DOS_API void dos_qvariant_setQAbstractListModel(void* vptr, void* value);
|
||||
DOS_API void dos_qvariant_isnull(void* vptr, bool* isNull);
|
||||
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);
|
||||
|
||||
|
@ -82,24 +81,20 @@ DOS_API void dos_qvariant_assign(void* vptr, void* other);
|
|||
DOS_API void dos_qobject_create(void** vptr,
|
||||
void* dObjectPointer,
|
||||
DObjectCallback dObjectCallback);
|
||||
|
||||
DOS_API void dos_qobject_slot_create(void* vptr,
|
||||
const char* name,
|
||||
int parametersCount,
|
||||
int* parametersMetaTypes,
|
||||
int* slotIndex);
|
||||
|
||||
DOS_API void dos_qobject_signal_create(void* vptr,
|
||||
const char* name,
|
||||
int parametersCount,
|
||||
int* parametersMetaTypes,
|
||||
int* signalIndex);
|
||||
|
||||
DOS_API void dos_qobject_signal_emit(void* vptr,
|
||||
const char* name,
|
||||
int parametersCount,
|
||||
void** parameters);
|
||||
|
||||
DOS_API void dos_qobject_property_create(void* vptr,
|
||||
const char* name,
|
||||
int propertyMetaType,
|
||||
|
@ -136,24 +131,13 @@ DOS_API void dos_qabstractlistmodel_create(void** vptr,
|
|||
RoleNamesCallback roleNamesCallback,
|
||||
FlagsCallback flagsCallback,
|
||||
HeaderDataCallback headerDataCallback);
|
||||
DOS_API void dos_qabstractlistmodel_beginInsertRows(void* vptr,
|
||||
QModelIndexVoidPtr parentIndex,
|
||||
int first,
|
||||
int last);
|
||||
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,
|
||||
QModelIndexVoidPtr parentIndex,
|
||||
int first,
|
||||
int last);
|
||||
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,
|
||||
QModelIndexVoidPtr topLeftIndex,
|
||||
QModelIndexVoidPtr bottomRightIndex,
|
||||
int* rolesArrayPtr,
|
||||
int rolesArrayLength);
|
||||
|
||||
DOS_API void dos_qabstractlistmodel_dataChanged(void* vptr, void* topLeft, void* bottomRight, int* rolesPtr, int rolesLength);
|
||||
DOS_API void dos_qabstractlistmodel_delete(void* vptr);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
Loading…
Reference in New Issue