<pre style='margin:0'>
Vincent (Veence) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/b567a33c42a38bc0fb173af9218fc9a5edda3aa3">https://github.com/macports/macports-ports/commit/b567a33c42a38bc0fb173af9218fc9a5edda3aa3</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new b567a33 QGIS: Bump to 2.18.6 + make Qt5/Python3 default
</span>b567a33 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit b567a33c42a38bc0fb173af9218fc9a5edda3aa3
</span>Author: Veence <vince@macports.org>
AuthorDate: Wed Apr 19 14:19:20 2017 +0200
<span style='display:block; white-space:pre;color:#404040;'> QGIS: Bump to 2.18.6 + make Qt5/Python3 default
</span>---
gis/qgis/Portfile | 122 +++++++-------
.../files/patch-python_core_conversions_sip.diff | 182 +++++++++++++++++++++
2 files changed, 249 insertions(+), 55 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis/Portfile b/gis/qgis/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e91346a..a9c94d4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gis/qgis/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/qgis/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,9 +3,9 @@
</span> PortSystem 1.0
PortGroup cmake 1.0
PortGroup github 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup active_variants 1.1
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 2.18.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 2.18.6
</span> set version_u [string map {. _} ${version}]
github.setup qgis QGIS ${version_u} final-
categories gis
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -22,8 +22,8 @@ license GPL
</span> use_parallel_build no
homepage http://www.qgis.org/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 cd8be4d95de517dca3c584c31a73e6b07a427168 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 168043cf38edebff2b775e3822ea815aaeea91e5b6933193e89a87edb7cbdd22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 bfe2c2ad34dfee74fe326c2f5dd0dc2ec6d8d927 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 2e10c34e7a68b8b0ac16e03e3d5a7482e17b3f0680b365382fe73d37e164dee6
</span>
patchfiles patch-app_info_plist_in.diff \
patch-PyQtMacros.diff
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,20 +41,11 @@ depends_lib-append port:libiconv \
</span> port:fcgi \
port:spatialindex \
port:postgis2 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:python27 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py27-gdal \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:qca \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:qca-ossl \
</span> port:qjson
depends_build-append \
port:bison \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:ld64 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py27-sip
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append port:py27-psycopg2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py27-spatialite \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py27-requests
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:ld64
</span>
post-extract {
system -W ${worksrcpath} "mkdir build"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,90 +60,111 @@ post-patch {
</span> if {[vercmp $xcodeversion 4.6.3] <= 0} {
configure.compiler llvm-gcc-4.2
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset grass]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # grass70 -> grass72 in hardcoded files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set files_to_patch [list \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/python/plugins/processing/algs/grass7/Grass7Algorithm.py \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/python/plugins/processing/algs/grass7/Grass7Utils.py]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach filename ${files_to_patch} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace "s#grass70#grass72#" ${filename}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> }
# Overrides default
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if {![variant_isset qt4] && ![variant_isset qt5]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants +qt4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +qt5
</span> }
# Python related stuff
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set Py_FRM ${frameworks_dir}/Python.framework/Versions/2.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.7"
</span> configure.args-append "-DWITH_GRASS=OFF"
configure.args-append "-DWITH_GRASS7=OFF"
configure.args-append "-DWITH_QWTPOLAR=FALSE"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append "-DGIT_MARKER=NOTFOUND"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append "-DENABLE_TEST=NO"
</span> #configure.args-append "--trace"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#configure.args-append "-DPYUIC_PROGRAM=${prefix}/bin/pyuic4-2.7"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#configure.args-append "-DPYRCC_PROGRAM=${prefix}/bin/pyuic4-2.7"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-pre-configure {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -E "s|Versions/Current|Versions/2.7|" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/cmake/FindPythonLibrary.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant qt5 conflicts qt4 description "Build with Qt5" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant qt5 conflicts qt4 description "Build with Qt5 and Python 3" {
</span> PortGroup qt5 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>- #patchfiles-append patch-CMakeLists_txt.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # reinplace "s|ZZZ|${prefix}|" ${worksrcpath}/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set py_ver 3.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set Py_FRM ${frameworks_dir}/Python.framework/Versions/${py_ver}
</span>
configure.ldflags "-Wl,-rpath,${prefix}/libexec/qt5/lib"
configure.args-append "-DENABLE_QT5=ON"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python${py_ver}"
</span> configure.args-append "-DWITH_BINDINGS=FALSE"
configure.args-append "-DQCA_INCLUDE_DIR=${prefix}/libexec/qt5/include/QtCrypto"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append "-DQCA_LIBRARY=${prefix}/libexec/qt5/lib/libqca.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DQCA_LIBRARY=${prefix}/libexec/qt5/lib/libqca-qt5.dylib"
</span> configure.args-append "-DQSCINTILLA_INCLUDE_DIR=${prefix}/libexec/qt5/include"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append "-DQSCINTILLA_LIBRARY=${prefix}/libexec/qt5/lib/libqscintilla2.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DQSCINTILLA_LIBRARY=${prefix}/libexec/qt5/lib/libqscintilla2_qt5.dylib"
</span> configure.args-append "-DQWT_LIBRARY=${prefix}/libexec/qt5/lib/libqwt.dylib"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DQWT_INCLUDE_DIR=${prefix}/libexec/qt5/lib/qwt.framework/Versions/6/Headers"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DQT_LRELEASE_EXECUTABLE=${prefix}/libexec/qt5/bin/lrelease"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DWITH_SERVER=TRUE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DWITH_SERVER_PLUGINS=TRUE"
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:py27-pyqt5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # QWT must be built with qt5 dependency
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ require_active_variants qwt61 qt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:python36 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py36-pyqt5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py36-qscintilla2 \
</span> port:qt5-qtscript \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:qt5-sqlite-plugin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qt5-sqlite-plugin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qca-qt5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qca-qt5-ossl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py36-gdal \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qwt61
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:py36-sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:py36-psycopg2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py36-requests
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -E "s|Versions/Current|Versions/3.6|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/cmake/FindPythonLibrary.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant qt4 conflicts qt5 description "Build with Qt4" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant qt4 conflicts qt5 description "Build with Qt4 and Python 2.7" {
</span> PortGroup qt4 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ set Py_FRM ${frameworks_dir}/Python.framework/Versions/2.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-python_core_conversions_sip.diff
</span>
configure.args-append "-DENABLE_QT5=OFF"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.7"
</span> configure.args-append "-DPYTHON_CUSTOM_FRAMEWORK=${Py_FRM}"
configure.args-append "-DSIP_BINARY_PATH=${prefix}/bin/sip-2.7"
configure.args-append "-DPYUIC_PROGRAM=${prefix}/bin/pyuic4-2.7"
configure.args-append "-DPYRCC_PROGRAM=${prefix}/bin/pyrcc4-2.7"
configure.args-append "-DWITH_SERVER=TRUE"
configure.args-append "-DWITH_SERVER_PLUGINS=TRUE"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append "-DQWT_INCLUDE_DIR=${prefix}/libexec/qt4/include/qwt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "-DQWT_INCLUDE_DIR=${prefix}/libexec/qt4/Library/Frameworks/qwt.framework/Versions/6/Headers"
</span> configure.args-append "-DQWT_LIBRARY=${prefix}/libexec/qt4/lib/libqwt.dylib"
configure.args-append "-DQCA_INCLUDE_DIR=${prefix}/libexec/qt4/include/QtCrypto"
configure.args-append "-DQCA_LIBRARY=${prefix}/libexec/qt4/lib/libqca.dylib"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DQT_LRELEASE_EXECUTABLE=${prefix}/libexec/qt4/bin/lrelease"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DQSCINTILLA_INCLUDE_DIR=${prefix}/libexec/qt4/include"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append "-DQSCINTILLA_LIBRARY=${prefix}/libexec/qt4/lib/libqscintilla2_qt4.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ require_active_variants qwt61 qt4
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:py27-pyqt4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:python27 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py27-pyqt4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py27-gdal \
</span> port:py27-qscintilla \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:qwt61 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:qt4-mac-sqlite3-plugin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qt4-mac-sqlite3-plugin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qca \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qca-ossl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qwt61
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:py27-sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:py27-psycopg2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py27-spatialite \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py27-requests
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -E "s|Versions/Current|Versions/2.7|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/cmake/FindPythonLibrary.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
# Database variants (from the GDAL port)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis/files/patch-python_core_conversions_sip.diff b/gis/qgis/files/patch-python_core_conversions_sip.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9a26e8e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/qgis/files/patch-python_core_conversions_sip.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,182 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/core/conversions.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/core/conversions.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2041,3 +2041,178 @@ register_from_qvariant_convertor = (void (*)(FromQVariantConvertorFn))sipImportS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ register_from_qvariant_convertor(null_from_qvariant_convertor);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// QList<QVariant> is implemented as a Python list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%MappedType QList<QVariant> /TypeHintIn="Sequence[QVariant]", TypeHintOut="List[QVariant]", TypeHintValue="[]"/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <qlist.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%ConvertFromTypeCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Create the list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyObject *l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((l = PyList_New(sipCpp->size())) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Set the list elements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (int i = 0; i < sipCpp->size(); ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QVariant *t = new QVariant(sipCpp->at(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyObject *tobj;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((tobj = sipConvertFromNewType(t, sipType_QVariant, sipTransferObj)) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Py_DECREF(l);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ delete t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyList_SET_ITEM(l, i, tobj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%ConvertToTypeCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SSIZE_T len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Check the type if that is all that is required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (sipIsErr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (SIP_SSIZE_T i = 0; i < len; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyObject *itm = PySequence_ITEM(sipPy, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool ok = (itm && sipCanConvertToType(itm, sipType_QVariant, SIP_NOT_NONE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Py_XDECREF(itm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!ok)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<QVariant> *ql = new QList<QVariant>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ len = PySequence_Size(sipPy);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (SIP_SSIZE_T i = 0; i < len; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyObject *itm = PySequence_ITEM(sipPy, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QVariant *t = reinterpret_cast<QVariant *>(sipConvertToType(itm, sipType_QVariant, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Py_DECREF(itm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (*sipIsErr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sipReleaseType(t, sipType_QVariant, state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ delete ql;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ql->append(*t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sipReleaseType(t, sipType_QVariant, state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *sipCppPtr = ql;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return sipGetState(sipTransferObj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// QList<QPolygonF> is implemented as a Python list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%MappedType QList<QPolygonF> /TypeHintIn="Sequence[QPolygonF]", TypeHintOut="List[QPolygonF]", TypeHintValue="[]"/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <qlist.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%ConvertFromTypeCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Create the list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyObject *l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((l = PyList_New(sipCpp->size())) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Set the list elements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (int i = 0; i < sipCpp->size(); ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QPolygonF *t = new QPolygonF(sipCpp->at(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyObject *tobj;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((tobj = sipConvertFromNewType(t, sipType_QPolygonF, sipTransferObj)) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Py_DECREF(l);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ delete t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyList_SET_ITEM(l, i, tobj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%ConvertToTypeCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIP_SSIZE_T len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Check the type if that is all that is required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (sipIsErr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (SIP_SSIZE_T i = 0; i < len; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyObject *itm = PySequence_ITEM(sipPy, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool ok = (itm && sipCanConvertToType(itm, sipType_QPolygonF, SIP_NOT_NONE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Py_XDECREF(itm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!ok)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QList<QPolygonF> *ql = new QList<QPolygonF>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ len = PySequence_Size(sipPy);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (SIP_SSIZE_T i = 0; i < len; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyObject *itm = PySequence_ITEM(sipPy, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QPolygonF *t = reinterpret_cast<QPolygonF *>(sipConvertToType(itm, sipType_QPolygonF, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Py_DECREF(itm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (*sipIsErr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sipReleaseType(t, sipType_QPolygonF, state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ delete ql;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ql->append(*t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sipReleaseType(t, sipType_QPolygonF, state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *sipCppPtr = ql;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return sipGetState(sipTransferObj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>