SXXXXXXX_PyBusMonitor1553/cpp/GrifoScope/QgScope/qgscopepython.cpp
2025-12-17 07:59:30 +01:00

125 lines
3.0 KiB
C++

#include "qgscopepython.h"
#include "qgscopeworkbench.h"
#include "qgpythonsandbox.h"
#include "qgpythonconsoledockwidget.h"
#include "qglogger.h"
//#include "qgpython.h"
#include "qgscopechrono.h"
class QgScopePythonAdaptor: public QgScopeScriptSiteAdaptor
{
public:
virtual void registerObject(const QString& name, QObject* obj)
{
QgScopeScriptSiteAdaptor::registerObject(name, obj);
}
};
QgScopePython::QgScopePython(QObject *parent) : QObject(parent)
{
}
void QgScopePython::activate()
{
QgPythonSandbox::enable(true);
QgPythonSandbox::loadSettings();
QgPythonSandbox sb;
QgScopeWorkbench& wb=QgScopeWorkbench::instance();
if (sb.isEnabled())
wb.mainWindow()->addDockWidget(Qt::BottomDockWidgetArea, new QgPythonConsoleDockWidget);
wb.setScriptSiteAdptor(pythonScriptAdaptor());
//QgPython::instance().mainModule().addObject("chrono", &QgScopeChrono::instance());
sb.addObject("chrono", &QgScopeChrono::instance());
//QgPython::instance().mainModule().addObject("wb", &wb);
sb.addObject("wb", &wb);
}
void QgScopePython::createApplicationMainModule(const QString& moduleName)
{
//QgPython::instance().createMainApplicationModule(moduleName);
QgPythonSandbox sb;
sb.createAppModule(moduleName);
}
QgScopeScriptSiteAdaptor* QgScopePython::pythonScriptAdaptor()
{
static QgScopePythonAdaptor pyAdaptor;
return &pyAdaptor;
}
void QgScopeScriptSiteAdaptor::registerObject(const QString& name, QObject* obj)
{
QgLogger logger("PYSCOPE");
//QgPython::instance().mainModule().addObject(name, obj);
QgPythonSandbox sb;
sb.addObject(name, obj);
logger.info("Registered object: "+name);
}
#if 0
#include "qgscopepython.h"
#include "qgscopeworkbench.h"
#include "qgpythonconsoledockwidget.h"
#include "qglogger.h"
#include "qgpython.h"
#include "qgscopechrono.h"
class QgScopePythonAdaptor: public QgScopeScriptSiteAdaptor
{
public:
virtual void registerObject(const QString& name, QObject* obj)
{
QgScopeScriptSiteAdaptor::registerObject(name, obj);
}
};
QgScopePython::QgScopePython(QObject *parent) : QObject(parent)
{
}
void QgScopePython::activate()
{
QgScopeWorkbench& wb=QgScopeWorkbench::instance();
wb.mainWindow()->addDockWidget(Qt::BottomDockWidgetArea, new QgPythonConsoleDockWidget);
wb.setScriptSiteAdptor(pythonScriptAdaptor());
QgPython::instance().mainModule().addObject("chrono", &QgScopeChrono::instance());
QgPython::instance().mainModule().addObject("wb", &wb);
}
void QgScopePython::createApplicationMainModule(const QString& moduleName)
{
QgPython::instance().createMainApplicationModule(moduleName);
}
QgScopeScriptSiteAdaptor* QgScopePython::pythonScriptAdaptor()
{
static QgScopePythonAdaptor pyAdaptor;
return &pyAdaptor;
}
void QgScopeScriptSiteAdaptor::registerObject(const QString& name, QObject* obj)
{
QgLogger logger("PYSCOPE");
QgPython::instance().mainModule().addObject(name, obj);
logger.info("Registered object: "+name);
}
#endif