The controller part of a BasemapGallery. This class handles the management of the BasemapGalleryItem objects, and listening to changes to the current Basemap of an associated GeoModel. More...
Header: | #include <BasemapGalleryController> |
Inherits: | QObject |
Properties
- currentBasemap : Basemap* const
- gallery : QAbstractListModel* const
- geoModel : GeoModel*
- portal : Portal*
Public Functions
BasemapGalleryController(QObject *parent = nullptr) | |
virtual | ~BasemapGalleryController() override |
bool | append(Esri::ArcGISRuntime::Basemap *basemap) |
bool | append(Esri::ArcGISRuntime::Basemap *basemap, QImage thumbnail, QString tooltip = {}) |
Esri::ArcGISRuntime::Basemap * | currentBasemap() const |
Esri::ArcGISRuntime::Toolkit::GenericListModel * | gallery() const |
Esri::ArcGISRuntime::GeoModel * | geoModel() const |
Esri::ArcGISRuntime::Portal * | portal() const |
void | setCurrentBasemap(Esri::ArcGISRuntime::Basemap *basemap) |
void | setGeoModel(Esri::ArcGISRuntime::GeoModel *geoModel) |
void | setGeoModelFromGeoView(QObject *view) |
void | setPortal(Esri::ArcGISRuntime::Portal *portal) |
Signals
void | currentBasemapChanged() |
void | geoModelChanged() |
void | portalChanged() |
Detailed Description
Property Documentation
[read-only]
currentBasemap : Basemap* const
This property holds the current basemap of in the current geoModel.
Access functions:
Esri::ArcGISRuntime::Basemap * | currentBasemap() const |
Notifier signal:
void | currentBasemapChanged() |
See also Esri::ArcGISRuntime::Toolkit::BasemapGalleryController::currentBasemap().
[read-only]
gallery : QAbstractListModel * const
This property holds the gallery of BasemapGalleryItem objects.
Access functions:
Esri::ArcGISRuntime::Toolkit::GenericListModel * | gallery() const |
See also Esri::ArcGISRuntime::Toolkit::BasemapGalleryController::gallery().
geoModel : GeoModel *
This property holds the geoModel the controller is listening for basemap changes.
Access functions:
Esri::ArcGISRuntime::GeoModel * | geoModel() const |
void | setGeoModel(Esri::ArcGISRuntime::GeoModel *geoModel) |
Notifier signal:
void | geoModelChanged() |
See also Esri::ArcGISRuntime::Toolkit::BasemapGalleryController::geoModel().
portal : Portal*
This property holds the optional portal the controller queries for basemaps
Access functions:
Notifier signal:
void | portalChanged() |
See also Esri::ArcGISRuntime::Toolkit::BasemapGalleryController::portal().
Member Function Documentation
[invokable]
BasemapGalleryController::BasemapGalleryController (QObject *parent = nullptr)
Constructs a new controller object with a given parent.
The controller will automatically populate itself with the developer basemaps from AGOL.
The given default basemaps require either an access token or user authentication to be signed into the app.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[override virtual]
BasemapGalleryController::~BasemapGalleryController ()
Destructor.
[invokable]
bool BasemapGalleryController::append(Esri::ArcGISRuntime::Basemap *basemap)
Convenience function that appends a basemap to the gallery.
- basemap Basemap to add to the gallery.
This is equivelent to calling
controller->gallery()->append(new BasemapGalleryItem(basemap, controller));
Returns true
if successfully added, false otherwise.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[invokable]
bool BasemapGalleryController::append(Esri::ArcGISRuntime::Basemap *basemap, QImage thumbnail, QString tooltip = {})
Convenience function that appends a basemap to the gallery with an overloaded thumbnail and tooltip.
- basemap Basemap to add to the gallery.
- thumbnail Thumbnail to display in the gallery.
- tooltip Tooltip to show when mouse hovers over the gallery item.
This is equivelent to calling
controller->gallery()->append(new BasemapGalleryItem(basemap, thumbnail, tooltip, controller));
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
Esri::ArcGISRuntime::Basemap *BasemapGalleryController::currentBasemap () const
Returns the current basemap selected in the BasemapGallery.
If a GeoModel is set, this is also the basemap applied to that GeoModel.
It is possible for the current basemap to not be in the gallery.
Note: Getter function for property currentBasemap.
See also setCurrentBasemap().
[signal]
void BasemapGalleryController::currentBasemapChanged ()
Emitted when the current basemap has changed.
Note: Notifier signal for property currentBasemap.
Esri::ArcGISRuntime::Toolkit::GenericListModel *BasemapGalleryController::gallery() const
Returns the known list of available basemaps. Internally, this is a GenericListModel
with an elementType
of Basemap
.
Note: Getter function for property gallery.
Esri::ArcGISRuntime::GeoModel *BasemapGalleryController::geoModel () const
Returns the GeoModel
.
Note: Getter function for property geoModel.
See also setGeoModel().
[signal]
void BasemapGalleryController::geoModelChanged ()
Emitted when the geoModel has changed.
Note: Notifier signal for property geoModel.
Esri::ArcGISRuntime::Portal *BasemapGalleryController::portal() const
Returns the current portal if set.
Note: Getter function for property portal.
See also setPortal().
[signal]
void BasemapGalleryController::portalChanged ()
Emitted when the portal has changed.
Note: Notifier signal for property portal.
[invokable]
void BasemapGalleryController::setCurrentBasemap (Esri::ArcGISRuntime::Basemap *basemap)
Sets the current basemap associated with the map/scene of the given GeoModel to basemap.
It is possible for the current basemap to not be in the gallery.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
See also currentBasemap().
void BasemapGalleryController::setGeoModel (Esri::ArcGISRuntime::GeoModel *geoModel )
Set the GeoModel object this Controller uses to geoModel. This function will also extract the basemap from the Geomodel and set it as the current one. Passing a geoModel nullptr
, will unset the current geomodel loaded.
Note: Setter function for property geoModel.
See also geoModel().
[invokable]
void BasemapGalleryController::setGeoModelFromGeoView (QObject *view)
Convenience function for QML/C++ users which allows the map/scene to be extracted from a SceneView or MapView assigned to view in QML code.
This is only a concern as [Map/Scene]QuickView does not expose a [Map/Scene] property in QML.
For example, to hook up BasemapGallery with a MapQuickView (which does not expose a map property):
MapView { BasemapGallery { id: gallery anchors { left: view.left top: view.top margins: 5 } onMapChanged: gallery.setGeoModelFromGeoView(this) }
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
void BasemapGalleryController::setPortal (Esri::ArcGISRuntime::Portal *portal)
Sets the current portal. This resets the gallery.
When portal is set, the basemaps of the Portal are fetched via Portal::fetchBasemapsAsync
.
This is useful for displaying an organization's basemaps or to display a gallery of the old-style basemaps (which do not require an access token or user authentication to sign in).
To display the old-style basemaps do the following:
controller->setPortal(new Portal(QUrl("https://arcgis.com"), this));
Note: Setter function for property portal.
See also portal().