Patch taken from the upstream repository https://github.com/frescobaldi/python-poppler-qt5/issues/43 From 92e5962ec3751ab051d0b655fd61afc7a1cf709e Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Thu, 4 Mar 2021 17:02:51 +0100 Subject: [PATCH] map type QVector< QPair > for FormFieldChoice::choicesWithExportValues() (#45) --- types.sip | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/types.sip b/types.sip index 239b8c9..81cb283 100644 --- a/types.sip +++ b/types.sip @@ -331,5 +331,98 @@ template }; +/** + * Convert QVector< QPair > + * from and to a Python list of a 2-item tuple + */ + +template +%MappedType QVector< QPair > +{ +%TypeHeaderCode +#include +#include +%End + +%ConvertFromTypeCode + // Create the list. + PyObject *l; + + if ((l = PyList_New(sipCpp->size())) == NULL) + return NULL; + + // Set the list elements. + for (int i = 0; i < sipCpp->size(); ++i) + { + QPair* p = new QPair(sipCpp->at(i)); + PyObject *ptuple = PyTuple_New(2); + PyObject *pfirst; + PyObject *psecond; + + TYPE *sfirst = new TYPE(p->first); + if ((pfirst = sipConvertFromType(sfirst, sipType_TYPE, sipTransferObj)) == NULL) + { + Py_DECREF(l); + Py_DECREF(ptuple); + return NULL; + } + PyTuple_SET_ITEM(ptuple, 0, pfirst); + + TYPE *ssecond = new TYPE(p->second); + if ((psecond = sipConvertFromType(ssecond, sipType_TYPE, sipTransferObj)) == NULL) + { + Py_DECREF(l); + Py_DECREF(ptuple); + Py_DECREF(pfirst); + return NULL; + } + PyTuple_SET_ITEM(ptuple, 1, psecond); + + PyList_SET_ITEM(l, i, ptuple); + } + + return l; +%End + +%ConvertToTypeCode + const sipTypeDef* qpair_type = sipFindType("QPair"); + + // Check the type if that is all that is required. + if (sipIsErr == NULL) + { + if (!PySequence_Check(sipPy)) + return 0; + + for (int i = 0; i < PySequence_Size(sipPy); ++i) + if (!sipCanConvertToType(PySequence_ITEM(sipPy, i), qpair_type, SIP_NOT_NONE)) + return 0; + + return 1; + } + + + QVector< QPair > *qv = new QVector< QPair >; + + for (int i = 0; i < PySequence_Size(sipPy); ++i) + { + int state; + QPair * p = reinterpret_cast< QPair * >(sipConvertToType(PySequence_ITEM(sipPy, i), qpair_type, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); + + if (*sipIsErr) + { + sipReleaseType(p, qpair_type, state); + delete qv; + return 0; + } + qv->append(*p); + sipReleaseType(p, qpair_type, state); + } + + *sipCppPtr = qv; + return sipGetState(sipTransferObj); +%End + +}; + /* kate: indent-width 4; space-indent on; hl c++; indent-mode cstyle; */ n upcoming commit. Rename public keys to .pub. * guix/tests/gnupg.scm (%ed25519-3-public-key-file): New variable. (%ed25519-3-secret-key-file): New variable. (%ed25519-2-public-key-file): Renamed from %ed25519bis-public-key-file. (%ed25519-2-secret-key-file): Renamed from %ed25519bis-secret-key-file. * tests/keys/ed25519-3.key: New file. * tests/keys/ed25519-3.sec: New file. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Attila Lendvai 2021-04-20import: Remove Nix importer....This importer has suffered from bitrot and no longer works with current Nix and Nixpkgs. See <https://bugs.gnu.org/32339> and <https://bugs.gnu.org/36255>. * guix/import/snix.scm, guix/scripts/import/nix.scm, tests/snix.scm: Remove. * Makefile.am (MODULES, SCM_TESTS): Remove them. * guix/scripts/import.scm (importers): Remove "nix". * build-aux/test-env.in: Remove NIXPKGS variable. * configure.ac: Remove '--with-nixpkgs' option. * doc/guix.texi (Invoking guix import): Remove bit about "guix import nix". * etc/completion/fish/guix.fish: Likewise. Ludovic Courtès