mirror of
https://gitlab.com/eql/EQL5.git
synced 2026-01-08 10:12:02 -08:00
add third argument to 'EQL::addObject' to call 'define-qt-wrappers'
This commit is contained in:
parent
73844d81ab
commit
4f75551971
4 changed files with 35 additions and 22 deletions
28
src/eql.cpp
28
src/eql.cpp
|
|
@ -215,15 +215,29 @@ void EQL::exec(QWidget* widget, const QString& lispFile, const QString& slimeHoo
|
|||
if(exec_with_simple_restart) {
|
||||
eval("(eql::exec-with-simple-restart)"); }}
|
||||
|
||||
void EQL::addObject(QObject* object, const QByteArray& varName) {
|
||||
void EQL::addObject(QObject* object, const QByteArray& varName, bool defineWrappers) {
|
||||
cl_object l_symbol = ECL_NIL;
|
||||
int p = varName.indexOf(':');
|
||||
QByteArray pkg = (p == -1) ? "eql-user" : varName.left(p);
|
||||
QByteArray var = varName.mid(varName.lastIndexOf(':') + 1);
|
||||
cl_object l_symbol = cl_intern(2,
|
||||
STRING_COPY(var.toUpper().constData()),
|
||||
cl_find_package(STRING_COPY(pkg.toUpper().constData())));
|
||||
if(p == -1) {
|
||||
// use current package
|
||||
l_symbol = cl_intern(1,
|
||||
STRING_COPY(varName.toUpper().constData())); }
|
||||
else {
|
||||
// use provided package
|
||||
QByteArray pkg = varName.left(p);
|
||||
QByteArray var = varName.mid(varName.lastIndexOf(':') + 1);
|
||||
l_symbol = cl_intern(2,
|
||||
STRING_COPY(var.toUpper().constData()),
|
||||
cl_find_package(STRING_COPY(pkg.toUpper().constData()))); }
|
||||
cl_object l_object = qt_object_from_name(LObjects::vanillaQtSuperClassName(object->metaObject()), object);
|
||||
ecl_defvar(l_symbol, l_object); }
|
||||
// 'defvar'
|
||||
ecl_defvar(l_symbol, l_object);
|
||||
if(defineWrappers) {
|
||||
// 'define-qt-wrappers'
|
||||
STATIC_SYMBOL_PKG (s_define_qt_wrappers, "DEFINE-QT-WRAPPERS", "EQL")
|
||||
cl_funcall(2,
|
||||
s_define_qt_wrappers,
|
||||
l_object); }}
|
||||
|
||||
void EQL::runOnUiThread(void* function_or_closure) {
|
||||
const cl_env_ptr l_env = ecl_process_env();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue