Untitled

 avatar
unknown
c_cpp
2 years ago
1.3 kB
3
Indexable
#include "kernel.h"
#include "documentwrapper.h"
#include "edgewrapper.h"
#include "logging_p.h"
#include "nodewrapper.h"

#include <KLocalizedString>
#include <QScriptEngineDebugger>

using namespace GraphTheory;

class ConsoleModule
{
public:
    ConsoleModule() {}
    ~ConsoleModule() {}

    void message(const QString &messageString)
    {
        Q_EMIT message(messageString, InfoMessage);
    }

signals:
    void message(const QString &messageString, MessageType type);
};

class QScriptEngineWrapper
{
public:
    QScriptEngineWrapper()
        : m_engine(new QScriptEngine)
        , m_debugger(new QScriptEngineDebugger)
    {}

    ~QScriptEngineWrapper()
    {
        m_debugger->detach();
    }

    QScriptValue registerGlobalObject(QObject *qobject, const QString &name)
    {
        if (!m_engine) {
            qCCritical(GRAPHTHEORY_KERNEL) << "No engine set, aborting global object creation.";
            return 0;
        }
        QScriptValue globalObject = m_engine->newQObject(qobject);
        m_engine->globalObject().setProperty(name, globalObject);

        return globalObject;
    }

    QScriptEngine *m_engine;
    QScriptEngineDebugger *m_debugger;
};

class Kernel : public IKernel,
Editor is loading...