void ZebulonWindow::reloadAll(){ reloadClassrooms(); reloadGroups(); reloadStudents(); reloadModules(); reloadQTimeSlots(); }
void PythonPlugin::initialize() { addObject(&mLogger); if (!Py_IsInitialized()) { // PEP370 Py_NoSiteFlag = 1; Py_NoUserSiteDirectory = 1; Py_Initialize(); inittiled(); // Get reference to base class to find its extensions later on PyObject *pmod = PyImport_ImportModule("tiled"); if (pmod) { PyObject *tiledPlugin = PyObject_GetAttrString(pmod, "Plugin"); Py_DECREF(pmod); if (tiledPlugin) { if (PyCallable_Check(tiledPlugin)) { mPluginClass = tiledPlugin; } else { Py_DECREF(tiledPlugin); } } } if (!mPluginClass) { log(Tiled::LoggingInterface::ERROR, "Can't find tiled.Plugin baseclass\n"); handleError(); return; } // w/o differentiating error messages could just rename "log" // to "write" in the binding and assign plugin directly to stdout/stderr PySys_SetObject((char *)"_tiledplugin", _wrap_convert_c2py__Tiled__LoggingInterface(&mLogger)); PyRun_SimpleString("import sys\n" "#from tiled.Tiled.LoggingInterface import INFO,ERROR\n" "class _Catcher:\n" " def __init__(self, type):\n" " self.buffer = ''\n" " self.type = type\n" " def write(self, msg):\n" " self.buffer += msg\n" " if self.buffer.endswith('\\n'):\n" " sys._tiledplugin.log(self.type, self.buffer)\n" " self.buffer = ''\n" "sys.stdout = _Catcher(0)\n" "sys.stderr = _Catcher(1)\n"); PyRun_SimpleString(QString("import sys; sys.path.insert(0, \"%1\")") .arg(mScriptDir).toUtf8().constData()); log(QString("-- Added %1 to path\n").arg(mScriptDir)); } reloadModules(); if (QFile::exists(mScriptDir)) { mFileSystemWatcher.addPath(mScriptDir); connect(&mFileSystemWatcher, SIGNAL(directoryChanged(QString)), &mReloadTimer, SLOT(start())); } }