+++ /dev/null
-// python.cpp
-//
-// Part of the Architektonas Project
-// Originally part of QCad Community Edition by Andrew Mustun
-// Extensively rewritten and refactored by James L. Hammons
-// Portions copyright (C) 2001-2003 RibbonSoft
-// Copyright (C) 2010 Underground Software
-// See the README and GPLv2 files for licensing and warranty information
-//
-// JLH = James L. Hammons <jlhamm@acm.org>
-//
-// Who When What
-// --- ---------- -----------------------------------------------------------
-// JLH 06/02/2010 Added this text. :-)
-//
-
-#include "python.h"
-
-#ifdef RS_OPT_PYTHON
-
-//
-// This is exported from the Boost::Python library declarations
-// that are declared inside rs_python_wrappers.cpp.
-//
-extern "C" void initqcad();
-
-/**
- * The unique instance of the Python scripting engine
- */
-RS_Python* RS_Python::uniqueInstance = NULL;
-
-/**
- * Constructor
- */
-RS_Python::RS_Python()
-{
- graphic = NULL;
- Py_Initialize();
- initqcad();
-}
-
-/**
- * Gets the one and only RS_Python instance
- * (creates a new one on first call only)
- *
- * @return Pointer to the single instance of this
- * singleton class
- */
-RS_Python* RS_Python::instance() {
- if(uniqueInstance==NULL) {
- uniqueInstance = new RS_Python;
- }
- return uniqueInstance;
-}
-
-
-/**
- * Launches the given script.
- */
-int RS_Python::launch(const QString& script) {
- PyObject *modname, *mod, *mdict, *func, *rslt;
- //Py_SetProgramName(argv[0]);
-
- modname = PyString_FromString(script);
- mod = PyImport_Import(modname);
- if (mod) {
- //printf( "mod\n");
- mdict = PyModule_GetDict(mod);
-
- // Borrowed reference to start function
- func = PyDict_GetItemString(mdict, "start");
- if (func) {
- //printf( "func\n");
- if (PyCallable_Check(func)) {
- //printf("calling..\n");
- rslt = PyObject_CallFunction(func, "(s)", "noparam");
- //printf("calling ok\n");
- if (rslt) {
- // The result value is currently not used
- Py_XDECREF(rslt);
- } else
- {
- // Give user some feed back what went wrong
- printf("*** PYTHON RUNTIME ERROR ***\n");
- PyErr_Print();
- }
- }
- } else {
- printf("no such function: start\n");
- }
- Py_XDECREF(mod);
- } else {
- printf("*** ERROR LOADING SCRIPT '%s' ***\n", script.latin1());
- PyErr_Print();
- }
- Py_XDECREF(modname);
- //Py_Finalize();
- return 0;
-}
-
-#endif