mirror of
https://gitlab.com/eql/lqml.git
synced 2026-02-07 00:03:54 -08:00
add item model example; revisions
This commit is contained in:
parent
7098c1d5dc
commit
ce371b402e
46 changed files with 429 additions and 12 deletions
|
|
@ -19,6 +19,12 @@ extern QVariant ecl_fun(
|
|||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant());
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -54,10 +54,6 @@ int main(int argc, char* argv[]) {
|
|||
exit(0);
|
||||
}
|
||||
|
||||
#ifdef INI_LISP
|
||||
ecl_init_module(NULL, ini_app);
|
||||
#endif
|
||||
|
||||
new QQmlFileSelector(view.engine(), &view);
|
||||
QString qml("qml/main.qml");
|
||||
QUrl url;
|
||||
|
|
@ -84,6 +80,10 @@ int main(int argc, char* argv[]) {
|
|||
LQML::eval("(x:when-it (probe-file \"~/.eclrc\") (load x:it))");
|
||||
}
|
||||
|
||||
#ifdef INI_LISP
|
||||
ecl_init_module(NULL, ini_app);
|
||||
#endif
|
||||
|
||||
bool slime = false;
|
||||
if (arguments.contains("-slime")
|
||||
#if QT_VERSION < 0x060000
|
||||
|
|
|
|||
|
|
@ -165,12 +165,37 @@ QVariant toQVariant(cl_object l_arg, int type) {
|
|||
return var;
|
||||
}
|
||||
|
||||
QString toCamelCase(const QString& name) {
|
||||
// convert Lisp name to Qt name
|
||||
QString qtName(name);
|
||||
int j = 0;
|
||||
for (int i = 0; i < name.length(); i++, j++) {
|
||||
qtName[j] = (name.at(i) == QChar('-'))
|
||||
? name.at(++i).toUpper() : name.at(i);
|
||||
}
|
||||
qtName.truncate(j);
|
||||
return qtName;
|
||||
}
|
||||
|
||||
QVariantList toQVariantList(cl_object l_list) {
|
||||
QVariantList l;
|
||||
if (ECL_LISTP(l_list)) {
|
||||
for (cl_object l_do_list = l_list; l_do_list != ECL_NIL; l_do_list = cl_cdr(l_do_list)) {
|
||||
cl_object l_el = cl_car(l_do_list);
|
||||
l << toQVariant(l_el);
|
||||
// special case: QVariantMap (for JS dictionary in QML)
|
||||
// for e.g. populating a Model in QML
|
||||
if (cl_keywordp(cl_first(l_list))) {
|
||||
QVariantMap map;
|
||||
cl_object l_do_args = l_list;
|
||||
while (l_do_args != ECL_NIL) {
|
||||
map.insert(toCamelCase(toQString(cl_symbol_name(cl_first(l_do_args))).toLower()),
|
||||
toQVariant(cl_second(l_do_args)));
|
||||
l_do_args = cl_cddr(l_do_args);
|
||||
}
|
||||
l << map;
|
||||
} else {
|
||||
for (cl_object l_do_list = l_list; l_do_list != ECL_NIL; l_do_list = cl_cdr(l_do_list)) {
|
||||
cl_object l_el = cl_car(l_do_list);
|
||||
l << toQVariant(l_el);
|
||||
}
|
||||
}
|
||||
}
|
||||
return l;
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@ cl_object from_qstring(const QString&);
|
|||
cl_object from_qvariant(const QVariant&);
|
||||
cl_object from_qobject_pointer(QObject*);
|
||||
|
||||
QString toCamelCase(const QString&);
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -33,7 +33,13 @@ QVariant ecl_fun(const QByteArray& pkgFun,
|
|||
const QVariant& a7,
|
||||
const QVariant& a8,
|
||||
const QVariant& a9,
|
||||
const QVariant& a10) {
|
||||
const QVariant& a10,
|
||||
const QVariant& a11,
|
||||
const QVariant& a12,
|
||||
const QVariant& a13,
|
||||
const QVariant& a14,
|
||||
const QVariant& a15,
|
||||
const QVariant& a16) {
|
||||
void* symbol = lisp_functions.value(pkgFun);
|
||||
if (!symbol) {
|
||||
int p = pkgFun.indexOf(':');
|
||||
|
|
@ -57,7 +63,19 @@ QVariant ecl_fun(const QByteArray& pkgFun,
|
|||
if (!a7.isNull()) { PUSH_ARG(a7);
|
||||
if (!a8.isNull()) { PUSH_ARG(a8);
|
||||
if (!a9.isNull()) { PUSH_ARG(a9);
|
||||
if (!a10.isNull()) { PUSH_ARG(a10); }
|
||||
if (!a10.isNull()) { PUSH_ARG(a10);
|
||||
if (!a11.isNull()) { PUSH_ARG(a11);
|
||||
if (!a12.isNull()) { PUSH_ARG(a12);
|
||||
if (!a13.isNull()) { PUSH_ARG(a13);
|
||||
if (!a14.isNull()) { PUSH_ARG(a14);
|
||||
if (!a15.isNull()) { PUSH_ARG(a15);
|
||||
if (!a16.isNull()) { PUSH_ARG(a16); }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,12 @@ QVariant ecl_fun(
|
|||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant(),
|
||||
const QVariant& = QVariant());
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue