diff options
author | Friedemann Kleint <[email protected]> | 2018-04-18 14:22:01 +0200 |
---|---|---|
committer | Friedemann Kleint <[email protected]> | 2018-04-24 11:09:14 +0000 |
commit | 4cedac360986b3cdc21519b102d605671e9e7610 (patch) | |
tree | ed565797fa04b4ea70bd80cca22c0bf4af6e13f7 | |
parent | 8d555031245b0e3e222705bbdc894ad3efbaba42 (diff) |
Add QtPositioning and QtLocation
Task-number: PYSIDE-487
Change-Id: Ie44d8472beb3f1a5ab75caafd1f58b512b53ccb1
Reviewed-by: Alexandru Croitor <[email protected]>
-rw-r--r-- | sources/pyside2/CMakeLists.txt | 2 | ||||
-rw-r--r-- | sources/pyside2/PySide2/QtLocation/CMakeLists.txt | 80 | ||||
-rw-r--r-- | sources/pyside2/PySide2/QtLocation/typesystem_location.xml | 112 | ||||
-rw-r--r-- | sources/pyside2/PySide2/QtPositioning/CMakeLists.txt | 55 | ||||
-rw-r--r-- | sources/pyside2/PySide2/QtPositioning/typesystem_positioning.xml | 80 | ||||
-rw-r--r-- | sources/pyside2/tests/QtLocation/CMakeLists.txt | 1 | ||||
-rw-r--r-- | sources/pyside2/tests/QtLocation/location.py | 41 | ||||
-rw-r--r-- | sources/pyside2/tests/QtPositioning/CMakeLists.txt | 1 | ||||
-rw-r--r-- | sources/pyside2/tests/QtPositioning/positioning.py | 43 |
9 files changed, 414 insertions, 1 deletions
diff --git a/sources/pyside2/CMakeLists.txt b/sources/pyside2/CMakeLists.txt index 5bd22d62c..3e56881df 100644 --- a/sources/pyside2/CMakeLists.txt +++ b/sources/pyside2/CMakeLists.txt @@ -330,7 +330,7 @@ if(APPLE) endif() # Collect all optional modules. -set(ALL_OPTIONAL_MODULES Xml XmlPatterns Help Multimedia MultimediaWidgets OpenGL Qml Quick QuickWidgets Script ScriptTools Sensors TextToSpeech Charts Svg DataVisualization) +set(ALL_OPTIONAL_MODULES Xml XmlPatterns Help Multimedia MultimediaWidgets OpenGL Positioning Location Qml Quick QuickWidgets Script ScriptTools Sensors TextToSpeech Charts Svg DataVisualization) find_package(Qt5UiTools) if(Qt5UiTools_FOUND) list(APPEND ALL_OPTIONAL_MODULES UiTools) diff --git a/sources/pyside2/PySide2/QtLocation/CMakeLists.txt b/sources/pyside2/PySide2/QtLocation/CMakeLists.txt new file mode 100644 index 000000000..f968d1a1c --- /dev/null +++ b/sources/pyside2/PySide2/QtLocation/CMakeLists.txt @@ -0,0 +1,80 @@ +project(QtLocation) + +set(QtLocation_OPTIONAL_SRC ) +set(QtLocation_DROPPED_ENTRIES ) + +set(QtLocation_SRC +${QtLocation_GEN_DIR}/qgeocodereply_wrapper.cpp +${QtLocation_GEN_DIR}/qgeomaneuver_wrapper.cpp +${QtLocation_GEN_DIR}/qgeoroute_wrapper.cpp +${QtLocation_GEN_DIR}/qgeoroutereply_wrapper.cpp +${QtLocation_GEN_DIR}/qgeoroutesegment_wrapper.cpp +${QtLocation_GEN_DIR}/qgeoserviceprovider_wrapper.cpp +${QtLocation_GEN_DIR}/qplace_wrapper.cpp +${QtLocation_GEN_DIR}/qplacecontentreply_wrapper.cpp +${QtLocation_GEN_DIR}/qplacedetailsreply_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceicon_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceidreply_wrapper.cpp +${QtLocation_GEN_DIR}/qplacemanager_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceuser_wrapper.cpp +${QtLocation_GEN_DIR}/qgeocodingmanager_wrapper.cpp +${QtLocation_GEN_DIR}/qgeocodingmanagerengine_wrapper.cpp +${QtLocation_GEN_DIR}/qgeorouterequest_wrapper.cpp +${QtLocation_GEN_DIR}/qgeoroutingmanager_wrapper.cpp +${QtLocation_GEN_DIR}/qgeoroutingmanagerengine_wrapper.cpp +${QtLocation_GEN_DIR}/qgeoserviceproviderfactory_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceattribute_wrapper.cpp +${QtLocation_GEN_DIR}/qplacecategory_wrapper.cpp +${QtLocation_GEN_DIR}/qplacecontactdetail_wrapper.cpp +${QtLocation_GEN_DIR}/qplacecontent_wrapper.cpp +${QtLocation_GEN_DIR}/qplacecontentrequest_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceeditorial_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceimage_wrapper.cpp +${QtLocation_GEN_DIR}/qplacemanagerengine_wrapper.cpp +${QtLocation_GEN_DIR}/qplacematchreply_wrapper.cpp +${QtLocation_GEN_DIR}/qplacematchrequest_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceproposedsearchresult_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceratings_wrapper.cpp +${QtLocation_GEN_DIR}/qplacereply_wrapper.cpp +${QtLocation_GEN_DIR}/qplaceresult_wrapper.cpp +${QtLocation_GEN_DIR}/qplacereview_wrapper.cpp +${QtLocation_GEN_DIR}/qplacesearchreply_wrapper.cpp +${QtLocation_GEN_DIR}/qplacesearchrequest_wrapper.cpp +${QtLocation_GEN_DIR}/qplacesearchresult_wrapper.cpp +${QtLocation_GEN_DIR}/qplacesearchsuggestionreply_wrapper.cpp +${QtLocation_GEN_DIR}/qplacesupplier_wrapper.cpp +# module is always needed +${QtLocation_GEN_DIR}/qtlocation_module_wrapper.cpp +) + +if (Qt5Location_VERSION VERSION_EQUAL 5.11.0 OR Qt5Location_VERSION VERSION_GREATER 5.11.0) + list(APPEND QtLocation_SRC + ${QtLocation_GEN_DIR}/qgeoserviceproviderfactoryv2_wrapper.cpp) +endif() + +set(QtLocation_include_dirs ${QtLocation_SOURCE_DIR} + ${QtLocation_BINARY_DIR} + ${Qt5Core_INCLUDE_DIRS} + ${Qt5Location_INCLUDE_DIRS} + ${SHIBOKEN_INCLUDE_DIR} + ${libpyside_SOURCE_DIR} + ${SHIBOKEN_PYTHON_INCLUDE_DIR} + ${QtCore_GEN_DIR} + ${QtPositioning_GEN_DIR}) + +set(QtLocation_libraries pyside2 + ${SHIBOKEN_PYTHON_LIBRARIES} + ${SHIBOKEN_LIBRARY} + ${Qt5Location_LIBRARIES}) + +set(QtLocation_deps QtCore QtPositioning) + +create_pyside_module(QtLocation + QtLocation_include_dirs + QtLocation_libraries + QtLocation_deps + QtLocation_SOURCE_DIR + QtLocation_SRC + "" + "" + QtLocation_DROPPED_ENTRIES) diff --git a/sources/pyside2/PySide2/QtLocation/typesystem_location.xml b/sources/pyside2/PySide2/QtLocation/typesystem_location.xml new file mode 100644 index 000000000..de8fbca7f --- /dev/null +++ b/sources/pyside2/PySide2/QtLocation/typesystem_location.xml @@ -0,0 +1,112 @@ +<?xml version="1.0"?> +<!-- +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +--> +<typesystem package="PySide2.QtLocation"> + <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/> + <load-typesystem name="QtPositioning/typesystem_positioning.xml" generate="no"/> + <object-type name="QGeoCodeReply"> + <enum-type name="Error"/> + </object-type> + <value-type name="QGeoManeuver"> + <enum-type name="InstructionDirection"/> + </value-type> + <value-type name="QGeoRoute"/> + <object-type name="QGeoRouteReply"> + <enum-type name="Error"/> + </object-type> + <value-type name="QGeoRouteSegment"/> + <object-type name="QGeoServiceProvider"> + <enum-type name="Error"/> + <enum-type name="RoutingFeature" flags="RoutingFeatures"/> + <enum-type name="GeocodingFeature" flags="GeocodingFeatures"/> + <enum-type name="MappingFeature" flags="MappingFeatures"/> + <enum-type name="PlacesFeature" flags="PlacesFeatures"/> + <enum-type name="NavigationFeature" flags="NavigationFeatures"/> + </object-type> + <value-type name="QPlace"/> + <object-type name="QPlaceContentReply"/> + <object-type name="QPlaceDetailsReply"/> + <value-type name="QPlaceIcon"/> + <object-type name="QPlaceIdReply"> + <enum-type name="OperationType"/> + </object-type> + <object-type name="QPlaceManager"/> + <value-type name="QPlaceUser"/> + <object-type name="QGeoCodingManager"/> + <object-type name="QGeoCodingManagerEngine"/> + <object-type name="QGeoRouteRequest"> + <enum-type name="TravelMode" flags="TravelModes"/> + <enum-type name="FeatureType" flags="FeatureTypes"/> + <enum-type name="FeatureWeight" flags="FeatureWeights"/> + <enum-type name="RouteOptimization" flags="RouteOptimizations"/> + <enum-type name="SegmentDetail" flags="SegmentDetails"/> + <enum-type name="ManeuverDetail" flags="ManeuverDetails"/> + </object-type> + <object-type name="QGeoRoutingManager"/> + <object-type name="QGeoRoutingManagerEngine"/> + <object-type name="QGeoServiceProviderFactory"/> + <object-type name="QGeoServiceProviderFactoryV2" since="5.11"/> + <value-type name="QPlaceAttribute"/> + <value-type name="QPlaceCategory"/> + <value-type name="QPlaceContactDetail"/> + <value-type name="QPlaceContent"/> + <value-type name="QPlaceContentRequest"/> + <object-type name="QPlaceEditorial"/> + <object-type name="QPlaceImage"/> + <object-type name="QPlaceManagerEngine"/> + <object-type name="QPlaceMatchReply"/> + <value-type name="QPlaceMatchRequest"/> + <object-type name="QPlaceProposedSearchResult"/> + <value-type name="QPlaceRatings"/> + <object-type name="QPlaceReply"> + <enum-type name="Error"/> + <enum-type name="Type"/> + </object-type> + <object-type name="QPlaceResult"/> + <object-type name="QPlaceReview"/> + <object-type name="QPlaceSearchReply"/> + <object-type name="QPlaceSearchRequest"> + <enum-type name="RelevanceHint"/> + </object-type> + <object-type name="QPlaceSearchResult"/> + <object-type name="QPlaceSearchSuggestionReply"/> + <value-type name="QPlaceSupplier"/> +</typesystem> diff --git a/sources/pyside2/PySide2/QtPositioning/CMakeLists.txt b/sources/pyside2/PySide2/QtPositioning/CMakeLists.txt new file mode 100644 index 000000000..3a2eb9cf5 --- /dev/null +++ b/sources/pyside2/PySide2/QtPositioning/CMakeLists.txt @@ -0,0 +1,55 @@ +project(QtPositioning) + +set(QtPositioning_OPTIONAL_SRC ) +set(QtPositioning_DROPPED_ENTRIES ) + +set(QtPositioning_SRC +${QtPositioning_GEN_DIR}/qgeoaddress_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeoareamonitorinfo_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeoareamonitorsource_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeolocation_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeocircle_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeocoordinate_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeopath_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeopositioninfo_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeopositioninfosource_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeopositioninfosourcefactory_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeorectangle_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeosatelliteinfo_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeosatelliteinfosource_wrapper.cpp +${QtPositioning_GEN_DIR}/qgeoshape_wrapper.cpp +${QtPositioning_GEN_DIR}/qnmeapositioninfosource_wrapper.cpp +# module is always needed +${QtPositioning_GEN_DIR}/qtpositioning_module_wrapper.cpp +) + +if (Qt5Positioning_VERSION VERSION_EQUAL 5.10.0 OR Qt5Positioning_VERSION VERSION_GREATER 5.10.0) + list(APPEND QtPositioning_SRC + ${QtPositioning_GEN_DIR}/qgeopolygon_wrapper.cpp) +endif() + +set(QtPositioning_include_dirs ${QtPositioning_SOURCE_DIR} + ${QtPositioning_BINARY_DIR} + ${Qt5Core_INCLUDE_DIRS} + ${Qt5Positioning_INCLUDE_DIRS} + ${SHIBOKEN_INCLUDE_DIR} + ${libpyside_SOURCE_DIR} + ${SHIBOKEN_PYTHON_INCLUDE_DIR} + ${QtCore_GEN_DIR}) + +set(QtPositioning_libraries pyside2 + ${SHIBOKEN_PYTHON_LIBRARIES} + ${SHIBOKEN_LIBRARY} + ${Qt5Positioning_LIBRARIES}) + +set(QtPositioning_deps QtCore) + +create_pyside_module(QtPositioning + QtPositioning_include_dirs + QtPositioning_libraries + QtPositioning_deps + QtPositioning_SOURCE_DIR + QtPositioning_SRC + "" + "" + QtPositioning_DROPPED_ENTRIES) diff --git a/sources/pyside2/PySide2/QtPositioning/typesystem_positioning.xml b/sources/pyside2/PySide2/QtPositioning/typesystem_positioning.xml new file mode 100644 index 000000000..058994ad0 --- /dev/null +++ b/sources/pyside2/PySide2/QtPositioning/typesystem_positioning.xml @@ -0,0 +1,80 @@ +<?xml version="1.0"?> +<!-- +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +--> +<typesystem package="PySide2.QtPositioning"> + <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/> + <value-type name="QGeoAddress"/> + <value-type name="QGeoAreaMonitorInfo"/> + <object-type name="QGeoAreaMonitorSource"> + <enum-type name="Error"/> + <enum-type name="AreaMonitorFeature" flags="AreaMonitorFeatures"/> + </object-type> + <value-type name="QGeoLocation"/> + <value-type name="QGeoCircle"/> + <value-type name="QGeoCoordinate"> + <enum-type name="CoordinateType"/> + <enum-type name="CoordinateFormat"/> + </value-type> + <value-type name="QGeoPath"/> + <value-type name="QGeoPolygon" since="5.10"/> + <value-type name="QGeoPositionInfo"> + <enum-type name="Attribute"/> + </value-type> + <object-type name="QGeoPositionInfoSource"> + <enum-type name="Error"/> + <enum-type name="PositioningMethod" flags="PositioningMethods"/> + </object-type> + <object-type name="QGeoPositionInfoSourceFactory"/> + <value-type name="QGeoRectangle"/> + <value-type name="QGeoSatelliteInfo"> + <enum-type name="Attribute"/> + <enum-type name="SatelliteSystem"/> + </value-type> + <object-type name="QGeoSatelliteInfoSource"> + <enum-type name="Error"/> + </object-type> + <value-type name="QGeoShape"> + <enum-type name="ShapeType"/> + </value-type> + <object-type name="QNmeaPositionInfoSource"> + <enum-type name="UpdateMode"/> + </object-type> +</typesystem> diff --git a/sources/pyside2/tests/QtLocation/CMakeLists.txt b/sources/pyside2/tests/QtLocation/CMakeLists.txt new file mode 100644 index 000000000..b97ac1098 --- /dev/null +++ b/sources/pyside2/tests/QtLocation/CMakeLists.txt @@ -0,0 +1 @@ +PYSIDE_TEST(location.py) diff --git a/sources/pyside2/tests/QtLocation/location.py b/sources/pyside2/tests/QtLocation/location.py new file mode 100644 index 000000000..ca964c46c --- /dev/null +++ b/sources/pyside2/tests/QtLocation/location.py @@ -0,0 +1,41 @@ +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the test suite of PySide2. +## +## $QT_BEGIN_LICENSE:GPL-EXCEPT$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 as published by the Free Software +## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +'''Unit test for Location''' + +from PySide2.QtLocation import QGeoServiceProvider +import unittest + +class QLocationTestCase(unittest.TestCase): + def test(self): + geoServiceProvider = QGeoServiceProvider("none") + self.assertEqual(geoServiceProvider.errorString(), + 'The geoservices provider none is not supported.') + +if __name__ == "__main__": + unittest.main() diff --git a/sources/pyside2/tests/QtPositioning/CMakeLists.txt b/sources/pyside2/tests/QtPositioning/CMakeLists.txt new file mode 100644 index 000000000..b9f7631b1 --- /dev/null +++ b/sources/pyside2/tests/QtPositioning/CMakeLists.txt @@ -0,0 +1 @@ +PYSIDE_TEST(positioning.py) diff --git a/sources/pyside2/tests/QtPositioning/positioning.py b/sources/pyside2/tests/QtPositioning/positioning.py new file mode 100644 index 000000000..9f61fe1ef --- /dev/null +++ b/sources/pyside2/tests/QtPositioning/positioning.py @@ -0,0 +1,43 @@ +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the test suite of PySide2. +## +## $QT_BEGIN_LICENSE:GPL-EXCEPT$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 as published by the Free Software +## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +'''Unit test for Positioning''' + +from PySide2.QtPositioning import QGeoPositionInfoSource +import unittest + +class QPositioningTestCase(unittest.TestCase): + def test(self): + source = QGeoPositionInfoSource.createDefaultSource(None) + self.assertTrue(source is not None) + name = source.sourceName() + print('QtPositioning source: {}'.format(name)) + self.assertTrue(name) + +if __name__ == "__main__": + unittest.main() |