54 Commits
Author SHA1 Message Date
AnyOldName3 c5d4857f47 Make functor converter variadic
Duplicating code three times is silly.
2020-04-16 00:56:57 +01:00
AnyOldName3 5825661a4f Only initialise Python once
When switching instances, the Python runner gets another initPython call, despite the previous interpreter existing. Most of the function was either a no-op or was redundant, and the GIL state got confusing. This is the simplest fix.

If things catch fire that I haven't anticipated, instead of returning true, we can destroy the pre-existing interpreter and create a new one by running the rest of the function.
2020-04-16 00:53:29 +01:00
AnyOldName3 2e13cf0dab Ensure we relinquish the GIL after initialising Python and have it when destroying callables 2020-04-15 17:01:28 +01:00
AnyOldName3 63a6c504b0 Restore logging of historically-logged Python exceptions. 2019-07-22 00:08:35 +01:00
AnyOldName3 19dcdd95c0 Prevent PyQt from using its buggy exception logging by making it look like we're using custom exception handling. 2019-07-15 20:04:44 +01:00
AnyOldName3 ac5540ba87 Forward Python stdout and stderr to qDebug and qCritical 2019-07-15 20:02:18 +01:00
AnyOldName3 e280b07cb6 Correctly use SIP to transfer ownership of objects from Python to C++ 2019-06-01 00:59:39 +01:00
AnyOldName3 f841a3b13a Add support for the default (invalid) QVariant 2018-09-19 22:52:40 +01:00
AnyOldName3 60701b6ba0 Add forgotten PyDict_Check 2018-09-19 22:36:11 +01:00
AnyOldName3 a8cf8d45f3 Fix typo preventing IOrganizer::setPluginSetting from being used in Python 2018-09-19 22:16:50 +01:00
AnyOldName3 84c04c32dc Add missing PyUnicode_Check which prevented QVariants being created from Python 3 strings 2018-09-19 21:45:42 +01:00
AnyOldName3 b70fa8174e Add support for free plugins which don't implement any specialised interface 2018-08-15 15:34:08 +01:00
AnyOldName3 00c38f5f03 Remove superfluous template parameter specification to shrink lines to a more readable length. 2018-05-03 22:22:32 +01:00
AnyOldName3 8919fbd351 Use new template for game features wrappers. 2018-05-03 22:19:55 +01:00
AnyOldName3 ec4945db3e Use new template for (non-pointless) uibase wrappers. 2018-05-03 22:02:06 +01:00
AnyOldName3 9f975b92b2 Create template for wrapper functions and add helpful error message. Use this for plugin wrappers. 2018-05-03 21:56:23 +01:00
AnyOldName3 7ab4b71ed3 Return a plugin as multiple (differently-typed) instances to work around multiple inheritance issues 2018-05-02 17:24:09 +01:00
AnyOldName3 94886104f3 Prevent the C++ part of PyQt objects being deleted while the Python component is still accessible. 2018-05-02 00:19:29 +01:00
AnyOldName3 902024e508 Add Game Features support 2018-04-25 17:25:12 +01:00
AnyOldName3 0a9b4b9fc4 Change the capitalisation of sipapiaccess.h to make it consistent with other files 2018-04-22 15:39:09 +01:00
AnyOldName3 028c14a951 Add missing include guard to sipApiAccess.h 2018-04-22 15:37:29 +01:00
AnyOldName3 bf8f427cd8 Move sipAPI getter function to a shared header so it isn't duplicated. 2018-04-22 00:59:42 +01:00
AnyOldName3 8fe091ab48 Implement IPluginProxy bindings. 2018-04-22 00:34:59 +01:00
AnyOldName3 8877fee4fa Implement IpluginModPage bindings. 2018-04-20 16:40:39 +01:00
AnyOldName3 f13a5961df Align ModRepositoryFileInfo indentation 2018-04-20 16:40:39 +01:00
AnyOldName3 7b6ca76dec Handle conversion for types IPluginModPage depends on 2018-04-20 16:40:39 +01:00
AnyOldName3 a35208d902 Improve QVariant conversion and generalise QMap conversion 2018-04-20 16:40:39 +01:00
AnyOldName3 4feb06a099 Add IPluginFileMapper Wrapper and bindings. 2018-04-20 16:40:39 +01:00
AnyOldName3 0abbab9f8c Add missing parts of IOrganizer bindings 2018-04-20 16:40:39 +01:00
AnyOldName3 86d859d430 Allow anonymous Python functions to return values 2018-04-20 16:40:38 +01:00
AnyOldName3 5a730941db Implement wrapper and bindings for IPluginDiagnose 2018-04-20 16:40:38 +01:00
AnyOldName3 c70f78adfe Reduce code duplication by moving common implementation to macros 2018-04-20 16:40:38 +01:00
AnyOldName3 e8af8819df Add PYCATCH missed when rebasing 2018-04-20 16:40:38 +01:00
AnyOldName3 de809c6d57 Fix simple errors with IPluginGame proxy and add warning when the unimplemented part is encountered 2018-04-20 16:40:38 +01:00
AnyOldName3 01168483c5 handle errors in Python game plugins 2018-04-20 16:40:38 +01:00
AnyOldName3 317f13177e Move IPluginGameWrapper's mentod implementations into the cpp file 2018-04-20 16:40:38 +01:00
AnyOldName3 c47b94d534 Restore indentation which rearraging things broke 2018-04-20 16:40:38 +01:00
AnyOldName3 ca51a53d41 Make IPluginGameWrapper into a class and include the necessary Qt annotations 2018-04-20 16:40:38 +01:00
AnyOldName3 9722d5b093 Move IPluginGameWrapper to proxypluginwrappers.h as it's a wrapper for a plugin. 2018-04-20 16:40:38 +01:00
AnyOldName3 2df983e22c Create ExecutableInfo interface 2018-04-20 16:40:38 +01:00
AnyOldName3 52417d64e4 Implement missing handling for QFileInfo 2018-04-20 16:40:38 +01:00
AnyOldName3 4a558d4caf Implement from_python handling for QStringList 2018-04-20 16:40:38 +01:00
AnyOldName3 8dd9a710b4 Replace wrong QDir converter 2018-04-20 16:40:38 +01:00
AnyOldName3 377199f233 Put plugin wrappers in alphabetical order 2018-04-20 16:40:38 +01:00
AnyOldName3 e277c9b56b Add missing comparison operators and functions for MOBase::VersionInfo 2018-04-12 01:16:27 +01:00
AnyOldName3 d8ad6569ba remove dead include 2018-04-11 17:27:23 +01:00
AnyOldName3 e08b8be570 Remove dead code 2018-04-11 17:12:27 +01:00
AnyOldName3 aca861194d Update .gitignore with msbuild stuff 2018-04-11 17:10:55 +01:00
AnyOldName3 f3fa0baa41 Make indentation consistent 2018-03-17 00:35:59 +00:00
AnyOldName3 9a3465cc7a Register converters for all remaining uses of QFlags in the Python wrappers 2018-03-17 00:19:45 +00:00
AnyOldName3 277a2862b1 Make QFlags conversion bidirectional and register the converter for more uses of QFlags 2018-03-17 00:05:17 +00:00
AnyOldName3 af7823b920 Register some functions which Tannin created wrappers for, but omitted to make accessible from Python 2018-03-16 17:03:48 +00:00
AnyOldName3 10437e0aca Allow conversion of any unicode sequence into a QString 2018-03-16 00:32:21 +00:00
AnyOldName3 425ec8df5a Add support for converting Python unicode strings to QStrings 2018-03-15 21:21:23 +00:00