Date: Thursday, July 14, 2022 @ 19:20:32 Author: arojas Revision: 1252658
Backport some fixes Added: python-wxpython/trunk/192109386d58066b7c8ede5d1178a4b719c5f00c.patch Modified: python-wxpython/trunk/PKGBUILD ------------------------------------------------+ 192109386d58066b7c8ede5d1178a4b719c5f00c.patch | 67 +++++++++++++++++++++++ PKGBUILD | 10 +++ 2 files changed, 76 insertions(+), 1 deletion(-) Added: 192109386d58066b7c8ede5d1178a4b719c5f00c.patch =================================================================== --- 192109386d58066b7c8ede5d1178a4b719c5f00c.patch (rev 0) +++ 192109386d58066b7c8ede5d1178a4b719c5f00c.patch 2022-07-14 19:20:32 UTC (rev 1252658) @@ -0,0 +1,67 @@ +From 192109386d58066b7c8ede5d1178a4b719c5f00c Mon Sep 17 00:00:00 2001 +From: Robin Dunn <[email protected]> +Date: Mon, 16 May 2022 15:27:16 -0700 +Subject: [PATCH] Add convertFromPyObject code for wxBitmapBundle so we can + autoconvert wxBitmaps from Python + +--- + etg/bmpbndl.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 46 insertions(+) + +diff --git a/etg/bmpbndl.py b/etg/bmpbndl.py +index a166b576c..a1fab8269 100644 +--- a/etg/bmpbndl.py ++++ b/etg/bmpbndl.py +@@ -40,6 +40,52 @@ def run(): + + c.find('FromSVG').findOverload('char *data, const wxSize &sizeDef').ignore() + ++ # Allow on-the-fly creation of a wx.BitmapBundle from a wx.Bitmap, wx.Icon ++ # or a wx.Image ++ c.convertFromPyObject = """\ ++ // Check for type compatibility ++ if (!sipIsErr) { ++ if (sipCanConvertToType(sipPy, sipType_wxBitmap, SIP_NO_CONVERTORS)) ++ return 1; ++ if (sipCanConvertToType(sipPy, sipType_wxIcon, SIP_NO_CONVERTORS)) ++ return 1; ++ if (sipCanConvertToType(sipPy, sipType_wxImage, SIP_NO_CONVERTORS)) ++ return 1; ++ if (sipCanConvertToType(sipPy, sipType_wxBitmapBundle, SIP_NO_CONVERTORS)) ++ return 1; ++ return 0; ++ } ++ ++ // Otherwise, a conversion is needed ++ int state = 0; ++ if (sipCanConvertToType(sipPy, sipType_wxBitmap, SIP_NO_CONVERTORS)) { ++ wxBitmap* obj = reinterpret_cast<wxBitmap*>( ++ sipConvertToType(sipPy, sipType_wxBitmap, sipTransferObj, SIP_NO_CONVERTORS, &state, sipIsErr)); ++ *sipCppPtr = new wxBitmapBundle(*obj); ++ sipReleaseType(obj, sipType_wxBitmap, state); ++ return sipGetState(sipTransferObj); ++ } ++ if (sipCanConvertToType(sipPy, sipType_wxIcon, SIP_NO_CONVERTORS)) { ++ wxIcon* obj = reinterpret_cast<wxIcon*>( ++ sipConvertToType(sipPy, sipType_wxIcon, sipTransferObj, SIP_NO_CONVERTORS, &state, sipIsErr)); ++ *sipCppPtr = new wxBitmapBundle(*obj); ++ sipReleaseType(obj, sipType_wxIcon, state); ++ return sipGetState(sipTransferObj); ++ } ++ if (sipCanConvertToType(sipPy, sipType_wxImage, SIP_NO_CONVERTORS)) { ++ wxImage* obj = reinterpret_cast<wxImage*>( ++ sipConvertToType(sipPy, sipType_wxImage, sipTransferObj, SIP_NO_CONVERTORS, &state, sipIsErr)); ++ *sipCppPtr = new wxBitmapBundle(*obj); ++ sipReleaseType(obj, sipType_wxImage, state); ++ return sipGetState(sipTransferObj); ++ } ++ ++ // The final option is that it is already a wxBitmapBundle, so just fetch the pointer and return ++ *sipCppPtr = reinterpret_cast<wxBitmapBundle*>( ++ sipConvertToType(sipPy, sipType_wxBitmapBundle, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); ++ return 0; // not a new instance ++ """ ++ + + c = module.find('wxBitmapBundleImpl') + assert isinstance(c, etgtools.ClassDef) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-07-14 16:49:26 UTC (rev 1252657) +++ PKGBUILD 2022-07-14 19:20:32 UTC (rev 1252658) @@ -8,7 +8,7 @@ _wxver=3.2.0 _pkgver="${pkgver%.*}" _post="${pkgver##*.}" -pkgrel=2 +pkgrel=3 epoch=1 pkgdesc='Cross-platform GUI toolkit' arch=('x86_64') @@ -20,6 +20,8 @@ checkdepends=('xorg-server-xvfb' 'python-pytest-forked' 'python-numpy') source=("https://files.pythonhosted.org/packages/source/w/wxPython/wxPython-$pkgver.tar.gz" https://github.com/wxWidgets/wxWidgets/releases/download/v$_wxver/wxWidgets-$_wxver.tar.bz2 + 173d0796810bb65de9bdfdc6941d24a04628f6c2.patch + 192109386d58066b7c8ede5d1178a4b719c5f00c.patch sip-5.patch sip-6.patch wxwidgets-3.1.5.patch @@ -28,6 +30,8 @@ wxwidgets-3.2.patch) sha512sums=('00924008b97bbecb824c3fffd46fc76a5a3115d9346eb95baccc6cca99c080aa80b586af42fece8a3b4d234f2d07ffa8b66b50a164c41cbd95abc9b139c32809' 'e55e7c5ac7abcacf2ecff7c22e367db17ff5a077d3d5d2aa7589e8ba7cc6695cfa48c0f00bcfdffeda8dc4f974f97a857fb61b4b300a724f7687d710fbb23967' + '5ef772cb14f619b14506de51f58b062729ff7f23f789970ba078ced040fa35ba88994c3331b471c78c8c6186d8c0e432cf7c346e26b0a71f9f08b39f03021adc' + 'a75b8ecf69013abe621d5e8f181beac914985e210b4f43a31f7129092d44dfe71539ab75355b32aa0d623125a2866349648f106107330827c2af135305539a1d' 'f619d9b405299558b84646f457a3bddcfffbd0eb90d23f329e107ebb9e3b6e1c6550cbb7a6c775dd65a08d679abcc7b4a6353d5d78ab263213789998b7c24346' '25a260238ee91b920cce184af6a24cf534ef1eb6a0e1148e52279b0b4990cc34b3cd81ea49ba71e2a9f437891d438b16cc4037bc787e7b44187f8f356a3982b9' 'b324821f3423c5c9d5f7ff055704f7b88a87fa77ade31dfa563b1b35b0ab858a28e9c32a9607cfabafeff1a46177f413665623b254b69d512d7bb4ebdb63089b' @@ -45,6 +49,10 @@ patch -p1 -i ../wxwidgets-3.1.6.patch patch -p1 -i ../wxwidgets-3.1.7.patch patch -p1 -i ../wxwidgets-3.2.patch + # Fix Python 3.10 issues + patch -p1 -i ../173d0796810bb65de9bdfdc6941d24a04628f6c2.patch + # Fix wxBitmapBundle + patch -p1 -i ../192109386d58066b7c8ede5d1178a4b719c5f00c.patch rm -r ext/wxWidgets mv "$srcdir"/wxWidgets-$_wxver ext/wxWidgets }
