'Qt_EQL': in 'EQL::addObject' / 'define-qt-wrappers': also add methods of all super classes; make lispifying C names optional;

This commit is contained in:
polos 2021-06-14 20:13:15 +02:00
parent 1758101cf2
commit 9738cdad85
9 changed files with 122 additions and 60 deletions

View file

@ -215,7 +215,7 @@ 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, bool defineWrappers) {
void EQL::addObject(QObject* object, const QByteArray& varName, bool defineWrappers, bool lispifyNames) {
cl_object l_symbol = ECL_NIL;
int p = varName.indexOf(':');
if(p == -1) {
@ -235,9 +235,16 @@ void EQL::addObject(QObject* object, const QByteArray& varName, bool defineWrapp
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); }}
STATIC_SYMBOL_PKG (s_do_not_lispify, "DO-NOT-LISPIFY", "KEYWORD")
if(lispifyNames) {
cl_funcall(2,
s_define_qt_wrappers,
l_object); }
else {
cl_funcall(3,
s_define_qt_wrappers,
l_object,
s_do_not_lispify); }}}
void EQL::runOnUiThread(void* function_or_closure) {
const cl_env_ptr l_env = ecl_process_env();