From 7b6ca76deca6c101e116b10e9e3fe72f1c3583a4 Mon Sep 17 00:00:00 2001 From: AnyOldName3 Date: Thu, 19 Apr 2018 23:34:48 +0100 Subject: [PATCH] Handle conversion for types IPluginModPage depends on --- src/runner/pythonrunner.cpp | 44 +++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/src/runner/pythonrunner.cpp b/src/runner/pythonrunner.cpp index 7fad240..44ddbcd 100644 --- a/src/runner/pythonrunner.cpp +++ b/src/runner/pythonrunner.cpp @@ -67,21 +67,6 @@ using namespace MOBase; namespace bpy = boost::python; -struct ModRepositoryFileInfo_to_python_dict -{ - static PyObject *convert(const ModRepositoryFileInfo &info) { - PyObject *res = PyDict_New(); - PyDict_SetItemString(res, "uri", bpy::incref(bpy::object(info.uri).ptr())); - PyDict_SetItemString(res, "name", bpy::incref(bpy::object(info.name).ptr())); - PyDict_SetItemString(res, "description", bpy::incref(bpy::object(info.description.toUtf8().constData()).ptr())); - PyDict_SetItemString(res, "categoryID", PyLong_FromLong(info.categoryID)); - PyDict_SetItemString(res, "fileID", PyLong_FromLong(info.fileID)); - PyDict_SetItemString(res, "fileSize", PyLong_FromLong(static_cast(info.fileSize))); - PyDict_SetItemString(res, "version", bpy::incref(bpy::object(info.version).ptr())); - return bpy::incref(res); - } -}; - struct QString_to_python_str { @@ -461,10 +446,12 @@ template <> struct MetaData { static const char *className template <> struct MetaData { static const char *className() { return "QObject"; } }; template <> struct MetaData { static const char *className() { return "QObject"; } }; template <> struct MetaData { static const char *className() { return "QWidget"; } }; +template <> struct MetaData { static const char *className() { return "QDateTime"; } }; template <> struct MetaData { static const char *className() { return "QDir"; } }; template <> struct MetaData { static const char *className() { return "QFileInfo"; } }; template <> struct MetaData { static const char *className() { return "QIcon"; } }; template <> struct MetaData { static const char *className() { return "QStringList"; } }; +template <> struct MetaData { static const char *className() { return "QUrl"; } }; template <> struct MetaData { static const char *className() { return "QVariant"; } }; @@ -775,11 +762,13 @@ BOOST_PYTHON_MODULE(mobase) QString_from_python_str(); //QClass_converters(); + QClass_converters(); QClass_converters(); QClass_converters(); QClass_converters(); QClass_converters(); QClass_converters(); + QClass_converters(); QInterface_converters(); @@ -910,6 +899,29 @@ BOOST_PYTHON_MODULE(mobase) .def("requestToggleEndorsement", bpy::pure_virtual(&IModRepositoryBridge::requestToggleEndorsement)) ; + bpy::class_("ModRepositoryFileInfo") + .def(bpy::init()) + .def(bpy::init>()) + .def("toString", &ModRepositoryFileInfo::toString) + .def("createFromJson", &ModRepositoryFileInfo::createFromJson).staticmethod("createFromJson") + .def_readwrite("name", &ModRepositoryFileInfo::name) + .def_readwrite("uri", &ModRepositoryFileInfo::uri) + .def_readwrite("description", &ModRepositoryFileInfo::description) + .def_readwrite("version", &ModRepositoryFileInfo::version) + .def_readwrite("newestVersion", &ModRepositoryFileInfo::newestVersion) + .def_readwrite("categoryID", &ModRepositoryFileInfo::categoryID) + .def_readwrite("modName", &ModRepositoryFileInfo::modName) + .def_readwrite("gameName", &ModRepositoryFileInfo::gameName) + .def_readwrite("modID", &ModRepositoryFileInfo::modID) + .def_readwrite("fileID", &ModRepositoryFileInfo::fileID) + .def_readwrite("fileSize", &ModRepositoryFileInfo::fileSize) + .def_readwrite("fileName", &ModRepositoryFileInfo::fileName) + .def_readwrite("fileCategory", &ModRepositoryFileInfo::fileCategory) + .def_readwrite("fileTime", &ModRepositoryFileInfo::fileTime) + .def_readwrite("repository", &ModRepositoryFileInfo::repository) + .def_readwrite("userData", &ModRepositoryFileInfo::userData) + ; + bpy::class_("IDownloadManager") .def("startDownloadURLs", bpy::pure_virtual(&IDownloadManager::startDownloadURLs)) .def("startDownloadNexusFile", bpy::pure_virtual(&IDownloadManager::startDownloadNexusFile)) @@ -1095,7 +1107,7 @@ BOOST_PYTHON_MODULE(mobase) GuessedValue_converters(); - bpy::to_python_converter(); + //bpy::to_python_converter(); QList_from_python_obj(); QList_from_python_obj();