mirror of
https://gitlab.com/eql/lqml.git
synced 2026-01-25 05:50:47 -08:00
enable JS arrays (lists in Lisp) as return values from 'qjs' calls; revsions
This commit is contained in:
parent
f8636cc3ef
commit
80acb3c92d
4 changed files with 13 additions and 6 deletions
|
|
@ -222,7 +222,7 @@ TO_QT_2 (QPointF, toFloat)
|
|||
TO_QT_2 (QSizeF, toFloat)
|
||||
TO_QT_4 (QRectF, toFloat)
|
||||
|
||||
QVariant toQVariant(cl_object, int = -1);
|
||||
QVariant toQVariant(cl_object, int = 0);
|
||||
QVariant toQVariantMap(cl_object);
|
||||
QVariantList toQVariantList(cl_object);
|
||||
|
||||
|
|
@ -391,12 +391,13 @@ cl_object from_qvariant(const QVariant& var) {
|
|||
case QMetaType::QString:
|
||||
case QMetaType::QUrl: l_obj = from_qstring(var.toString()); break;
|
||||
// special case (can be nested)
|
||||
case QMetaType::QVariantList:
|
||||
case QMetaType::QVariantList: {
|
||||
QVariantList list(var.value<QVariantList>());
|
||||
for (QVariant v : qAsConst(list)) {
|
||||
l_obj = CONS(from_qvariant(v), l_obj);
|
||||
}
|
||||
l_obj = cl_nreverse(l_obj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
#include <QQuickView>
|
||||
#include <QDebug>
|
||||
|
||||
const char LQML::version[] = "23.7.2"; // July 2023
|
||||
const char LQML::version[] = "23.7.3"; // July 2023
|
||||
|
||||
extern "C" void ini_LQML(cl_object);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
#include <QUrl>
|
||||
#include <QVariant>
|
||||
#include <QObject>
|
||||
#include <QVariant>
|
||||
#include <QJSValue>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
@ -289,7 +291,10 @@ cl_object from_qvariant(const QVariant& var) {
|
|||
if ((type == QMetaType::QObjectStar) || // QObject*
|
||||
(type >= QMetaType::User)) { // e.g. QQuickItem*
|
||||
QObject* o = var.value<QObject*>();
|
||||
if (o != nullptr) {
|
||||
if (o == nullptr) {
|
||||
// must be a QJSValue (e.g. return value from 'qjs')
|
||||
l_obj = from_qvariant(var.value<QJSValue>().toVariant());
|
||||
} else {
|
||||
l_obj = from_qobject_pointer(o);
|
||||
}
|
||||
} else {
|
||||
|
|
@ -312,12 +317,13 @@ cl_object from_qvariant(const QVariant& var) {
|
|||
case QMetaType::QString:
|
||||
case QMetaType::QUrl: l_obj = from_qstring(var.toString()); break;
|
||||
// special case (can be nested)
|
||||
case QMetaType::QVariantList:
|
||||
case QMetaType::QVariantList: {
|
||||
QVariantList list(var.value<QVariantList>());
|
||||
for (QVariant v : qAsConst(list)) {
|
||||
l_obj = CONS(from_qvariant(v), l_obj);
|
||||
}
|
||||
l_obj = cl_nreverse(l_obj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ qreal toReal(cl_object);
|
|||
QByteArray toCString(cl_object);
|
||||
QByteArray toQByteArray(cl_object);
|
||||
QString toQString(cl_object);
|
||||
QVariant toQVariant(cl_object, int = -1);
|
||||
QVariant toQVariant(cl_object, int = 0);
|
||||
QVariantList toQVariantList(cl_object);
|
||||
QVariant toQVariantMap(cl_object);
|
||||
QObject* toQObjectPointer(cl_object);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue