<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>