diff options
Diffstat (limited to 'examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc')
-rw-r--r-- | examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc b/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc deleted file mode 100644 index 7d9cab6f..00000000 --- a/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc +++ /dev/null @@ -1,164 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** 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 Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: https://www.gnu.org/licenses/fdl-1.3.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example weatherinfo - \title Weather Info (C++/QML) - - \brief The Weather Info example shows how to use the user's current position - to retrieve local content from a web service in a C++ plugin for QML. - - \ingroup qtpositioning-examples - - Key \l{Qt Positioning} classes used in this example: - - \list - \li \l{QGeoPositionInfo} - \li \l{QGeoPositionInfoSource} - \endlist - - \image ../images/example-weatherinfo.png - - \include examples-run.qdocinc - - \section1 Weather Data Providers - - The example uses two unrelated weather data providers: - - \list - \li \l {http://www.openweathermap.org}{OpenWeather} - \li \l {https://www.weatherapi.com/}{WeatherAPI.com} - \endlist - - The provider to be used is selected automatically at runtime and can be - changed if the selected provider is not available. However, it can't be - specified manually. - - \note Free plans are used for both providers, which implies certain - limitations on the amount of weather requests. If the limits are exceeded, - the providers become temporary unavailable. When both providers are - unavailable, the application would not be able to show any weather - information. In this case it is required to wait until at least one of the - providers becomes available again. - - \section1 Application Data Models - - The key part of this example is the application's data model, contained - in the \c WeatherData and \c AppModel classes. \c WeatherData represents - the weather information taken from the HTTP service. It is a simple data - class, but we use \l Q_PROPERTY to expose it nicely to QML later. - It also uses \l QML_ANONYMOUS macro, which makes it recognized in QML. - - \snippet weatherinfo/appmodel.h 0 - \snippet weatherinfo/appmodel.h 1 - - \c AppModel models the state of the entire application. At startup, we - get the platform's default position source using - \l QGeoPositionInfoSource::createDefaultSource(). - - \snippet weatherinfo/appmodel.cpp 0 - \snippet weatherinfo/appmodel.cpp 1 - - If no default source is available, we take a static position and fetch - weather for that. If, however, we do have a position source, we connect - its \l {QGeoPositionInfoSource::}{positionUpdated()} signal to a slot on the - \c AppModel and call \l {QGeoPositionInfoSource::}{startUpdates()}, which - begins regular updates of device position. - - When a position update is received, we use the longitude and latitude - of the returned coordinate to retrieve weather data for the specified - location. - - \snippet weatherinfo/appmodel.cpp 2 - - To inform the UI about this process, the \c cityChanged() signal is emitted - when a new city is used, and the \c weatherChanged() signal whenever a - weather update occurs. - - The model also uses \l QML_ELEMENT macro, which makes it available in QML. - - \snippet weatherinfo/appmodel.h 2 - \snippet weatherinfo/appmodel.h 3 - \snippet weatherinfo/appmodel.h 4 - - We use a \l QQmlListProperty for the weather forecast information, - which contains the weather forecast for the next days (the number of days - is provider-specific). This makes it easy to access the forecast from QML. - - \section1 Expose Custom Models to QML - - To expose the models to the QML UI layer, we use the \l QML_ELEMENT and - \l QML_ANONYMOUS macros. See the \l QQmlEngine class description for more - details on these macros. - - To make the types available in QML, we need to update our build accordingly. - - \section2 CMake Build - - For a CMake-based build, we need to add the following to the - \c {CMakeLists.txt}: - - \quotefromfile weatherinfo/CMakeLists.txt - \skipto qt_add_qml_module(weatherinfo - \printuntil ) - - \section2 qmake Build - - For a qmake build, we need to modify the \c {weatherinfo.pro} file in the - following way: - - \quotefromfile weatherinfo/weatherinfo.pro - \skipto CONFIG - \printuntil QML_IMPORT_MAJOR_VERSION - - \section1 Instantiate the Models in QML - - Finally, in the actual QML, we instantiate the \c {AppModel}: - - \snippet weatherinfo/weatherinfo.qml 0 - \snippet weatherinfo/weatherinfo.qml 1 - \snippet weatherinfo/weatherinfo.qml 2 - - Once the model is instantiated like this, we can use its properties - elsewhere in the QML document: - - \snippet weatherinfo/weatherinfo.qml 3 - \snippet weatherinfo/weatherinfo.qml 4 - - \section1 Files and Attributions - - The example bundles the following images from Third-Party sources: - - \table - \row - \li \l{weatherinfo-tango-icons}{Tango Icons} - \li Public Domain - \row - \li \l{weatherinfo-tango-weather-pack}{Tango Weather Icon Pack by Darkobra} - \li Public Domain - \endtable -*/ |