1
0
mirror of https://github.com/thp/pyotherside.git synced 2025-01-28 23:52:55 +08:00

69 Commits

Author SHA1 Message Date
Thomas Perl
bbe98ae3ec Fix deadlock issues and GIL state handling 2014-10-08 14:05:25 +02:00
Thomas Perl
76bd73c370 Assignment operator for PyObjectRef + test 2014-10-08 13:34:38 +02:00
Thomas Perl
4619b95040 Add getattr() and callMethod() tests to test_wrapped 2014-10-08 13:00:08 +02:00
Thomas Perl
cc7bc11595 Converter: Only use PyObjectRef, add tests
The converter shouldn't need to deal with PyObject * itself, but use
only PyObjectRef, which takes care of reference already.

Make the GIL state management easier to read.

Add a small test that shows how to pass Python objects to/from QML.
2014-10-08 12:51:37 +02:00
Dennis Tomas
806400caeb Consistent refcounting behaviour when converting object references. 2014-10-06 14:02:57 +02:00
Dennis Tomas
bc19707704 Test round-trip of PyObjectRef. 2014-10-06 13:53:56 +02:00
Dennis Tomas
d5dc5060c1 Fixed reference leaks in callMethod_sync() and getattr(). 2014-10-01 13:11:07 +02:00
Dennis Tomas
4f5edd7247 Access attributes of Python objects. 2014-09-30 18:23:43 +02:00
Dennis Tomas
ff0d915cf2 Calling methods on Python objects. 2014-09-30 18:22:47 +02:00
Dennis Tomas
9ed645cb0d Removed QMutex in QPythonPriv. 2014-09-30 18:16:43 +02:00
Felix Krull
53a78e0097 Wrap generic PyObjects in an opaque value that can be passed to/from QML safely. 2014-08-16 23:36:14 +02:00
Felix Krull
e61c6fac79 Use PyGILState_{Ensure,Release} to play well with recursive GIL acquisitions. 2014-08-16 22:28:15 +02:00
Felix Krull
68c5c5b95e Use QMetaType::Type values instead of obsolete QVariant::Type. 2014-08-16 22:28:15 +02:00
Felix Krull
1404fc8b95 Fix some reference leaks. 2014-08-14 20:56:16 +02:00
Thomas Perl
f870396346 PyOtherSide 1.3.0 1.3.0 2014-07-24 14:49:13 +02:00
Thomas Perl
d070a172d7 Documentation: Show how to avoid callback hell in JS. Fixes #24 2014-07-19 09:53:41 +02:00
Thomas Perl
481400b53d Convert Python set and iterable to JS Array 2014-06-10 18:06:22 +02:00
Thomas Perl
4548e7a2bd Windows: Fix builds on Windows, build docs. Fixes #10 2014-02-24 19:39:27 +01:00
Thomas Perl
d3c739ad7a Expose module version via Python module 2014-02-19 22:09:52 +01:00
Thomas Perl
87007e0b07 QRC code finally broke Python 2.x support, remove it
It was always scheduled to be removed once new features that use Python
3-only features are introduced (we could have written a separate
importer for Python 2, but it is explicitly a goal of the project).
2014-02-17 18:49:48 +01:00
Thomas Perl
5c8d9cfe57 QML API 1.3: Add support for qrc:/ import paths. Fixes #2 2014-02-16 22:25:38 +01:00
Thomas Perl
ea0bc3433c Access to the Qt Resource System from Python 2014-02-16 20:15:50 +01:00
Thomas Perl
87e5eaf470 PyOtherSide 1.2.0 1.2.0 2014-02-16 19:27:30 +01:00
Thomas Perl
e201eecfff Converter: Support for date, time and datetime. Fixes #12
Python datetime.date <-> Qt QDate <-> QML date
Python datetime.time <-> Qt QTime <-> QML time
Python datetime.datetime <-> Qt QDateTime <-> JS Date

Python C API docs for those data types:
http://docs.python.org/3/c-api/datetime.html

QML docs for those data types:
http://qt-project.org/doc/qt-5.1/qtqml/qtqml-cppintegration-data.html#qdatetime-to-javascript-date
http://qt-project.org/doc/qt-5.1/qtqml/qml-date.html
http://qt-project.org/doc/qt-5.1/qtqml/qml-time.html
2014-02-13 00:04:48 +01:00
Thomas Perl
4028d4f3b8 QML API 1.2: Handle JS exceptions in callbacks from Python
Also improve error message in pyotherside.send() callback handler
to include filename and line number.
2014-02-12 23:02:57 +01:00
Thomas Perl
b47ef00c02 Docs: QML import examples should always use latest API version 2014-02-09 17:01:11 +01:00
Thomas Perl
270d67fe78 Fix building with GCC 4.6 on Ubuntu
const-ness fix for the call to PyImport_ImportModuleEx and
rename major/minor to avoid clashes on some systems due to
sysmacros.h #define'ing minor and major.
2014-02-09 15:25:41 +01:00
Thomas Perl
28d5e9289c QML API 1.2: Fix importModule() behavior. Fixes #3
This changes the behavior of an existing function, so we need to
bump the QML import version to still support code that depends on
the old (broken) behavior of the importModule() function.
2014-02-08 15:29:02 +01:00
Thomas Perl
cb593f5980 PyOtherSide 1.1.0 1.1.0 2014-02-06 22:57:09 +01:00
Thomas Perl
aaecf7b195 Fix typos in the documentation 2014-02-06 22:53:51 +01:00
Thomas Perl
2d6a666b52 Project file: add "sdist" target to create source tarball 2014-02-06 22:50:48 +01:00
Thomas Perl
be1edb6b5c New methods: pluginVersion() and pythonVersion() 2014-02-06 22:49:43 +01:00
Thomas Perl
da02a1ce9b Update documentation with version changelog and markup fixes 2014-02-06 22:19:59 +01:00
Thomas Perl
2a79458c68 addImportPath: Strip leading "file://" (for use with Qt.resolvedUrl())
Also update examples to use the new feature.
2014-02-06 21:56:52 +01:00
Thomas Perl
c9934cb2fc Restructure examples 2014-02-06 21:31:24 +01:00
Thomas Perl
71049fc5d7 Cleanup documentation, packaging and file structure 2014-02-06 21:17:04 +01:00
Thomas Perl
44f03f237e Remove obsolete Doxyfile and non-upstream packaging 2014-02-06 21:16:38 +01:00
Thomas Perl
ae8145e5ef Add Sphinx-based Developer Guide documentation 2014-02-06 00:28:18 +01:00
Thomas Perl
42e9b4ef2f New example: Populating list models from Python 2014-02-06 00:27:49 +01:00
Thomas Perl
5b77464a3e [packaging] Fix problems with QJSValue thread access packaging/1.0.0-9 2014-02-05 00:02:51 +01:00
Thomas Perl
c765bf3d03 Don't pass QJSValue by value between different threads
This also avoids having additional signals when the callback isn't
a callable by not creating a QJSValue referencing the callback.
2014-02-04 22:13:05 +01:00
Thomas Perl
a621f8c8ec Set object name on thread 2014-02-04 21:14:00 +01:00
Thomas Perl
9324ab3238 Happy New Year 2014-02-04 21:00:48 +01:00
Thomas Perl
ecdb478dd4 Add packaging material for Fedora
This makes it easy to build a development RPM package for using
PyOtherSide on a Fedora machine. This it not intended to build
source tarballs, releases or .spec files for proper distribution
packages, but rather as convenience during development from Git.
2014-01-31 11:57:30 +01:00
Thomas Perl
6a3264f290 Update URL in .spec file 2014-01-31 11:42:20 +01:00
Thomas Perl
6567f9e8b9 Error handling when using call() without a parameter list 2014-01-20 19:57:01 +01:00
Thomas Perl
2642910c08 Fix const-ness in global_libpython_loader 2014-01-20 19:29:19 +01:00
Thomas Perl
c659fa7722 Merge pull request #7 from thp/load-libpython-globally
Load libpython globally on Linux distributions
2014-01-20 10:20:58 -08:00
Thomas Perl
53273dad50 Check JS callback errors. Fixes #9
Thanks to Osmo Salomaa for the original report and test case.
2014-01-20 19:09:57 +01:00
Thomas Perl
bbe94ecfd9 [packaging] Better error handling packaging/1.0.0-8 2014-01-06 13:06:29 +01:00