summaryrefslogtreecommitdiff
path: root/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc')
-rw-r--r--examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc164
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
-*/