Commit graph

387 commits

Author SHA1 Message Date
therecipe
ca87f3552e some minor fixes 2020-08-19 20:46:07 +02:00
therecipe
6e46af7da5 fixes for Qt 5.15 and Go 1.15 2020-08-18 15:25:15 +02:00
therecipe
494d2f8c1e cgo-less interop related changes 2020-08-17 18:37:48 +02:00
therecipe
589db8f837 fix CI 2020-08-15 02:55:52 +02:00
therecipe
77936453f6 minor go interop related changes 2020-08-14 02:34:04 +02:00
therecipe
80c87e74d4 minor go interop related changes 2020-08-12 22:10:58 +02:00
therecipe
b44a7874e0 fix qtmoc go object related issues + initial support for the go interop wrapper to allow cgo-less usage of therecipe/qt 2020-08-12 14:39:11 +02:00
therecipe
7f61353ee7 add support for haxe and swift + fix interop stack overflow issue
* fix unsafe pointer arithmetic issues
2020-07-01 22:05:31 +02:00
therecipe
66b61001d1 more CI fixes + fixes for msys2 + fixes for flutter deployments + minor example changes 2020-06-05 20:45:20 +02:00
therecipe
4e7b8703b1 initial commit of the interop engine + new flutter module + fixes for minor issues
this commit introduces the new experimental `interop` module, which is used to allow the use of `therecipe/qt` from languages other than go or javascript.
as a start, there was support for the dart language added (currently only in combination with a custom flutter embedder engine, but plain dart support should follow soon).
the interop module makes great use of the qml/js interop functions and logic that were written to make `https://github.com/therecipe/entry` possible.
additional languages that are planned to be supported in the near future are: swift, kotlin and haxe (maybe with support for the c#, python and java targets, but if this isn't possible in some clean way then these languages will receive standalone bindings as well).
people using `therecipe/qt` from these new languages should then be able to use flutter (and dart) in combination with qt (and go/js) through this binding and also be able to easily communicate across the language barriers with the help of the interop functions.
the interop engine theoretically also makes a cgo-less `therecipe/qt` usage possible, which could be used to workaround the ever growing annoyances that are experienced when using cgo projects in combination with go modules.
the code for the custom flutter embedder that was created to make the flutter/dart binding work can be found in the `flutter` module. it currently only supports debug builds for the desktop targets, but if there is enough interest, then it shouldn't be too difficult to make release builds there, and on the mobile targets work as well (or even on "embedded" systems such as an raspberry pi for that matter).
an example repo how to use the new flutter/dart binding, will be published in the next few days.
2020-06-01 21:40:46 +02:00
therecipe
315191547f fix the CI image builds again + more fixes for Go 1.14 module issues 2020-05-31 04:46:40 +02:00
therecipe
fbe09d927c fix the CI image builds + fix QT_STUB 2020-05-30 19:47:09 +02:00
therecipe
5074eb6d8c fix NewQVariant1 issue + fix go module related issue 2020-01-26 21:44:26 +01:00
therecipe
606d6c7798 fixes for android deployments + new example + fix go module related issue 2020-01-25 21:18:38 +01:00
therecipe
1b040f91f3 fix docker images for azure + minor improvements 2019-12-29 19:21:18 +01:00
therecipe
4ee12d6ea9 fix static darwin docker deployments 2019-12-23 01:02:14 +01:00
therecipe
dc5ba07e92 fix static darwin docker deployments + minor example fix 2019-12-22 02:32:47 +01:00
therecipe
aa8a227277 even more changes related to the js binding + fixes for Qt 5.14
* support for static darwin docker deployments
2019-12-21 17:42:05 +01:00
therecipe
0cc82d7b2f more changes related to the js binding 2019-12-12 20:47:54 +01:00
therecipe
3b69292fad fixes for js binding related issues
* option to generate TypeScript definitions with QT_GEN_TSD=true
2019-12-10 19:34:02 +01:00
therecipe
6dbef71d44 various changes related to the js binding 2019-12-10 17:08:50 +01:00
therecipe
47559b8cfa fixes for various potential memory leaks
* speedup js binding generation + minor js related fixes
* support for private quickcontrols2 classes with `QT_GEN_QUICK_EXTRAS=true`
* fix for static linux deployment issue
* minor example updates
* fix for minor qtmoc docker related issue
2019-11-28 18:42:54 +01:00
therecipe
0f56c6673a fix webkit module 2019-11-20 15:58:34 +01:00
therecipe
d5ef93df38 fix deployment size issue + new plugins examples 2019-11-20 15:18:39 +01:00
therecipe
93eff24f30 fix for older Qt versions + fixes for msys2 docker images 2019-11-18 22:07:58 +01:00
therecipe
a3b8ce73c7 more fixes for older Qt versions 2019-11-18 03:07:49 +01:00
therecipe
39d3d3f299 fixes for older Go and Qt versions 2019-11-17 22:12:35 +01:00
therecipe
3738bb9320 greatly extend the Go <-> Qml/JS interoperability
These changes introduce two new functions called (*qml.QJSEngine).NewGoType and (*qml.QJSEngine).ToGoType, that can be used (similiar to how core.NewQVariant1 and (*core.QVariant).ToGoType can be used) to convert Go objects and functions to *qml.QJSValues and vice versa.
This allows for a more natural communication between Go and Qml/JS and makes it possible to simply pass a Go structs to Qml/JS and then call Go methods on that object.
For this to work, the object passed to Qml/JS needs to implement the `Pointer() unsafe.Pointer` and `SetPointer(unsafe.Pointer)` functions atm.
Which means, since all Qt classes already implement these functions, that you can now use the whole binding from Qml/JS as well and theoretically create a full Qt application inside an QJSEngine as well. A few example applications almost entirely written in JS can be found here: https://github.com/therecipe/examples/tree/master/js/
Furthermore, the `widgets_playground` example (https://github.com/therecipe/widgets_playground) now fully works on desktop and mobile targets as well.

other changes:
* core.NewQVariant1 and (*core.QVariant).ToGoType now recognize json tags
* workaround for qtmoc issue related to named imports
* speed-up go module android docker deployments
* fix webengine related qtdeploy bug on macOS
* fix int overflow issue for arm docker images
* fix js docker images
2019-11-17 18:05:18 +01:00
Ángel
5782c449a3
Added suport for customizable Android API level
The Android API level can be customized changing the ANDROID_NDK_PLATFORM environment variable in
the host system. The value of this variable will be passed to QMake to generate the correct flags
required to build cgo using the Android NDK toolchain as backend.

Signed-off-by: Ángel <angelo.fly1@gmail.com>
2019-11-08 13:45:48 +01:00
therecipe
79e83fbcfd make it possible to use NewQVariant1 + (*QVariant).ToGoType to convert a Go object to an QVariant and vice versa
* support a few more QVariant + QJSValue functions
* support for QWebEngineProfile + QJSValueIterator
* docker deployments now automatically uses the pinned tooling version for projects making use of go modules
* bump Go version for docker images to 1.13.4
2019-11-01 23:45:04 +01:00
therecipe
6d18dd68e5 update README + minor fixes
* some initial fixes for Qt 5.14
* auto register moc stuct meta types
2019-10-23 01:27:33 +02:00
therecipe
8ca5eb4577
Merge pull request #983 from angiglesias/master
Added support for Android NDK r20
2019-10-15 17:40:01 +02:00
therecipe
46410576cc fix Qt install script + work around "go list" bug in Go 1.13.x 2019-10-14 22:44:19 +02:00
therecipe
6c3ac91945 declare various additional metatypes 2019-10-14 20:30:44 +02:00
Ángel
69b7a8af79 Added support for Android NDK r20
Detailed information: https://bugreports.qt.io/browse/QTBUG-76293
2019-10-13 20:22:35 +02:00
therecipe
3904ec6ceb work around for qtmoc name clash issues 2019-10-10 19:49:05 +02:00
therecipe
e9f3046c76 new (*QObject).ConnectSignal function + new fedora docker image
* new docker images to make it easier to deploy to "embedded" armv6/armv7/arm64 systems such as Raspberry Pi, Orange Pi, Banana Pi, BeagleBone, BeagleBoard, ODROID, Asus Tinker Board, ...
2019-10-06 22:14:18 +02:00
therecipe
73192f6811 support for QProcess and QProcessEnvironment 2019-10-02 11:52:16 +02:00
therecipe
d11e9c4c9c minor fix 2019-09-30 18:07:06 +02:00
therecipe
9c4a28ad5b fix felgo application crashes + new felgo examples 2019-09-30 17:52:29 +02:00
therecipe
2683e87a2d remove felgo-live cache files automatically 2019-09-29 10:10:39 +02:00
therecipe
a87c9281c6 new felgo examples 2019-09-28 19:59:57 +02:00
therecipe
cd53818b8f new felgo module + support for env related QtGlobal functions + new QT_RESOURCES_BIG env var 2019-09-28 18:21:38 +02:00
therecipe
383164b950 fix docker deployment issue on linux 2019-09-26 01:36:43 +02:00
therecipe
60e39e0bfc more msvc related fixes + minor cleanups 2019-09-24 00:03:23 +02:00
therecipe
46e554d25d fix go module related issues + re-add various functions 2019-09-14 19:07:15 +02:00
therecipe
33ee7b247d experimental support for the msvc builds to get the webengine/webview modules working on windows
* Go 1.13 related fixes for js/wasm
* fix windows docker deployment issue
* new 3rdparty/UGlobalHotkey example
* fix webengine module on arch linux
* support for the prebuilt Qt wasm builds
* make use of -trimpath if available
* bump Go version in docker images to 1.12.9
2019-09-10 20:17:30 +02:00
therecipe
d6c64b2b90 fixes for Go 1.13 2019-09-04 02:09:11 +02:00
therecipe
5aa0dd4260 fix static linux deployment issue + re-add various QWebEnginePage/View functions
* make changes from 38467ad2 available for js/wasm as well
2019-09-03 18:23:46 +02:00
therecipe
16c2eccafc inform user about the need to run qtsetup + fix docker related js deployment issue 2019-08-27 23:09:01 +02:00