unix: add "make install" option for exe, lib, modules (refactor file locations)
This commit is contained in:
parent
4b8d9603e3
commit
71bc1d3525
120 changed files with 267 additions and 1928 deletions
|
|
@ -1,7 +1,8 @@
|
|||
QT += widgets
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
LIBS += -L../.. -leql5
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -L/usr/local/lib -leql5
|
||||
DESTDIR = ../
|
||||
TARGET = eql_fun_cpp
|
||||
OBJECTS_DIR = ./tmp/
|
||||
|
|
@ -12,4 +13,5 @@ win32 {
|
|||
}
|
||||
|
||||
HEADERS += lib.h
|
||||
|
||||
SOURCES += lib.cpp
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "lib.h"
|
||||
#include "../../src/eql_fun.h" // for eql_fun()
|
||||
#include <eql5/eql_fun.h> // for eql_fun()
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "qt_plugin.h"
|
||||
#include "eql.h"
|
||||
#include <eql5/eql.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
TEMPLATE = lib
|
||||
CONFIG += dll no_keywords release
|
||||
INCLUDEPATH += ../src
|
||||
LIBS += -L.. -leql5
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -L/usr/local/lib -leql5
|
||||
TARGET = qt_plugin
|
||||
DESTDIR = ./
|
||||
OBJECTS_DIR = ./tmp/
|
||||
|
|
|
|||
77
README-1.txt
77
README-1.txt
|
|
@ -47,8 +47,8 @@ REQUIREMENTS
|
|||
QtWebKit note:
|
||||
If you want QtWebKit included in the official downloads from qt.io archives,
|
||||
you need to choose Qt 5.5, and not later versions!
|
||||
QtWebKit will continue to work with versions > 5.5, but it has to be compiled
|
||||
manually (which is not fun).
|
||||
QtWebKit will continue to work with versions > 5.5, but it has to be
|
||||
compiled manually (which is not fun).
|
||||
QtWebKit has a better, more native integration with Qt than QtWebEngine, see
|
||||
for example QWebElement, which doesn't exist in QtWebEngine.
|
||||
|
||||
|
|
@ -57,21 +57,25 @@ REQUIREMENTS
|
|||
PREPARE
|
||||
=======
|
||||
|
||||
Install the ECL sources, and build it from the sources (ECL needs to be built with the
|
||||
same compiler you'll use to compile EQL5).
|
||||
Install the ECL sources, and build it from the sources (ECL needs to be built
|
||||
with the same compiler you'll use to compile EQL5).
|
||||
|
||||
Just use the standard configuration of ECL (both threads & unicode enabled).
|
||||
|
||||
Qt4/Qt5 note:
|
||||
|
||||
You can have both old EQL (Qt4) and EQL5 (Qt5) installed in parallel (exe and lib
|
||||
names differ).
|
||||
You can have both old EQL (Qt4) and EQL5 (Qt5) installed in parallel (exe and
|
||||
lib names differ).
|
||||
|
||||
If you have both Qt4 and Qt5 installed, you can use the following environment variable
|
||||
to switch between the both (Unix):
|
||||
If you have both Qt4 and Qt5 installed, you can use the following environment
|
||||
variable to switch between the both (Unix):
|
||||
|
||||
export QT_SELECT=5
|
||||
|
||||
Please note that you need to build EQL5 in a path where you will keep it (you
|
||||
can't move around the whole file tree later, since the build path needs to be
|
||||
hard-coded in the executable).
|
||||
|
||||
|
||||
|
||||
BUILD
|
||||
|
|
@ -80,7 +84,8 @@ BUILD
|
|||
(N.B. for rebuilding, please see README-REBUILD.txt)
|
||||
|
||||
[Windows]
|
||||
You first need to adapt the file 'src/windows.pri' (include & library paths).
|
||||
You first need to adapt the file 'src/windows.pri' (include & library
|
||||
paths).
|
||||
Since EQL requires the C compiler anyway (not the bytecode compiler), you
|
||||
should put this line in your '~/.eclrc':
|
||||
(require :cmp)
|
||||
|
|
@ -89,12 +94,13 @@ BUILD
|
|||
Substitute make with nmake.
|
||||
|
||||
[MinGW]
|
||||
If 'make' is stuck in an infinite loop of creating the 'Makefile', just remove
|
||||
the line 'include(windows.pri)' from your '*.pro' file, setting eventually
|
||||
needed paths in your '~/.profile' instead.
|
||||
If 'make' is stuck in an infinite loop of creating the 'Makefile', just
|
||||
remove the line 'include(windows.pri)' from your '*.pro' file, setting
|
||||
eventually needed paths in your '~/.profile' instead.
|
||||
|
||||
[OSX]
|
||||
To force creation of a Makefile (instead of an Xcode project), use this flag:
|
||||
To force creation of a Makefile (instead of an Xcode project), use this
|
||||
flag:
|
||||
qmake -spec macx-g++
|
||||
|
||||
1) In src/ run:
|
||||
|
|
@ -105,15 +111,25 @@ BUILD
|
|||
|
||||
qmake eql_lib.pro
|
||||
make
|
||||
sudo make install (unix only)
|
||||
|
||||
qmake eql_exe.pro
|
||||
make
|
||||
sudo make install (unix only)
|
||||
|
||||
This will build both the EQL executable and shared library.
|
||||
|
||||
If you ran "make install", you'll find the installed files here:
|
||||
|
||||
/usr/local/bin/
|
||||
/usr/local/lib/
|
||||
/usr/local/include/eql5/
|
||||
|
||||
3) cd ..
|
||||
|
||||
[Linux]
|
||||
N.B: skip this if you did "sudo make install"
|
||||
|
||||
You need to create links to EQL, something like (note the "5"):
|
||||
cd /usr/lib
|
||||
sudo ln -s ~/eql5/libeql5.so.1 libeql5.so.1
|
||||
|
|
@ -121,12 +137,14 @@ BUILD
|
|||
sudo ln -s ~/eql5/eql5 eql5
|
||||
|
||||
[OSX]
|
||||
N.B: skip this if you did "sudo make install"
|
||||
|
||||
You need to create links to EQL, something like (note the "5"):
|
||||
cd /usr/local/lib
|
||||
sudo ln -s ~/eql5/libeql5.1.dylib libeql5.1.dylib
|
||||
cd /usr/local/bin
|
||||
sudo ln -s ~/eql5/eql5.app/Contents/MacOS/eql5 eql5
|
||||
|
||||
|
||||
[Windows]
|
||||
Add your EQL directory to the Path environment variable, see:
|
||||
<Control Panel:System:Advanced:Environment Variables>
|
||||
|
|
@ -136,11 +154,6 @@ BUILD
|
|||
RUN
|
||||
===
|
||||
|
||||
PLEASE NOTE:
|
||||
You will often need to "reset" (command) your console/shell after EQL finished
|
||||
working, especially during development time or other exits than "(eql:qquit)".
|
||||
|
||||
|
||||
You can run a simple interactive REPL UI doing:
|
||||
eql5 -qgui
|
||||
|
||||
|
|
@ -150,8 +163,8 @@ To run a Lisp file without top-level, do:
|
|||
(If you don't see the application window, it might be in the background.
|
||||
Use your taskbar to show it.)
|
||||
|
||||
If you start the EQL executable without arguments, it will start the usual ECL top-level
|
||||
(without processing Qt events).
|
||||
If you start the EQL executable without arguments, it will start the usual ECL
|
||||
top-level (without processing Qt events).
|
||||
|
||||
To _not_ load ~/.eclrc on startup, do:
|
||||
eql5 -norc
|
||||
|
|
@ -160,12 +173,19 @@ To quit the tool, do:
|
|||
(eql:qquit) or
|
||||
(eql:qq)
|
||||
|
||||
In order to run (sort of) a top-level processing Qt events, do (requires ECL threads):
|
||||
In order to run (sort of) a top-level processing Qt events, do:
|
||||
eql5 -qtpl
|
||||
|
||||
Note: If you want to use "ecl-readline" together with "-qtpl", just compile
|
||||
"eql5/src/lisp/ecl-readline.lisp" (which depends on the "readline" C library).
|
||||
It will then be loaded automatically on startup.
|
||||
"lib/ecl-readline.lisp" (which depends on the "readline" C library).
|
||||
It will then be loaded automatically on startup:
|
||||
|
||||
cd ~/eql5/lib
|
||||
ecl -compile ecl-readline.lisp
|
||||
|
||||
N.B: Using readline, you will often need to "reset" (command) your
|
||||
console/shell after EQL finished working, especially during
|
||||
development time or other exits than "(eql:qquit)".
|
||||
|
||||
|
||||
|
||||
|
|
@ -176,8 +196,10 @@ To build an EQL module (corresponding to a Qt module), do the following in src/:
|
|||
|
||||
qmake module_<name>.pro (e.g. qmake module_network.pro)
|
||||
make
|
||||
sudo make install (unix only)
|
||||
|
||||
[Linux,OSX]
|
||||
(N.B: skip this if you did "sudo make install")
|
||||
You need to create links to the modules, see EQL library above.
|
||||
|
||||
In Lisp, use function QREQUIRE to load a module:
|
||||
|
|
@ -194,9 +216,10 @@ You might want to put this in your ~/.eclrc file:
|
|||
(setf eql:*qtpl* t ; same as -qtpl
|
||||
eql:*break-on-errors* t)
|
||||
|
||||
It is HIGHLY RECOMMENDED to integrate the wrapper functions, see README-3-OPTIONAL.
|
||||
This will make all Qt functions real Lisp functions, which also means symbol tab-
|
||||
completion, both in Emacs/Slime and with ecl-readline.
|
||||
It is HIGHLY RECOMMENDED to integrate the wrapper functions, see
|
||||
README-3-OPTIONAL.
|
||||
This will make all Qt functions real Lisp functions, which also means symbol
|
||||
tab-completion, both in Emacs/Slime and with ecl-readline.
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
REBUILD STEPS (on every upgrade of: ECL, Qt, EQL)
|
||||
=============
|
||||
|
||||
1) remove directory src/tmp/
|
||||
remove file src/lisp/ecl-readline.fas*
|
||||
0) cd src
|
||||
|
||||
1) remove directory tmp/
|
||||
|
||||
2) ecl -shell make-eql-lib.lisp
|
||||
|
||||
3) qmake, make in this order: (MSVC: nmake)
|
||||
3) qmake, make, sudo make install (Unix only) in this order: (MSVC: nmake)
|
||||
|
||||
eql_lib.pro
|
||||
eql_exe.pro
|
||||
|
|
@ -14,10 +15,6 @@ REBUILD STEPS (on every upgrade of: ECL, Qt, EQL)
|
|||
module_network.pro
|
||||
module_...
|
||||
|
||||
for readline (Unix):
|
||||
|
||||
ecl -compile src/lisp/ecl-readline.lisp
|
||||
|
||||
Optionally (integrate wrapper functions):
|
||||
|
||||
4) eql5 make-eql-lib-wrappers.lisp
|
||||
|
|
@ -27,6 +24,7 @@ Optionally (integrate wrapper functions):
|
|||
touch tmp/eql.o (or delete "tmp/eql.o*")
|
||||
qmake eql_lib.pro
|
||||
make
|
||||
sudo make install (Unix only)
|
||||
|
||||
|
||||
IMPORTANT NOTES
|
||||
|
|
@ -50,4 +48,4 @@ ECL/C++ integration).
|
|||
TIP
|
||||
===
|
||||
|
||||
If you're on Linux, see "src/rebuild".
|
||||
If you're on Linux, see "src/rebuild" (needs password for make install).
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ is resolved automatically (<code>RESTART-QT-EVENTS</code> would block the REPL i
|
|||
<p>In order to automatically switch the REPL to a given package after loading a file, add this line:</p>
|
||||
<pre> (qlater (lambda () (in-package :my-package)))</pre>
|
||||
<br>
|
||||
<p>If you use ECL readline (see <code>ecl-readline.lisp</code> in sources):<br>After entering <code>:qq</code> (quitting the top-level), the console/shell should always be reset (but you won't probably see the command while typing it; an <code>alias</code> might help):</p>
|
||||
<p>If you use ECL readline (see <code>lib/ecl-readline.lisp</code>, to be compiled manually the first time):<br>After entering <code>:qq</code> (quitting the top-level), the console/shell should always be reset (but you won't probably see the command while typing it; an <code>alias</code> might help):</p>
|
||||
<pre> $ <span class="input">reset</span></pre>
|
||||
<br>
|
||||
<br>
|
||||
|
|
|
|||
|
|
@ -11,10 +11,11 @@
|
|||
<p>Please follow the <code>my_app/README.txt</code> (which assumes that your lisp files are in <code>my_app/lisp/</code>)</p>
|
||||
<p>The dependencies are:</p>
|
||||
<ul>
|
||||
<li><code>eql5</code>, <code>ecl</code>, <code>QtCore</code>, <code>QtGui</code>, <code>QtWidgets</code>, <code>QtPrintSupport</code> shared libraries
|
||||
<li><code>eql5</code>, <code>ecl</code>, <code>Qt5Core</code>, <code>Qt5Gui</code>, <code>Qt5Widgets</code>, <code>Qt5PrintSupport</code> shared libraries (plus used modules, both Qt5 and EQL5)
|
||||
<li>your <code>*.ui</code> files (if any)
|
||||
<li>your <code>*.qm</code> translation files (if any)
|
||||
</ul>
|
||||
<p><b>[Unix]</b><br>Deploy the installed libraries from <code>/usr/local/lib/</code>, because they have already been stripped, and are therefore smaller.</p>
|
||||
<p>A detailed description of deploying Qt applications can be found in Qt Assistant.</p>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@
|
|||
cl_funcall(1, (cl_object)closure); // ECL function call
|
||||
}
|
||||
</pre>
|
||||
<p>After introducing a macro <code>qrun*</code>, and wrapping all EQL functions in it (see <code>"slime/thread-safe.lisp"</code>), we are done!</p>
|
||||
<p>After introducing a macro <code>qrun*</code>, and wrapping all EQL functions in it (see <code>"lib/thread-safe.lisp"</code>), we are done!</p>
|
||||
<p>(Please note that the above code is a stripped down version, see sources for the actual implementation.)</p>
|
||||
<br>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
<br>
|
||||
<h3>Notes</h3>
|
||||
<p>If you notice slow execution of a function called from the REPL, try to wrap it in <code>qrun</code>/<code>qrun*</code>, as this will reduce eventual, multiple thread switches (for each EQL function call) to a single one.</p>
|
||||
<p>All EQL functions are wrapped in <code>qrun*</code> (see <code>eql5/slime/thread-safe.lisp</code>), so it's safe to call them either directly from the REPL or using 'eval region' (or from any other ECL thread).</p>
|
||||
<p>All EQL functions are wrapped in <code>qrun*</code> (see <code>lib/thread-safe.lisp</code>), so it's safe to call them either directly from the REPL or using 'eval region' (or from any other ECL thread).</p>
|
||||
<p>If the Slime REPL hangs, you can simply try to connect again (losing the old connection): no need to restart Lisp.</p>
|
||||
<p>This Slime mode is both convenient and simple to use, but conses a little more for every EQL function call.
|
||||
<br>If you absolutely want direct EQL function calls, please see the less convenient <a href="Slime-REPL-hook.htm">Slime REPL Hook</a> mode.</p>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
Please note that you will need to build a small C++ plugin for most of the
|
||||
examples (see "lib/"); this is just for providing the "import EQL5" in QML.
|
||||
|
||||
If you are new to QML/EQL5, you probably want to go through the examples
|
||||
(and READMEs) in this order:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,60 +0,0 @@
|
|||
#ifndef LIB_H
|
||||
#define LIB_H
|
||||
|
||||
#include <QtQml>
|
||||
#include <QQuickPaintedItem>
|
||||
#include <eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define LIB_EXPORT
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
extern "C" { LIB_EXPORT QObject* ini(); }
|
||||
|
||||
class Lisp : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Q_INVOKABLE QVariant call(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
|
||||
Q_INVOKABLE QVariant apply(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
};
|
||||
|
||||
class EQLPaintedItem : public QQuickPaintedItem {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EQLPaintedItem(QQuickItem* parent = 0) : QQuickPaintedItem(parent) {}
|
||||
|
||||
void paint(QPainter* painter) {
|
||||
eql_fun("qml:paint",
|
||||
Q_ARG(QQuickPaintedItem*, this),
|
||||
Q_ARG(QPainter*, painter)); }
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
QT += qml quick
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = qml_lisp
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../../../../../src/windows.pri)
|
||||
}
|
||||
|
||||
HEADERS += qml_lisp.h
|
||||
SOURCES += qml_lisp.cpp
|
||||
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
(defun show-properties-dialog (&optional item)
|
||||
"Lists all instance properties of a QML item (either a QQuickItem or an 'objectName'). If no item is passed, QML:*CALLER* will be used."
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (%sym :show :properties)
|
||||
(or (if (stringp item)
|
||||
(qml:find-quick-item item)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
;;; * allows to get/set any QML property from Lisp (needs 'objectName' to be set)
|
||||
;;; * allows to evaluate JS code from Lisp (needs 'objectName' to be set)
|
||||
;;;
|
||||
;;; (requires a C++ plugin, see "lib/")
|
||||
|
||||
(defpackage :qml-lisp
|
||||
(:use :common-lisp :eql)
|
||||
|
|
@ -26,9 +25,8 @@
|
|||
|
||||
(in-package :qml-lisp)
|
||||
|
||||
(defvar *qml-lisp* (qload-c++ "lib/qml_lisp"))
|
||||
(defvar *caller* nil)
|
||||
(defvar *quick-view* nil)
|
||||
(defvar *caller* nil)
|
||||
|
||||
(defun string-to-symbol (name)
|
||||
(let ((upper (string-upcase name))
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@
|
|||
;;; This is a port of a QtQuick1/Qt4 example.
|
||||
;;; The JS game logic has been ported to Lisp.
|
||||
;;;
|
||||
;;; (requires a C++ plugin, see "lib/")
|
||||
;;;
|
||||
|
||||
#-qt-wrapper-functions ; see README-OPTIONAL.txt
|
||||
(load (in-home "src/lisp/all-wrappers"))
|
||||
|
|
|
|||
|
|
@ -1,108 +0,0 @@
|
|||
#include "qml_lisp.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static Lisp* lisp = 0;
|
||||
|
||||
static QObject* lisp_provider(QQmlEngine*, QJSEngine*) { return lisp; }
|
||||
|
||||
QObject* ini() {
|
||||
if(!lisp) {
|
||||
lisp = new Lisp;
|
||||
qmlRegisterSingletonType<Lisp>("EQL5", 1, 0, "Lisp", lisp_provider);
|
||||
qmlRegisterType<EQLPaintedItem>("EQL5", 1, 0, "PaintedItem"); }
|
||||
return lisp; }
|
||||
|
||||
static QQmlContext* rootContext() {
|
||||
QVariant var = eql_fun("qml:root-context", QMetaType::VoidStar);
|
||||
return Q_PTR(QQmlContext*, var); }
|
||||
|
||||
static QVariant qmlApply(QObject* caller, const QString& function, const QVariantList& arguments) {
|
||||
QVariant var =
|
||||
eql_fun("qml:qml-apply", QVariant::String,
|
||||
Q_ARG(QObject*, caller),
|
||||
Q_ARG(QString, function),
|
||||
Q_ARG(QVariantList, arguments));
|
||||
QString str(var.toString());
|
||||
if(str.startsWith("#<>")) { // prepared in Lisp for JS eval
|
||||
QQmlExpression exp(rootContext(), caller, str.mid(3));
|
||||
return exp.evaluate(); }
|
||||
return var; }
|
||||
|
||||
QVariant Lisp::call(const QJSValue& caller_or_function, const QJSValue& function_or_arg0,
|
||||
const QJSValue& arg1,
|
||||
const QJSValue& arg2,
|
||||
const QJSValue& arg3,
|
||||
const QJSValue& arg4,
|
||||
const QJSValue& arg5,
|
||||
const QJSValue& arg6,
|
||||
const QJSValue& arg7,
|
||||
const QJSValue& arg8,
|
||||
const QJSValue& arg9,
|
||||
const QJSValue& arg10,
|
||||
const QJSValue& arg11,
|
||||
const QJSValue& arg12,
|
||||
const QJSValue& arg13,
|
||||
const QJSValue& arg14,
|
||||
const QJSValue& arg15,
|
||||
const QJSValue& arg16) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arg0.toString(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
if(!function_or_arg0.isUndefined()) {
|
||||
arguments << function_or_arg0.toVariant(); }}
|
||||
if(!arg1.isUndefined()) {
|
||||
arguments << arg1.toVariant();
|
||||
if(!arg2.isUndefined()) {
|
||||
arguments << arg2.toVariant();
|
||||
if(!arg3.isUndefined()) {
|
||||
arguments << arg3.toVariant();
|
||||
if(!arg4.isUndefined()) {
|
||||
arguments << arg4.toVariant();
|
||||
if(!arg5.isUndefined()) {
|
||||
arguments << arg5.toVariant();
|
||||
if(!arg6.isUndefined()) {
|
||||
arguments << arg6.toVariant();
|
||||
if(!arg7.isUndefined()) {
|
||||
arguments << arg7.toVariant();
|
||||
if(!arg8.isUndefined()) {
|
||||
arguments << arg8.toVariant();
|
||||
if(!arg9.isUndefined()) {
|
||||
arguments << arg9.toVariant();
|
||||
if(!arg10.isUndefined()) {
|
||||
arguments << arg10.toVariant();
|
||||
if(!arg11.isUndefined()) {
|
||||
arguments << arg11.toVariant();
|
||||
if(!arg12.isUndefined()) {
|
||||
arguments << arg12.toVariant();
|
||||
if(!arg13.isUndefined()) {
|
||||
arguments << arg13.toVariant();
|
||||
if(!arg14.isUndefined()) {
|
||||
arguments << arg14.toVariant();
|
||||
if(!arg15.isUndefined()) {
|
||||
arguments << arg15.toVariant();
|
||||
if(!arg16.isUndefined()) {
|
||||
arguments << arg16.toVariant(); }}}}}}}}}}}}}}}}
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QVariant Lisp::apply(const QJSValue& caller_or_function,
|
||||
const QJSValue& function_or_arguments,
|
||||
const QJSValue& arguments_or_undefined) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arguments.toString();
|
||||
arguments = arguments_or_undefined.toVariant().value<QVariantList>(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
arguments = function_or_arguments.toVariant().value<QVariantList>(); }
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
QT += qml quick
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = qml_lisp
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../../../../../src/windows.pri)
|
||||
}
|
||||
|
||||
HEADERS += qml_lisp.h
|
||||
SOURCES += qml_lisp.cpp
|
||||
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
(defun show-properties-dialog (&optional item)
|
||||
"Lists all instance properties of a QML item (either a QQuickItem or an 'objectName'). If no item is passed, QML:*CALLER* will be used."
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (%sym :show :properties)
|
||||
(or (if (stringp item)
|
||||
(qml:find-quick-item item)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
;;; * allows to get/set any QML property from Lisp (needs 'objectName' to be set)
|
||||
;;; * allows to evaluate JS code from Lisp (needs 'objectName' to be set)
|
||||
;;;
|
||||
;;; (requires a C++ plugin, see "lib/")
|
||||
|
||||
(defpackage :qml-lisp
|
||||
(:use :common-lisp :eql)
|
||||
|
|
@ -26,9 +25,8 @@
|
|||
|
||||
(in-package :qml-lisp)
|
||||
|
||||
(defvar *qml-lisp* (qload-c++ "lib/qml_lisp"))
|
||||
(defvar *caller* nil)
|
||||
(defvar *quick-view* nil)
|
||||
(defvar *caller* nil)
|
||||
|
||||
(defun string-to-symbol (name)
|
||||
(let ((upper (string-upcase name))
|
||||
|
|
|
|||
|
|
@ -1,108 +0,0 @@
|
|||
#include "qml_lisp.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static Lisp* lisp = 0;
|
||||
|
||||
static QObject* lisp_provider(QQmlEngine*, QJSEngine*) { return lisp; }
|
||||
|
||||
QObject* ini() {
|
||||
if(!lisp) {
|
||||
lisp = new Lisp;
|
||||
qmlRegisterSingletonType<Lisp>("EQL5", 1, 0, "Lisp", lisp_provider);
|
||||
qmlRegisterType<EQLPaintedItem>("EQL5", 1, 0, "PaintedItem"); }
|
||||
return lisp; }
|
||||
|
||||
static QQmlContext* rootContext() {
|
||||
QVariant var = eql_fun("qml:root-context", QMetaType::VoidStar);
|
||||
return Q_PTR(QQmlContext*, var); }
|
||||
|
||||
static QVariant qmlApply(QObject* caller, const QString& function, const QVariantList& arguments) {
|
||||
QVariant var =
|
||||
eql_fun("qml:qml-apply", QVariant::String,
|
||||
Q_ARG(QObject*, caller),
|
||||
Q_ARG(QString, function),
|
||||
Q_ARG(QVariantList, arguments));
|
||||
QString str(var.toString());
|
||||
if(str.startsWith("#<>")) { // prepared in Lisp for JS eval
|
||||
QQmlExpression exp(rootContext(), caller, str.mid(3));
|
||||
return exp.evaluate(); }
|
||||
return var; }
|
||||
|
||||
QVariant Lisp::call(const QJSValue& caller_or_function, const QJSValue& function_or_arg0,
|
||||
const QJSValue& arg1,
|
||||
const QJSValue& arg2,
|
||||
const QJSValue& arg3,
|
||||
const QJSValue& arg4,
|
||||
const QJSValue& arg5,
|
||||
const QJSValue& arg6,
|
||||
const QJSValue& arg7,
|
||||
const QJSValue& arg8,
|
||||
const QJSValue& arg9,
|
||||
const QJSValue& arg10,
|
||||
const QJSValue& arg11,
|
||||
const QJSValue& arg12,
|
||||
const QJSValue& arg13,
|
||||
const QJSValue& arg14,
|
||||
const QJSValue& arg15,
|
||||
const QJSValue& arg16) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arg0.toString(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
if(!function_or_arg0.isUndefined()) {
|
||||
arguments << function_or_arg0.toVariant(); }}
|
||||
if(!arg1.isUndefined()) {
|
||||
arguments << arg1.toVariant();
|
||||
if(!arg2.isUndefined()) {
|
||||
arguments << arg2.toVariant();
|
||||
if(!arg3.isUndefined()) {
|
||||
arguments << arg3.toVariant();
|
||||
if(!arg4.isUndefined()) {
|
||||
arguments << arg4.toVariant();
|
||||
if(!arg5.isUndefined()) {
|
||||
arguments << arg5.toVariant();
|
||||
if(!arg6.isUndefined()) {
|
||||
arguments << arg6.toVariant();
|
||||
if(!arg7.isUndefined()) {
|
||||
arguments << arg7.toVariant();
|
||||
if(!arg8.isUndefined()) {
|
||||
arguments << arg8.toVariant();
|
||||
if(!arg9.isUndefined()) {
|
||||
arguments << arg9.toVariant();
|
||||
if(!arg10.isUndefined()) {
|
||||
arguments << arg10.toVariant();
|
||||
if(!arg11.isUndefined()) {
|
||||
arguments << arg11.toVariant();
|
||||
if(!arg12.isUndefined()) {
|
||||
arguments << arg12.toVariant();
|
||||
if(!arg13.isUndefined()) {
|
||||
arguments << arg13.toVariant();
|
||||
if(!arg14.isUndefined()) {
|
||||
arguments << arg14.toVariant();
|
||||
if(!arg15.isUndefined()) {
|
||||
arguments << arg15.toVariant();
|
||||
if(!arg16.isUndefined()) {
|
||||
arguments << arg16.toVariant(); }}}}}}}}}}}}}}}}
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QVariant Lisp::apply(const QJSValue& caller_or_function,
|
||||
const QJSValue& function_or_arguments,
|
||||
const QJSValue& arguments_or_undefined) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arguments.toString();
|
||||
arguments = arguments_or_undefined.toVariant().value<QVariantList>(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
arguments = function_or_arguments.toVariant().value<QVariantList>(); }
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
#ifndef LIB_H
|
||||
#define LIB_H
|
||||
|
||||
#include <QtQml>
|
||||
#include <QQuickPaintedItem>
|
||||
#include <eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define LIB_EXPORT
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
extern "C" { LIB_EXPORT QObject* ini(); }
|
||||
|
||||
class Lisp : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Q_INVOKABLE QVariant call(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
|
||||
Q_INVOKABLE QVariant apply(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
};
|
||||
|
||||
class EQLPaintedItem : public QQuickPaintedItem {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EQLPaintedItem(QQuickItem* parent = 0) : QQuickPaintedItem(parent) {}
|
||||
|
||||
void paint(QPainter* painter) {
|
||||
eql_fun("qml:paint",
|
||||
Q_ARG(QQuickPaintedItem*, this),
|
||||
Q_ARG(QPainter*, painter)); }
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
QT += qml quick
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = qml_lisp
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../../../../../src/windows.pri)
|
||||
}
|
||||
|
||||
HEADERS += qml_lisp.h
|
||||
SOURCES += qml_lisp.cpp
|
||||
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
(defun show-properties-dialog (&optional item)
|
||||
"Lists all instance properties of a QML item (either a QQuickItem or an 'objectName'). If no item is passed, QML:*CALLER* will be used."
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (%sym :show :properties)
|
||||
(or (if (stringp item)
|
||||
(qml:find-quick-item item)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
;;; * allows to get/set any QML property from Lisp (needs 'objectName' to be set)
|
||||
;;; * allows to evaluate JS code from Lisp (needs 'objectName' to be set)
|
||||
;;;
|
||||
;;; (requires a C++ plugin, see "lib/")
|
||||
|
||||
(defpackage :qml-lisp
|
||||
(:use :common-lisp :eql)
|
||||
|
|
@ -26,9 +25,8 @@
|
|||
|
||||
(in-package :qml-lisp)
|
||||
|
||||
(defvar *qml-lisp* (qload-c++ "lib/qml_lisp"))
|
||||
(defvar *caller* nil)
|
||||
(defvar *quick-view* nil)
|
||||
(defvar *caller* nil)
|
||||
|
||||
(defun string-to-symbol (name)
|
||||
(let ((upper (string-upcase name))
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
(defun show-properties-dialog (&optional item)
|
||||
"Lists all instance properties of a QML item (either a QQuickItem or an 'objectName')."
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (%sym :show :properties)
|
||||
(if (stringp item)
|
||||
(find-quick-item item)
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,108 +0,0 @@
|
|||
#include "qml_lisp.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static Lisp* lisp = 0;
|
||||
|
||||
static QObject* lisp_provider(QQmlEngine*, QJSEngine*) { return lisp; }
|
||||
|
||||
QObject* ini() {
|
||||
if(!lisp) {
|
||||
lisp = new Lisp;
|
||||
qmlRegisterSingletonType<Lisp>("EQL5", 1, 0, "Lisp", lisp_provider);
|
||||
qmlRegisterType<EQLPaintedItem>("EQL5", 1, 0, "PaintedItem"); }
|
||||
return lisp; }
|
||||
|
||||
static QQmlContext* rootContext() {
|
||||
QVariant var = eql_fun("qml:root-context", QMetaType::VoidStar);
|
||||
return Q_PTR(QQmlContext*, var); }
|
||||
|
||||
static QVariant qmlApply(QObject* caller, const QString& function, const QVariantList& arguments) {
|
||||
QVariant var =
|
||||
eql_fun("qml:qml-apply", QVariant::String,
|
||||
Q_ARG(QObject*, caller),
|
||||
Q_ARG(QString, function),
|
||||
Q_ARG(QVariantList, arguments));
|
||||
QString str(var.toString());
|
||||
if(str.startsWith("#<>")) { // prepared in Lisp for JS eval
|
||||
QQmlExpression exp(rootContext(), caller, str.mid(3));
|
||||
return exp.evaluate(); }
|
||||
return var; }
|
||||
|
||||
QVariant Lisp::call(const QJSValue& caller_or_function, const QJSValue& function_or_arg0,
|
||||
const QJSValue& arg1,
|
||||
const QJSValue& arg2,
|
||||
const QJSValue& arg3,
|
||||
const QJSValue& arg4,
|
||||
const QJSValue& arg5,
|
||||
const QJSValue& arg6,
|
||||
const QJSValue& arg7,
|
||||
const QJSValue& arg8,
|
||||
const QJSValue& arg9,
|
||||
const QJSValue& arg10,
|
||||
const QJSValue& arg11,
|
||||
const QJSValue& arg12,
|
||||
const QJSValue& arg13,
|
||||
const QJSValue& arg14,
|
||||
const QJSValue& arg15,
|
||||
const QJSValue& arg16) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arg0.toString(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
if(!function_or_arg0.isUndefined()) {
|
||||
arguments << function_or_arg0.toVariant(); }}
|
||||
if(!arg1.isUndefined()) {
|
||||
arguments << arg1.toVariant();
|
||||
if(!arg2.isUndefined()) {
|
||||
arguments << arg2.toVariant();
|
||||
if(!arg3.isUndefined()) {
|
||||
arguments << arg3.toVariant();
|
||||
if(!arg4.isUndefined()) {
|
||||
arguments << arg4.toVariant();
|
||||
if(!arg5.isUndefined()) {
|
||||
arguments << arg5.toVariant();
|
||||
if(!arg6.isUndefined()) {
|
||||
arguments << arg6.toVariant();
|
||||
if(!arg7.isUndefined()) {
|
||||
arguments << arg7.toVariant();
|
||||
if(!arg8.isUndefined()) {
|
||||
arguments << arg8.toVariant();
|
||||
if(!arg9.isUndefined()) {
|
||||
arguments << arg9.toVariant();
|
||||
if(!arg10.isUndefined()) {
|
||||
arguments << arg10.toVariant();
|
||||
if(!arg11.isUndefined()) {
|
||||
arguments << arg11.toVariant();
|
||||
if(!arg12.isUndefined()) {
|
||||
arguments << arg12.toVariant();
|
||||
if(!arg13.isUndefined()) {
|
||||
arguments << arg13.toVariant();
|
||||
if(!arg14.isUndefined()) {
|
||||
arguments << arg14.toVariant();
|
||||
if(!arg15.isUndefined()) {
|
||||
arguments << arg15.toVariant();
|
||||
if(!arg16.isUndefined()) {
|
||||
arguments << arg16.toVariant(); }}}}}}}}}}}}}}}}
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QVariant Lisp::apply(const QJSValue& caller_or_function,
|
||||
const QJSValue& function_or_arguments,
|
||||
const QJSValue& arguments_or_undefined) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arguments.toString();
|
||||
arguments = arguments_or_undefined.toVariant().value<QVariantList>(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
arguments = function_or_arguments.toVariant().value<QVariantList>(); }
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
#ifndef LIB_H
|
||||
#define LIB_H
|
||||
|
||||
#include <QtQml>
|
||||
#include <QQuickPaintedItem>
|
||||
#include <eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define LIB_EXPORT
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
extern "C" { LIB_EXPORT QObject* ini(); }
|
||||
|
||||
class Lisp : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Q_INVOKABLE QVariant call(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
|
||||
Q_INVOKABLE QVariant apply(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
};
|
||||
|
||||
class EQLPaintedItem : public QQuickPaintedItem {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EQLPaintedItem(QQuickItem* parent = 0) : QQuickPaintedItem(parent) {}
|
||||
|
||||
void paint(QPainter* painter) {
|
||||
eql_fun("qml:paint",
|
||||
Q_ARG(QQuickPaintedItem*, this),
|
||||
Q_ARG(QPainter*, painter)); }
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
QT += qml quick
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = qml_lisp
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../../../../../src/windows.pri)
|
||||
}
|
||||
|
||||
HEADERS += qml_lisp.h
|
||||
SOURCES += qml_lisp.cpp
|
||||
|
||||
|
|
@ -1,568 +0,0 @@
|
|||
/****************************************************************************
|
||||
** Meta object code from reading C++ file 'qml_lisp.h'
|
||||
**
|
||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.5.1)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
*****************************************************************************/
|
||||
|
||||
#include "../qml_lisp.h"
|
||||
#include <QtCore/qbytearray.h>
|
||||
#include <QtCore/qmetatype.h>
|
||||
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||
#error "The header file 'qml_lisp.h' doesn't include <QObject>."
|
||||
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||
#error "This file was generated using the moc from 5.5.1. It"
|
||||
#error "cannot be used with the include files from this version of Qt."
|
||||
#error "(The moc has changed too much.)"
|
||||
#endif
|
||||
|
||||
QT_BEGIN_MOC_NAMESPACE
|
||||
struct qt_meta_stringdata_Lisp_t {
|
||||
QByteArrayData data[5];
|
||||
char stringdata0[26];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
qptrdiff(offsetof(qt_meta_stringdata_Lisp_t, stringdata0) + ofs \
|
||||
- idx * sizeof(QByteArrayData)) \
|
||||
)
|
||||
static const qt_meta_stringdata_Lisp_t qt_meta_stringdata_Lisp = {
|
||||
{
|
||||
QT_MOC_LITERAL(0, 0, 4), // "Lisp"
|
||||
QT_MOC_LITERAL(1, 5, 4), // "call"
|
||||
QT_MOC_LITERAL(2, 10, 0), // ""
|
||||
QT_MOC_LITERAL(3, 11, 8), // "QJSValue"
|
||||
QT_MOC_LITERAL(4, 20, 5) // "apply"
|
||||
|
||||
},
|
||||
"Lisp\0call\0\0QJSValue\0apply"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
static const uint qt_meta_data_Lisp[] = {
|
||||
|
||||
// content:
|
||||
7, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
21, 14, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
0, // flags
|
||||
0, // signalCount
|
||||
|
||||
// methods: name, argc, parameters, tag, flags
|
||||
1, 18, 119, 2, 0x02 /* Public */,
|
||||
1, 17, 156, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 16, 191, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 15, 224, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 14, 255, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 13, 284, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 12, 311, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 11, 336, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 10, 359, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 9, 380, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 8, 399, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 7, 416, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 6, 431, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 5, 444, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 4, 455, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 3, 464, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 2, 471, 2, 0x22 /* Public | MethodCloned */,
|
||||
1, 1, 476, 2, 0x22 /* Public | MethodCloned */,
|
||||
4, 3, 479, 2, 0x02 /* Public */,
|
||||
4, 2, 486, 2, 0x22 /* Public | MethodCloned */,
|
||||
4, 1, 491, 2, 0x22 /* Public | MethodCloned */,
|
||||
|
||||
// methods: parameters
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 0x80000000 | 3, 2, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 0x80000000 | 3, 2, 2,
|
||||
QMetaType::QVariant, 0x80000000 | 3, 2,
|
||||
|
||||
0 // eod
|
||||
};
|
||||
|
||||
void Lisp::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
Lisp *_t = static_cast<Lisp *>(_o);
|
||||
Q_UNUSED(_t)
|
||||
switch (_id) {
|
||||
case 0: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])),(*reinterpret_cast< const QJSValue(*)>(_a[11])),(*reinterpret_cast< const QJSValue(*)>(_a[12])),(*reinterpret_cast< const QJSValue(*)>(_a[13])),(*reinterpret_cast< const QJSValue(*)>(_a[14])),(*reinterpret_cast< const QJSValue(*)>(_a[15])),(*reinterpret_cast< const QJSValue(*)>(_a[16])),(*reinterpret_cast< const QJSValue(*)>(_a[17])),(*reinterpret_cast< const QJSValue(*)>(_a[18])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 1: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])),(*reinterpret_cast< const QJSValue(*)>(_a[11])),(*reinterpret_cast< const QJSValue(*)>(_a[12])),(*reinterpret_cast< const QJSValue(*)>(_a[13])),(*reinterpret_cast< const QJSValue(*)>(_a[14])),(*reinterpret_cast< const QJSValue(*)>(_a[15])),(*reinterpret_cast< const QJSValue(*)>(_a[16])),(*reinterpret_cast< const QJSValue(*)>(_a[17])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 2: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])),(*reinterpret_cast< const QJSValue(*)>(_a[11])),(*reinterpret_cast< const QJSValue(*)>(_a[12])),(*reinterpret_cast< const QJSValue(*)>(_a[13])),(*reinterpret_cast< const QJSValue(*)>(_a[14])),(*reinterpret_cast< const QJSValue(*)>(_a[15])),(*reinterpret_cast< const QJSValue(*)>(_a[16])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 3: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])),(*reinterpret_cast< const QJSValue(*)>(_a[11])),(*reinterpret_cast< const QJSValue(*)>(_a[12])),(*reinterpret_cast< const QJSValue(*)>(_a[13])),(*reinterpret_cast< const QJSValue(*)>(_a[14])),(*reinterpret_cast< const QJSValue(*)>(_a[15])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 4: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])),(*reinterpret_cast< const QJSValue(*)>(_a[11])),(*reinterpret_cast< const QJSValue(*)>(_a[12])),(*reinterpret_cast< const QJSValue(*)>(_a[13])),(*reinterpret_cast< const QJSValue(*)>(_a[14])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 5: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])),(*reinterpret_cast< const QJSValue(*)>(_a[11])),(*reinterpret_cast< const QJSValue(*)>(_a[12])),(*reinterpret_cast< const QJSValue(*)>(_a[13])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 6: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])),(*reinterpret_cast< const QJSValue(*)>(_a[11])),(*reinterpret_cast< const QJSValue(*)>(_a[12])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 7: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])),(*reinterpret_cast< const QJSValue(*)>(_a[11])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 8: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])),(*reinterpret_cast< const QJSValue(*)>(_a[10])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 9: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])),(*reinterpret_cast< const QJSValue(*)>(_a[9])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 10: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])),(*reinterpret_cast< const QJSValue(*)>(_a[8])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 11: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])),(*reinterpret_cast< const QJSValue(*)>(_a[7])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 12: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])),(*reinterpret_cast< const QJSValue(*)>(_a[6])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 13: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])),(*reinterpret_cast< const QJSValue(*)>(_a[5])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 14: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])),(*reinterpret_cast< const QJSValue(*)>(_a[4])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 15: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 16: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 17: { QVariant _r = _t->call((*reinterpret_cast< const QJSValue(*)>(_a[1])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 18: { QVariant _r = _t->apply((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])),(*reinterpret_cast< const QJSValue(*)>(_a[3])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 19: { QVariant _r = _t->apply((*reinterpret_cast< const QJSValue(*)>(_a[1])),(*reinterpret_cast< const QJSValue(*)>(_a[2])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
case 20: { QVariant _r = _t->apply((*reinterpret_cast< const QJSValue(*)>(_a[1])));
|
||||
if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break;
|
||||
default: ;
|
||||
}
|
||||
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
switch (_id) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 0:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 17:
|
||||
case 16:
|
||||
case 15:
|
||||
case 14:
|
||||
case 13:
|
||||
case 12:
|
||||
case 11:
|
||||
case 10:
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 16:
|
||||
case 15:
|
||||
case 14:
|
||||
case 13:
|
||||
case 12:
|
||||
case 11:
|
||||
case 10:
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 15:
|
||||
case 14:
|
||||
case 13:
|
||||
case 12:
|
||||
case 11:
|
||||
case 10:
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 14:
|
||||
case 13:
|
||||
case 12:
|
||||
case 11:
|
||||
case 10:
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 13:
|
||||
case 12:
|
||||
case 11:
|
||||
case 10:
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 12:
|
||||
case 11:
|
||||
case 10:
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 11:
|
||||
case 10:
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 10:
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 9:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 7:
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 6:
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 5:
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 4:
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 3:
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 17:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 18:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 2:
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 19:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 1:
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
case 20:
|
||||
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||
case 0:
|
||||
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QJSValue >(); break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const QMetaObject Lisp::staticMetaObject = {
|
||||
{ &QObject::staticMetaObject, qt_meta_stringdata_Lisp.data,
|
||||
qt_meta_data_Lisp, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
|
||||
};
|
||||
|
||||
|
||||
const QMetaObject *Lisp::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *Lisp::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return Q_NULLPTR;
|
||||
if (!strcmp(_clname, qt_meta_stringdata_Lisp.stringdata0))
|
||||
return static_cast<void*>(const_cast< Lisp*>(this));
|
||||
return QObject::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int Lisp::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QObject::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
if (_id < 21)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 21;
|
||||
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 21)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 21;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
struct qt_meta_stringdata_EQLPaintedItem_t {
|
||||
QByteArrayData data[1];
|
||||
char stringdata0[15];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
qptrdiff(offsetof(qt_meta_stringdata_EQLPaintedItem_t, stringdata0) + ofs \
|
||||
- idx * sizeof(QByteArrayData)) \
|
||||
)
|
||||
static const qt_meta_stringdata_EQLPaintedItem_t qt_meta_stringdata_EQLPaintedItem = {
|
||||
{
|
||||
QT_MOC_LITERAL(0, 0, 14) // "EQLPaintedItem"
|
||||
|
||||
},
|
||||
"EQLPaintedItem"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
static const uint qt_meta_data_EQLPaintedItem[] = {
|
||||
|
||||
// content:
|
||||
7, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
0, 0, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
0, // flags
|
||||
0, // signalCount
|
||||
|
||||
0 // eod
|
||||
};
|
||||
|
||||
void EQLPaintedItem::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
Q_UNUSED(_o);
|
||||
Q_UNUSED(_id);
|
||||
Q_UNUSED(_c);
|
||||
Q_UNUSED(_a);
|
||||
}
|
||||
|
||||
const QMetaObject EQLPaintedItem::staticMetaObject = {
|
||||
{ &QQuickPaintedItem::staticMetaObject, qt_meta_stringdata_EQLPaintedItem.data,
|
||||
qt_meta_data_EQLPaintedItem, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
|
||||
};
|
||||
|
||||
|
||||
const QMetaObject *EQLPaintedItem::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *EQLPaintedItem::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return Q_NULLPTR;
|
||||
if (!strcmp(_clname, qt_meta_stringdata_EQLPaintedItem.stringdata0))
|
||||
return static_cast<void*>(const_cast< EQLPaintedItem*>(this));
|
||||
return QQuickPaintedItem::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int EQLPaintedItem::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QQuickPaintedItem::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
return _id;
|
||||
}
|
||||
QT_END_MOC_NAMESPACE
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -6,7 +6,7 @@
|
|||
(defun show-properties-dialog (&optional item)
|
||||
"Lists all instance properties of a QML item (either a QQuickItem or an 'objectName'). If no item is passed, QML:*CALLER* will be used."
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (%sym :show :properties)
|
||||
(or (if (stringp item)
|
||||
(qml:find-quick-item item)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
;;; * allows to get/set any QML property from Lisp (needs 'objectName' to be set)
|
||||
;;; * allows to evaluate JS code from Lisp (needs 'objectName' to be set)
|
||||
;;;
|
||||
;;; (requires a C++ plugin, see "lib/")
|
||||
|
||||
(defpackage :qml-lisp
|
||||
(:use :common-lisp :eql)
|
||||
|
|
@ -26,9 +25,8 @@
|
|||
|
||||
(in-package :qml-lisp)
|
||||
|
||||
;;(defvar *qml-lisp* (qload-c++ "lib/qml_lisp")) ; not needed for this example
|
||||
(defvar *caller* nil)
|
||||
(defvar *quick-view* nil)
|
||||
(defvar *caller* nil)
|
||||
|
||||
(defun string-to-symbol (name)
|
||||
(let ((upper (string-upcase name))
|
||||
|
|
|
|||
|
|
@ -1,108 +0,0 @@
|
|||
#include "qml_lisp.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static Lisp* lisp = 0;
|
||||
|
||||
static QObject* lisp_provider(QQmlEngine*, QJSEngine*) { return lisp; }
|
||||
|
||||
QObject* ini() {
|
||||
if(!lisp) {
|
||||
lisp = new Lisp;
|
||||
qmlRegisterSingletonType<Lisp>("EQL5", 1, 0, "Lisp", lisp_provider);
|
||||
qmlRegisterType<EQLPaintedItem>("EQL5", 1, 0, "PaintedItem"); }
|
||||
return lisp; }
|
||||
|
||||
static QQmlContext* rootContext() {
|
||||
QVariant var = eql_fun("qml:root-context", QMetaType::VoidStar);
|
||||
return Q_PTR(QQmlContext*, var); }
|
||||
|
||||
static QVariant qmlApply(QObject* caller, const QString& function, const QVariantList& arguments) {
|
||||
QVariant var =
|
||||
eql_fun("qml:qml-apply", QVariant::String,
|
||||
Q_ARG(QObject*, caller),
|
||||
Q_ARG(QString, function),
|
||||
Q_ARG(QVariantList, arguments));
|
||||
QString str(var.toString());
|
||||
if(str.startsWith("#<>")) { // prepared in Lisp for JS eval
|
||||
QQmlExpression exp(rootContext(), caller, str.mid(3));
|
||||
return exp.evaluate(); }
|
||||
return var; }
|
||||
|
||||
QVariant Lisp::call(const QJSValue& caller_or_function, const QJSValue& function_or_arg0,
|
||||
const QJSValue& arg1,
|
||||
const QJSValue& arg2,
|
||||
const QJSValue& arg3,
|
||||
const QJSValue& arg4,
|
||||
const QJSValue& arg5,
|
||||
const QJSValue& arg6,
|
||||
const QJSValue& arg7,
|
||||
const QJSValue& arg8,
|
||||
const QJSValue& arg9,
|
||||
const QJSValue& arg10,
|
||||
const QJSValue& arg11,
|
||||
const QJSValue& arg12,
|
||||
const QJSValue& arg13,
|
||||
const QJSValue& arg14,
|
||||
const QJSValue& arg15,
|
||||
const QJSValue& arg16) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arg0.toString(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
if(!function_or_arg0.isUndefined()) {
|
||||
arguments << function_or_arg0.toVariant(); }}
|
||||
if(!arg1.isUndefined()) {
|
||||
arguments << arg1.toVariant();
|
||||
if(!arg2.isUndefined()) {
|
||||
arguments << arg2.toVariant();
|
||||
if(!arg3.isUndefined()) {
|
||||
arguments << arg3.toVariant();
|
||||
if(!arg4.isUndefined()) {
|
||||
arguments << arg4.toVariant();
|
||||
if(!arg5.isUndefined()) {
|
||||
arguments << arg5.toVariant();
|
||||
if(!arg6.isUndefined()) {
|
||||
arguments << arg6.toVariant();
|
||||
if(!arg7.isUndefined()) {
|
||||
arguments << arg7.toVariant();
|
||||
if(!arg8.isUndefined()) {
|
||||
arguments << arg8.toVariant();
|
||||
if(!arg9.isUndefined()) {
|
||||
arguments << arg9.toVariant();
|
||||
if(!arg10.isUndefined()) {
|
||||
arguments << arg10.toVariant();
|
||||
if(!arg11.isUndefined()) {
|
||||
arguments << arg11.toVariant();
|
||||
if(!arg12.isUndefined()) {
|
||||
arguments << arg12.toVariant();
|
||||
if(!arg13.isUndefined()) {
|
||||
arguments << arg13.toVariant();
|
||||
if(!arg14.isUndefined()) {
|
||||
arguments << arg14.toVariant();
|
||||
if(!arg15.isUndefined()) {
|
||||
arguments << arg15.toVariant();
|
||||
if(!arg16.isUndefined()) {
|
||||
arguments << arg16.toVariant(); }}}}}}}}}}}}}}}}
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QVariant Lisp::apply(const QJSValue& caller_or_function,
|
||||
const QJSValue& function_or_arguments,
|
||||
const QJSValue& arguments_or_undefined) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arguments.toString();
|
||||
arguments = arguments_or_undefined.toVariant().value<QVariantList>(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
arguments = function_or_arguments.toVariant().value<QVariantList>(); }
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
#ifndef LIB_H
|
||||
#define LIB_H
|
||||
|
||||
#include <QtQml>
|
||||
#include <QQuickPaintedItem>
|
||||
#include <eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define LIB_EXPORT
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
extern "C" { LIB_EXPORT QObject* ini(); }
|
||||
|
||||
class Lisp : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Q_INVOKABLE QVariant call(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
|
||||
Q_INVOKABLE QVariant apply(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
};
|
||||
|
||||
class EQLPaintedItem : public QQuickPaintedItem {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EQLPaintedItem(QQuickItem* parent = 0) : QQuickPaintedItem(parent) {}
|
||||
|
||||
void paint(QPainter* painter) {
|
||||
eql_fun("qml:paint",
|
||||
Q_ARG(QQuickPaintedItem*, this),
|
||||
Q_ARG(QPainter*, painter)); }
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
QT += qml quick
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = qml_lisp
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../../../../../src/windows.pri)
|
||||
}
|
||||
|
||||
HEADERS += qml_lisp.h
|
||||
SOURCES += qml_lisp.cpp
|
||||
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
(defun show-properties-dialog (&optional item)
|
||||
"Lists all instance properties of a QML item (either a QQuickItem or an 'objectName'). If no item is passed, QML:*CALLER* will be used."
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (%sym :show :properties)
|
||||
(or (if (stringp item)
|
||||
(qml:find-quick-item item)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
;;; * allows to get/set any QML property from Lisp (needs 'objectName' to be set)
|
||||
;;; * allows to evaluate JS code from Lisp (needs 'objectName' to be set)
|
||||
;;;
|
||||
;;; (requires a C++ plugin, see "lib/")
|
||||
|
||||
(defpackage :qml-lisp
|
||||
(:use :common-lisp :eql)
|
||||
|
|
@ -26,9 +25,8 @@
|
|||
|
||||
(in-package :qml-lisp)
|
||||
|
||||
(defvar *qml-lisp* (qload-c++ "lib/qml_lisp"))
|
||||
(defvar *caller* nil)
|
||||
(defvar *quick-view* nil)
|
||||
(defvar *caller* nil)
|
||||
|
||||
(defun string-to-symbol (name)
|
||||
(let ((upper (string-upcase name))
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Item {
|
|||
// use JS arrays for lists (can be nested);
|
||||
//
|
||||
// * the only limit to Lisp.call() is the number of arguments (max. 16);
|
||||
// this is just an implementation detail; feel free to extend it (see "../lib/");
|
||||
// this is just an implementation detail; feel free to extend it (see sources);
|
||||
//
|
||||
// * return values can be nested Lisp lists or vectors, which will be converted to
|
||||
// nested JS arrays: they will be prepared in Lisp and passed to JS eval;
|
||||
|
|
|
|||
|
|
@ -1,108 +0,0 @@
|
|||
#include "qml_lisp.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static Lisp* lisp = 0;
|
||||
|
||||
static QObject* lisp_provider(QQmlEngine*, QJSEngine*) { return lisp; }
|
||||
|
||||
QObject* ini() {
|
||||
if(!lisp) {
|
||||
lisp = new Lisp;
|
||||
qmlRegisterSingletonType<Lisp>("EQL5", 1, 0, "Lisp", lisp_provider);
|
||||
qmlRegisterType<EQLPaintedItem>("EQL5", 1, 0, "PaintedItem"); }
|
||||
return lisp; }
|
||||
|
||||
static QQmlContext* rootContext() {
|
||||
QVariant var = eql_fun("qml:root-context", QMetaType::VoidStar);
|
||||
return Q_PTR(QQmlContext*, var); }
|
||||
|
||||
static QVariant qmlApply(QObject* caller, const QString& function, const QVariantList& arguments) {
|
||||
QVariant var =
|
||||
eql_fun("qml:qml-apply", QVariant::String,
|
||||
Q_ARG(QObject*, caller),
|
||||
Q_ARG(QString, function),
|
||||
Q_ARG(QVariantList, arguments));
|
||||
QString str(var.toString());
|
||||
if(str.startsWith("#<>")) { // prepared in Lisp for JS eval
|
||||
QQmlExpression exp(rootContext(), caller, str.mid(3));
|
||||
return exp.evaluate(); }
|
||||
return var; }
|
||||
|
||||
QVariant Lisp::call(const QJSValue& caller_or_function, const QJSValue& function_or_arg0,
|
||||
const QJSValue& arg1,
|
||||
const QJSValue& arg2,
|
||||
const QJSValue& arg3,
|
||||
const QJSValue& arg4,
|
||||
const QJSValue& arg5,
|
||||
const QJSValue& arg6,
|
||||
const QJSValue& arg7,
|
||||
const QJSValue& arg8,
|
||||
const QJSValue& arg9,
|
||||
const QJSValue& arg10,
|
||||
const QJSValue& arg11,
|
||||
const QJSValue& arg12,
|
||||
const QJSValue& arg13,
|
||||
const QJSValue& arg14,
|
||||
const QJSValue& arg15,
|
||||
const QJSValue& arg16) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arg0.toString(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
if(!function_or_arg0.isUndefined()) {
|
||||
arguments << function_or_arg0.toVariant(); }}
|
||||
if(!arg1.isUndefined()) {
|
||||
arguments << arg1.toVariant();
|
||||
if(!arg2.isUndefined()) {
|
||||
arguments << arg2.toVariant();
|
||||
if(!arg3.isUndefined()) {
|
||||
arguments << arg3.toVariant();
|
||||
if(!arg4.isUndefined()) {
|
||||
arguments << arg4.toVariant();
|
||||
if(!arg5.isUndefined()) {
|
||||
arguments << arg5.toVariant();
|
||||
if(!arg6.isUndefined()) {
|
||||
arguments << arg6.toVariant();
|
||||
if(!arg7.isUndefined()) {
|
||||
arguments << arg7.toVariant();
|
||||
if(!arg8.isUndefined()) {
|
||||
arguments << arg8.toVariant();
|
||||
if(!arg9.isUndefined()) {
|
||||
arguments << arg9.toVariant();
|
||||
if(!arg10.isUndefined()) {
|
||||
arguments << arg10.toVariant();
|
||||
if(!arg11.isUndefined()) {
|
||||
arguments << arg11.toVariant();
|
||||
if(!arg12.isUndefined()) {
|
||||
arguments << arg12.toVariant();
|
||||
if(!arg13.isUndefined()) {
|
||||
arguments << arg13.toVariant();
|
||||
if(!arg14.isUndefined()) {
|
||||
arguments << arg14.toVariant();
|
||||
if(!arg15.isUndefined()) {
|
||||
arguments << arg15.toVariant();
|
||||
if(!arg16.isUndefined()) {
|
||||
arguments << arg16.toVariant(); }}}}}}}}}}}}}}}}
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QVariant Lisp::apply(const QJSValue& caller_or_function,
|
||||
const QJSValue& function_or_arguments,
|
||||
const QJSValue& arguments_or_undefined) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arguments.toString();
|
||||
arguments = arguments_or_undefined.toVariant().value<QVariantList>(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
arguments = function_or_arguments.toVariant().value<QVariantList>(); }
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
#ifndef LIB_H
|
||||
#define LIB_H
|
||||
|
||||
#include <QtQml>
|
||||
#include <QQuickPaintedItem>
|
||||
#include <eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define LIB_EXPORT
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
extern "C" { LIB_EXPORT QObject* ini(); }
|
||||
|
||||
class Lisp : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Q_INVOKABLE QVariant call(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
|
||||
Q_INVOKABLE QVariant apply(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
};
|
||||
|
||||
class EQLPaintedItem : public QQuickPaintedItem {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EQLPaintedItem(QQuickItem* parent = 0) : QQuickPaintedItem(parent) {}
|
||||
|
||||
void paint(QPainter* painter) {
|
||||
eql_fun("qml:paint",
|
||||
Q_ARG(QQuickPaintedItem*, this),
|
||||
Q_ARG(QPainter*, painter)); }
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
QT += qml quick
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = qml_lisp
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../../../../../src/windows.pri)
|
||||
}
|
||||
|
||||
HEADERS += qml_lisp.h
|
||||
SOURCES += qml_lisp.cpp
|
||||
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
(defun show-properties-dialog (&optional item)
|
||||
"Lists all instance properties of a QML item (either a QQuickItem or an 'objectName'). If no item is passed, QML:*CALLER* will be used."
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (%sym :show :properties)
|
||||
(or (if (stringp item)
|
||||
(qml:find-quick-item item)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
;;; * allows to get/set any QML property from Lisp (needs 'objectName' to be set)
|
||||
;;; * allows to evaluate JS code from Lisp (needs 'objectName' to be set)
|
||||
;;;
|
||||
;;; (requires a C++ plugin, see "lib/")
|
||||
|
||||
(defpackage :qml-lisp
|
||||
(:use :common-lisp :eql)
|
||||
|
|
@ -26,9 +25,8 @@
|
|||
|
||||
(in-package :qml-lisp)
|
||||
|
||||
(defvar *qml-lisp* (qload-c++ "lib/qml_lisp"))
|
||||
(defvar *caller* nil)
|
||||
(defvar *quick-view* nil)
|
||||
(defvar *caller* nil)
|
||||
|
||||
(defun string-to-symbol (name)
|
||||
(let ((upper (string-upcase name))
|
||||
|
|
|
|||
|
|
@ -1,108 +0,0 @@
|
|||
#include "qml_lisp.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static Lisp* lisp = 0;
|
||||
|
||||
static QObject* lisp_provider(QQmlEngine*, QJSEngine*) { return lisp; }
|
||||
|
||||
QObject* ini() {
|
||||
if(!lisp) {
|
||||
lisp = new Lisp;
|
||||
qmlRegisterSingletonType<Lisp>("EQL5", 1, 0, "Lisp", lisp_provider);
|
||||
qmlRegisterType<EQLPaintedItem>("EQL5", 1, 0, "PaintedItem"); }
|
||||
return lisp; }
|
||||
|
||||
static QQmlContext* rootContext() {
|
||||
QVariant var = eql_fun("qml:root-context", QMetaType::VoidStar);
|
||||
return Q_PTR(QQmlContext*, var); }
|
||||
|
||||
static QVariant qmlApply(QObject* caller, const QString& function, const QVariantList& arguments) {
|
||||
QVariant var =
|
||||
eql_fun("qml:qml-apply", QVariant::String,
|
||||
Q_ARG(QObject*, caller),
|
||||
Q_ARG(QString, function),
|
||||
Q_ARG(QVariantList, arguments));
|
||||
QString str(var.toString());
|
||||
if(str.startsWith("#<>")) { // prepared in Lisp for JS eval
|
||||
QQmlExpression exp(rootContext(), caller, str.mid(3));
|
||||
return exp.evaluate(); }
|
||||
return var; }
|
||||
|
||||
QVariant Lisp::call(const QJSValue& caller_or_function, const QJSValue& function_or_arg0,
|
||||
const QJSValue& arg1,
|
||||
const QJSValue& arg2,
|
||||
const QJSValue& arg3,
|
||||
const QJSValue& arg4,
|
||||
const QJSValue& arg5,
|
||||
const QJSValue& arg6,
|
||||
const QJSValue& arg7,
|
||||
const QJSValue& arg8,
|
||||
const QJSValue& arg9,
|
||||
const QJSValue& arg10,
|
||||
const QJSValue& arg11,
|
||||
const QJSValue& arg12,
|
||||
const QJSValue& arg13,
|
||||
const QJSValue& arg14,
|
||||
const QJSValue& arg15,
|
||||
const QJSValue& arg16) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arg0.toString(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
if(!function_or_arg0.isUndefined()) {
|
||||
arguments << function_or_arg0.toVariant(); }}
|
||||
if(!arg1.isUndefined()) {
|
||||
arguments << arg1.toVariant();
|
||||
if(!arg2.isUndefined()) {
|
||||
arguments << arg2.toVariant();
|
||||
if(!arg3.isUndefined()) {
|
||||
arguments << arg3.toVariant();
|
||||
if(!arg4.isUndefined()) {
|
||||
arguments << arg4.toVariant();
|
||||
if(!arg5.isUndefined()) {
|
||||
arguments << arg5.toVariant();
|
||||
if(!arg6.isUndefined()) {
|
||||
arguments << arg6.toVariant();
|
||||
if(!arg7.isUndefined()) {
|
||||
arguments << arg7.toVariant();
|
||||
if(!arg8.isUndefined()) {
|
||||
arguments << arg8.toVariant();
|
||||
if(!arg9.isUndefined()) {
|
||||
arguments << arg9.toVariant();
|
||||
if(!arg10.isUndefined()) {
|
||||
arguments << arg10.toVariant();
|
||||
if(!arg11.isUndefined()) {
|
||||
arguments << arg11.toVariant();
|
||||
if(!arg12.isUndefined()) {
|
||||
arguments << arg12.toVariant();
|
||||
if(!arg13.isUndefined()) {
|
||||
arguments << arg13.toVariant();
|
||||
if(!arg14.isUndefined()) {
|
||||
arguments << arg14.toVariant();
|
||||
if(!arg15.isUndefined()) {
|
||||
arguments << arg15.toVariant();
|
||||
if(!arg16.isUndefined()) {
|
||||
arguments << arg16.toVariant(); }}}}}}}}}}}}}}}}
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QVariant Lisp::apply(const QJSValue& caller_or_function,
|
||||
const QJSValue& function_or_arguments,
|
||||
const QJSValue& arguments_or_undefined) {
|
||||
QObject* caller = 0;
|
||||
QString function;
|
||||
QVariantList arguments;
|
||||
if(caller_or_function.isQObject()) {
|
||||
caller = caller_or_function.toQObject();
|
||||
function = function_or_arguments.toString();
|
||||
arguments = arguments_or_undefined.toVariant().value<QVariantList>(); }
|
||||
else if(caller_or_function.isString()) {
|
||||
function = caller_or_function.toString();
|
||||
arguments = function_or_arguments.toVariant().value<QVariantList>(); }
|
||||
return qmlApply(caller, function, arguments); }
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
#ifndef LIB_H
|
||||
#define LIB_H
|
||||
|
||||
#include <QtQml>
|
||||
#include <QQuickPaintedItem>
|
||||
#include <eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define LIB_EXPORT
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
extern "C" { LIB_EXPORT QObject* ini(); }
|
||||
|
||||
class Lisp : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Q_INVOKABLE QVariant call(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
|
||||
Q_INVOKABLE QVariant apply(const QJSValue&,
|
||||
const QJSValue& = QJSValue(),
|
||||
const QJSValue& = QJSValue());
|
||||
};
|
||||
|
||||
class EQLPaintedItem : public QQuickPaintedItem {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EQLPaintedItem(QQuickItem* parent = 0) : QQuickPaintedItem(parent) {}
|
||||
|
||||
void paint(QPainter* painter) {
|
||||
eql_fun("qml:paint",
|
||||
Q_ARG(QQuickPaintedItem*, this),
|
||||
Q_ARG(QPainter*, painter)); }
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
QT += qml quick
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = qml_lisp
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../../../../../src/windows.pri)
|
||||
}
|
||||
|
||||
HEADERS += qml_lisp.h
|
||||
SOURCES += qml_lisp.cpp
|
||||
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
(defun show-properties-dialog (&optional item)
|
||||
"Lists all instance properties of a QML item (either a QQuickItem or an 'objectName'). If no item is passed, QML:*CALLER* will be used."
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (%sym :show :properties)
|
||||
(or (if (stringp item)
|
||||
(qml:find-quick-item item)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
;;; * allows to get/set any QML property from Lisp (needs 'objectName' to be set)
|
||||
;;; * allows to evaluate JS code from Lisp (needs 'objectName' to be set)
|
||||
;;;
|
||||
;;; (requires a C++ plugin, see "lib/")
|
||||
|
||||
(defpackage :qml-lisp
|
||||
(:use :common-lisp :eql)
|
||||
|
|
@ -26,9 +25,8 @@
|
|||
|
||||
(in-package :qml-lisp)
|
||||
|
||||
(defvar *qml-lisp* (qload-c++ "lib/qml_lisp"))
|
||||
(defvar *caller* nil)
|
||||
(defvar *quick-view* nil)
|
||||
(defvar *caller* nil)
|
||||
|
||||
(defun string-to-symbol (name)
|
||||
(let ((upper (string-upcase name))
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
//exclude "*.*"
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <QtWidgets>
|
||||
#include <QtWebKitWidgets>
|
||||
#include <eql_fun.h>
|
||||
#include <eql5/eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
QT += webkitwidgets
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../src
|
||||
LIBS += -L../../../.. -leql5
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -L/usr/local/lib -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = webkit_bridge
|
||||
OBJECTS_DIR = ./tmp/
|
||||
|
|
@ -16,5 +16,6 @@ win32 {
|
|||
|
||||
HEADERS += _invokables.h \
|
||||
webkit_bridge.h
|
||||
|
||||
SOURCES += webkit_bridge.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <QtGui>
|
||||
#include <QtWebKit>
|
||||
#include <eql_fun.h>
|
||||
#include <eql5/eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
QT += webkitwidgets
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -L/usr/local/lib -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = webkit_bridge
|
||||
OBJECTS_DIR = ./tmp/
|
||||
|
|
@ -16,5 +16,6 @@ win32 {
|
|||
|
||||
HEADERS += _invokables.h \
|
||||
webkit_bridge.h
|
||||
|
||||
SOURCES += webkit_bridge.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <QtWidgets>
|
||||
#include <QtWebKitWidgets>
|
||||
#include <eql_fun.h>
|
||||
#include <eql5/eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
QT += webkitwidgets
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../../src
|
||||
LIBS += -L../../../../.. -leql5
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -L/usr/local/lib -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = webkit_bridge
|
||||
OBJECTS_DIR = ./tmp/
|
||||
|
|
@ -16,5 +16,6 @@ win32 {
|
|||
|
||||
HEADERS += _invokables.h \
|
||||
webkit_bridge.h
|
||||
|
||||
SOURCES += webkit_bridge.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <QtWidgets>
|
||||
#include <QtWebKitWidgets>
|
||||
#include <eql_fun.h>
|
||||
#include <eql5/eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
QT += webkitwidgets
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../src
|
||||
LIBS += -L../../../.. -leql5
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -L/usr/local/lib -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = webkit_bridge
|
||||
OBJECTS_DIR = ./tmp/
|
||||
|
|
@ -16,5 +16,6 @@ win32 {
|
|||
|
||||
HEADERS += _invokables.h \
|
||||
webkit_bridge.h
|
||||
|
||||
SOURCES += webkit_bridge.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "lib.h"
|
||||
#include "eql_fun.h"
|
||||
#include <eql5/eql_fun.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../src
|
||||
LIBS += -L../../../.. -leql5
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -L/usr/local/lib -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = easing_curve
|
||||
OBJECTS_DIR = ./tmp/
|
||||
|
|
@ -12,4 +12,5 @@ win32 {
|
|||
}
|
||||
|
||||
HEADERS += lib.h
|
||||
|
||||
SOURCES += lib.cpp
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
#undef SLOT
|
||||
|
||||
#include <ecl/ecl.h>
|
||||
#include "eql.h"
|
||||
#include <eql5/eql.h>
|
||||
#include <eql5/eql_fun.h>
|
||||
#include "main.h"
|
||||
|
||||
extern "C" void ini_app(cl_object);
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
#define MAIN_H
|
||||
|
||||
#include <QtWidgets>
|
||||
#include "eql_fun.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
QT += widgets
|
||||
TEMPLATE = app
|
||||
TEMPLATE = app
|
||||
CONFIG += no_keywords release
|
||||
INCLUDEPATH += ../../../../src
|
||||
LIBS += -lecl -L. -lstatic -L../../../.. -leql5
|
||||
TARGET = palindrome
|
||||
DESTDIR = ./
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -lecl -L. -lstatic -L/usr/local/include -leql5
|
||||
TARGET = palindrome
|
||||
DESTDIR = ./
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../../../../src/windows.pri)
|
||||
}
|
||||
|
||||
HEADERS += main.h
|
||||
|
||||
SOURCES += main.cpp
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
TEMPLATE = lib
|
||||
CONFIG += plugin release
|
||||
INCLUDEPATH += ../../../../src
|
||||
LIBS += -L../../../.. -leql5
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -L/usr/local/lib -leql5
|
||||
DESTDIR = ./
|
||||
TARGET = qimage
|
||||
OBJECTS_DIR = ./tmp/
|
||||
|
|
@ -12,4 +12,5 @@ win32 {
|
|||
}
|
||||
|
||||
HEADERS += lib.h
|
||||
|
||||
SOURCES += lib.cpp
|
||||
|
|
|
|||
|
|
@ -648,7 +648,7 @@
|
|||
(if gui "" (format nil "~%#include \"../_main_~(~A~)_methods.h\"" type))
|
||||
(if gui
|
||||
(format nil "~%#include \"../extras.h\"~
|
||||
~%#include \"../eql_global.h\"")
|
||||
~%#include \"../eql5/eql_global.h\"")
|
||||
(format nil "~%~A" (module-include module))))))
|
||||
(let* ((n 0)
|
||||
(methods (if (eql :q type) *q-methods* *n-methods*))
|
||||
|
|
@ -796,8 +796,8 @@
|
|||
~%#include \"_main_n_classes.h\"~
|
||||
~%#include \"_main_q_methods.h\"~
|
||||
~%#include \"_main_n_methods.h\"~
|
||||
~%#include \"../dyn_object.h\"~
|
||||
~%#include \"../eql.h\"~
|
||||
~%#include \"../eql5/dyn_object.h\"~
|
||||
~%#include \"../eql5/eql.h\"~
|
||||
~%~
|
||||
~%int LObjects::T_QAudioDeviceInfo = -1;~
|
||||
~%int LObjects::T_QList_QAudioDeviceInfo = -1;~
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
(in-package :gui)
|
||||
|
||||
(defconstant +history-file+ (in-home "gui/.command-history"))
|
||||
(defconstant +history-file+ (in-home "lib/.command-history"))
|
||||
(defconstant +max-history+ 50)
|
||||
|
||||
(defparameter * nil)
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
(defparameter *** nil)
|
||||
(defparameter *q* nil)
|
||||
|
||||
(defvar *gui* (qload-ui (in-home "gui/gui.ui")))
|
||||
(defvar *gui* (qload-ui (in-home "lib/gui.ui")))
|
||||
|
||||
(defvar-ui *gui*
|
||||
*display*
|
||||
|
|
@ -408,7 +408,7 @@
|
|||
|
||||
(defun show-properties-dialog ()
|
||||
(unless (find-package :properties)
|
||||
(load (in-home "gui/properties")))
|
||||
(load (in-home "lib/properties")))
|
||||
(funcall (find-symbol "SHOW" :properties) *q*))
|
||||
|
||||
(gui)
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
(in-package :properties)
|
||||
|
||||
(defvar *main* (qload-ui (in-home "gui/properties")))
|
||||
(defvar *main* (qload-ui (in-home "lib/properties")))
|
||||
|
||||
(defvar-ui *main*
|
||||
*meta-class-name*
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
#undef SLOT
|
||||
|
||||
#include <ecl/ecl.h>
|
||||
#include <eql5/eql.h>
|
||||
#include <QApplication>
|
||||
#include <QTextCodec>
|
||||
#include <QSettings>
|
||||
#include <QTranslator>
|
||||
#include "eql.h"
|
||||
|
||||
extern "C" void ini_app(cl_object);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
QT += widgets printsupport uitools
|
||||
TEMPLATE = app
|
||||
TEMPLATE = app
|
||||
CONFIG += no_keywords release
|
||||
INCLUDEPATH += ../src
|
||||
LIBS += -lecl -L. -lmy_lib -L.. -leql5
|
||||
TARGET = my_app
|
||||
DESTDIR = ./
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -lecl -L. -lmy_lib -L/usr/local/include -leql5
|
||||
TARGET = my_app
|
||||
DESTDIR = ./
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
win32 {
|
||||
include(../src/windows.pri)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
;;; This is a less convenient Slime mode using a REPL eval hook,
|
||||
;;; with the advantage of running all EQL functions natively.
|
||||
;;;
|
||||
;;; (See "thread-safe.lisp" for the default Slime mode.)
|
||||
;;; (See "../lib/thread-safe.lisp" for the default Slime mode.)
|
||||
|
||||
(in-package :eql)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// copyright (c) Polos Ruetz
|
||||
|
||||
#include "dyn_object.h"
|
||||
#include "eql5/dyn_object.h"
|
||||
#include "ecl_fun.h"
|
||||
#include "gen/_lobjects.h"
|
||||
#include <QMetaMethod>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
// copyright (c) Polos Ruetz
|
||||
|
||||
#include "ecl_fun.h"
|
||||
#include "eql.h"
|
||||
#include "dyn_object.h"
|
||||
#include "eql5/eql.h"
|
||||
#include "eql5/dyn_object.h"
|
||||
#include "gen/_lobjects.h"
|
||||
#include "ui_loader.h"
|
||||
#include "single_shot.h"
|
||||
|
|
@ -2433,14 +2433,11 @@ cl_object qrequire2(cl_object l_name, cl_object l_quiet) { /// qrequire
|
|||
/// (qrequire :network)
|
||||
ecl_process_env()->nvalues = 1;
|
||||
QString name = symbolName(l_name);
|
||||
QString prefix, postfix;
|
||||
#ifdef Q_OS_DARWIN
|
||||
prefix = "lib"; postfix = ".1.dylib";
|
||||
#endif
|
||||
#ifdef Q_OS_LINUX
|
||||
prefix = "lib"; postfix = ".so.1";
|
||||
#endif
|
||||
QLibrary lib(prefix + "eql5_" + name + postfix); // global library
|
||||
QString fileName = "eql5_" + name;
|
||||
QLibrary lib(fileName); // global library
|
||||
if(!lib.load()) {
|
||||
fileName.prepend("/usr/local/lib/"); // "local" might not be in library search path
|
||||
lib.setFileName(fileName); }
|
||||
typedef void (*Ini)();
|
||||
Ini ini = (Ini)lib.resolve("ini");
|
||||
if(ini) {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#undef SLOT
|
||||
|
||||
#include <ecl/ecl.h>
|
||||
#include "eql_global.h"
|
||||
#include "eql5/eql_global.h"
|
||||
#include <QList>
|
||||
#include <QUiLoader>
|
||||
#include <QByteArray>
|
||||
|
|
@ -304,7 +304,7 @@ struct EQL_EXPORT QtObject {
|
|||
};
|
||||
|
||||
// for Qt_EQL
|
||||
struct eql_pointer {
|
||||
struct EQL_EXPORT eql_pointer {
|
||||
void* pointer;
|
||||
int id;
|
||||
|
||||
|
|
|
|||
13
src/eql.cpp
13
src/eql.cpp
|
|
@ -1,13 +1,13 @@
|
|||
// copyright (c) Polos Ruetz
|
||||
|
||||
#include "eql.h"
|
||||
#include "eql5/eql.h"
|
||||
#include "ecl_fun.h"
|
||||
#include "gen/_lobjects.h"
|
||||
#include <QApplication>
|
||||
#include <QTimer>
|
||||
#include <QStringList>
|
||||
|
||||
const char EQL::version[] = "17.4.2"; // Apr 2017
|
||||
const char EQL::version[] = "17.4.3"; // Apr 2017
|
||||
|
||||
extern "C" void ini_EQL(cl_object);
|
||||
|
||||
|
|
@ -48,7 +48,6 @@ void EQL::exec(const QStringList& args) {
|
|||
bool exec_with_simple_restart = false;
|
||||
QStringList arguments(args);
|
||||
eval("(in-package :eql-user)");
|
||||
eval(QString("(eql::set-home \"%1\")").arg(home()).toLatin1().constData());
|
||||
QStringList forms;
|
||||
// .eclrc
|
||||
if(arguments.contains("-norc")) {
|
||||
|
|
@ -79,8 +78,8 @@ void EQL::exec(const QStringList& args) {
|
|||
arguments.removeAll("-qtpl");
|
||||
ecl_setq(ecl_process_env(), s_qtpl, Ct);
|
||||
QApplication::setQuitOnLastWindowClosed(false);
|
||||
forms << "(when (directory (in-home \"src/lisp/ecl-readline.fas*\"))"
|
||||
" (load (in-home \"src/lisp/ecl-readline\")))"
|
||||
forms << "(when (directory (in-home \"lib/ecl-readline.fas*\"))"
|
||||
" (load (x:check-recompile (in-home \"lib/ecl-readline\"))))"
|
||||
<< "(qsingle-shot 500 'eql::start-read-thread)";
|
||||
exec_with_simple_restart = true; }
|
||||
// -qgui
|
||||
|
|
@ -132,7 +131,6 @@ void EQL::exec(const QStringList& args) {
|
|||
|
||||
void EQL::exec(lisp_ini ini, const QByteArray& expression, const QByteArray& package) {
|
||||
// see my_app example
|
||||
eval(QString("(eql::set-home \"%1\")").arg(home()).toLatin1().constData());
|
||||
read_VV(OBJNULL, ini);
|
||||
eval(QString("(in-package :%1)").arg(QString(package)).toLatin1().constData());
|
||||
eval(expression.constData()); }
|
||||
|
|
@ -144,8 +142,7 @@ void EQL::exec(QWidget* widget, const QString& lispFile, const QString& slimeHoo
|
|||
bool exec_with_simple_restart = false;
|
||||
QStringList forms;
|
||||
eval("(in-package :eql)");
|
||||
forms << QString("(set-home \"%1\")").arg(home())
|
||||
<< QString("(defvar *qt-main* (qt-object %1 0 (qid \"%2\")))")
|
||||
forms << QString("(defvar *qt-main* (qt-object %1 0 (qid \"%2\")))")
|
||||
.arg((quintptr)widget)
|
||||
.arg(QString(LObjects::vanillaQtSuperClassName(widget->metaObject())))
|
||||
<< QString("(export '*qt-main*)")
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
#undef SLOT
|
||||
|
||||
#include <ecl/ecl.h>
|
||||
#include <eql5/dyn_object.h>
|
||||
#include <eql5/eql_global.h>
|
||||
#include <QObject>
|
||||
#include <QByteArray>
|
||||
#include <QStringList>
|
||||
#include <QCoreApplication>
|
||||
#include "dyn_object.h"
|
||||
#include "eql_global.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
QT += widgets printsupport uitools
|
||||
TEMPLATE = app
|
||||
CONFIG += no_keywords release
|
||||
INCLUDEPATH += ../src /usr/local/include
|
||||
LIBS += -lecl -leql5 -L.. -L/usr/local/lib
|
||||
TARGET = eql5
|
||||
DESTDIR = ../
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
QT += widgets printsupport uitools
|
||||
TEMPLATE = app
|
||||
CONFIG += no_keywords release
|
||||
INCLUDEPATH += ../src /usr/local/include
|
||||
LIBS += -lecl -leql5 -L.. -L/usr/local/lib
|
||||
TARGET = eql5
|
||||
DESTDIR = ../
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
QMAKE_RPATHDIR = /usr/local/lib
|
||||
target.path = /usr/local/bin
|
||||
INSTALLS += target
|
||||
|
||||
win32 {
|
||||
include(windows.pri)
|
||||
}
|
||||
|
||||
win32 {
|
||||
CONFIG += console
|
||||
}
|
||||
|
||||
SOURCES += main.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,18 @@
|
|||
QT += widgets printsupport uitools
|
||||
TEMPLATE = lib
|
||||
CONFIG += dll no_keywords release
|
||||
DEFINES += EQL_LIBRARY
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -lecl -lini -L. -L/usr/local/lib
|
||||
TARGET = eql5
|
||||
DESTDIR = ../
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
QT += widgets printsupport uitools
|
||||
TEMPLATE = lib
|
||||
CONFIG += dll no_keywords release
|
||||
DEFINES += EQL_LIBRARY
|
||||
INCLUDEPATH += /usr/local/include
|
||||
LIBS += -lecl -L. -lini_eql5
|
||||
TARGET = eql5
|
||||
DESTDIR = ../
|
||||
OBJECTS_DIR = ./tmp/
|
||||
MOC_DIR = ./tmp/
|
||||
|
||||
include.files = eql5/*
|
||||
include.path = /usr/local/include/eql5
|
||||
target.path = /usr/local/lib
|
||||
INSTALLS = include target
|
||||
|
||||
win32 {
|
||||
include(windows.pri)
|
||||
|
|
@ -18,15 +23,15 @@ HEADERS += gen/_lobjects.h \
|
|||
gen/_main_n_classes.h \
|
||||
gen/_main_q_methods.h \
|
||||
gen/_main_n_methods.h \
|
||||
eql_fun.h \
|
||||
eql5/eql.h \
|
||||
eql5/eql_fun.h \
|
||||
eql5/eql_global.h \
|
||||
eql5/dyn_object.h \
|
||||
qt_eql.h \
|
||||
dyn_object.h \
|
||||
ui_loader.h \
|
||||
single_shot.h \
|
||||
eql_global.h \
|
||||
ecl_fun.h \
|
||||
extras.h \
|
||||
eql.h
|
||||
extras.h
|
||||
|
||||
SOURCES += gen/_lobjects.cpp \
|
||||
qt_eql.cpp \
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
#include "_main_n_classes.h"
|
||||
#include "_main_q_methods.h"
|
||||
#include "_main_n_methods.h"
|
||||
#include "../dyn_object.h"
|
||||
#include "../eql.h"
|
||||
#include "../eql5/dyn_object.h"
|
||||
#include "../eql5/eql.h"
|
||||
|
||||
int LObjects::T_QAudioDeviceInfo = -1;
|
||||
int LObjects::T_QList_QAudioDeviceInfo = -1;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#undef SLOT
|
||||
|
||||
#include <ecl/ecl.h>
|
||||
#include "../eql_global.h"
|
||||
#include "../eql5/eql_global.h"
|
||||
#include "../ecl_fun.h"
|
||||
#include <QtWidgets>
|
||||
#include <QtPrintSupport>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
#include <QtWidgets>
|
||||
#include <QtPrintSupport>
|
||||
#include "../extras.h"
|
||||
#include "../eql_global.h"
|
||||
#include "../eql5/eql_global.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
#include <QtWidgets>
|
||||
#include <QtPrintSupport>
|
||||
#include "../extras.h"
|
||||
#include "../eql_global.h"
|
||||
#include "../eql5/eql_global.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "_ini.h"
|
||||
#include "../_lobjects.h"
|
||||
#include "../../eql.h"
|
||||
#include <eql5/eql.h>
|
||||
#include <QtGui>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "_ini.h"
|
||||
#include "../_lobjects.h"
|
||||
#include "../../eql.h"
|
||||
#include <eql5/eql.h>
|
||||
#include <QtGui>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "_ini.h"
|
||||
#include "../_lobjects.h"
|
||||
#include "../../eql.h"
|
||||
#include <eql5/eql.h>
|
||||
#include <QtGui>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@
|
|||
#define INI2_H
|
||||
|
||||
#include "_ini.h"
|
||||
#include "qml_lisp.h"
|
||||
#include "../_lobjects.h"
|
||||
#include "../../eql.h"
|
||||
#include <eql5/eql.h>
|
||||
#include <QtGui>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
|
@ -25,7 +26,8 @@ void ini2() {
|
|||
META_TYPE_(LObjects::T_QQmlProperty, QQmlProperty)
|
||||
META_TYPE_(LObjects::T_QQmlScriptString, QQmlScriptString)
|
||||
META_TYPE_(LObjects::T_QList_QQmlError, QList<QQmlError>)
|
||||
META_TYPE_(LObjects::T_QList_QQuickItem, QList<QQuickItem*>) }
|
||||
META_TYPE_(LObjects::T_QList_QQuickItem, QList<QQuickItem*>)
|
||||
iniQml(); }
|
||||
|
||||
void* toMetaArg(int n, cl_object l_arg, bool* found) {
|
||||
void* p = 0;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ static Lisp* lisp = 0;
|
|||
|
||||
static QObject* lisp_provider(QQmlEngine*, QJSEngine*) { return lisp; }
|
||||
|
||||
QObject* ini() {
|
||||
QObject* iniQml() {
|
||||
if(!lisp) {
|
||||
lisp = new Lisp;
|
||||
qmlRegisterSingletonType<Lisp>("EQL5", 1, 0, "Lisp", lisp_provider);
|
||||
|
|
@ -1,19 +1,18 @@
|
|||
#ifndef LIB_H
|
||||
#define LIB_H
|
||||
#ifndef QML_LISP_H
|
||||
#define QML_LISP_H
|
||||
|
||||
#include "../../ecl_fun.h"
|
||||
#include "../../qt_eql.h"
|
||||
#include <QtQml>
|
||||
#include <QQuickPaintedItem>
|
||||
#include <eql_fun.h>
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
#define LIB_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define LIB_EXPORT
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
extern "C" { LIB_EXPORT QObject* ini(); }
|
||||
#define Q_PTR(type, var) (eql_check_type(var.value<eql_pointer>().id, #type) \
|
||||
? (type)var.value<eql_pointer>().pointer \
|
||||
: 0)
|
||||
|
||||
QObject* iniQml();
|
||||
|
||||
class Lisp : public QObject {
|
||||
Q_OBJECT
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue