cutter/src/common/PythonManager.h

46 lines
861 B
C
Raw Normal View History

2018-06-23 16:59:23 +00:00
#ifndef PYTHONMANAGER_H
#define PYTHONMANAGER_H
#include <QObject>
class CutterPythonPlugin;
typedef struct _ts PyThreadState;
typedef struct _object PyObject;
class PythonManager: public QObject
2018-06-23 16:59:23 +00:00
{
Q_OBJECT
2018-06-23 16:59:23 +00:00
public:
static PythonManager *getInstance();
PythonManager();
~PythonManager();
void setPythonHome(const QString &pythonHome) { customPythonHome = pythonHome; }
2018-06-23 16:59:23 +00:00
void initPythonHome();
void initialize();
void addPythonPath(char *path);
2018-06-24 09:51:16 +00:00
CutterPythonPlugin *loadPlugin(const char *pluginName);
2018-06-23 16:59:23 +00:00
2018-06-24 09:51:16 +00:00
void restoreThread();
void saveThread();
2018-06-23 16:59:23 +00:00
signals:
void willShutDown();
2018-06-23 16:59:23 +00:00
private:
QString customPythonHome;
wchar_t *pythonHome = nullptr;
PyThreadState *pyThreadState = nullptr;
PyObject *cutterPluginModule;
};
#define Python() (PythonManager::getInstance())
#endif // PYTHONMANAGER_H