6#ifndef MARBLE_DECLARATIVE_ROUTING_H
7#define MARBLE_DECLARATIVE_ROUTING_H
9#include "routing/AlternativeRoutesModel.h"
13#include <RouteRequestModel.h>
14#include <routing/RoutingModel.h>
27 Q_PROPERTY(MarbleMap *marbleMap READ marbleMap WRITE setMarbleMap NOTIFY marbleMapChanged)
28 Q_PROPERTY(RoutingProfile routingProfile READ routingProfile WRITE setRoutingProfile NOTIFY routingProfileChanged)
29 Q_PROPERTY(
bool hasRoute READ hasRoute NOTIFY hasRouteChanged)
30 Q_PROPERTY(
bool hasWaypoints READ hasWaypoints NOTIFY hasWaypointsChanged)
31 Q_PROPERTY(RoutingModel *routingModel READ routingModel NOTIFY routingModelChanged)
32 Q_PROPERTY(
QQmlComponent *waypointDelegate READ waypointDelegate WRITE setWaypointDelegate NOTIFY waypointDelegateChanged)
33 Q_PROPERTY(RouteRequestModel *routeRequestModel READ routeRequestModel CONSTANT)
34 Q_PROPERTY(AlternativeRoutesModel *alternativeRoutesModel READ alternativeRoutesModel NOTIFY marbleMapChanged)
48 void setMarbleMap(MarbleMap *marbleMap);
50 MarbleMap *marbleMap();
52 RoutingProfile routingProfile()
const;
54 void setRoutingProfile(RoutingProfile profile);
56 bool hasRoute()
const;
58 bool hasWaypoints()
const;
60 RoutingModel *routingModel();
66 RouteRequestModel *routeRequestModel()
const;
68 AlternativeRoutesModel *alternativeRoutesModel()
const;
71 void addVia(qreal lon, qreal lat);
73 void addViaAtIndex(
int index, qreal lon, qreal lat);
75 void addViaByPlacemark(Placemark *placemark);
77 void addViaByPlacemarkAtIndex(
int index, Placemark *placemark);
79 void setVia(
int index, qreal lon, qreal lat);
81 void removeVia(
int index);
83 void swapVias(
int index1,
int index2);
91 void openRoute(
const QString &filename);
93 void saveRoute(
const QString &filename);
99 int addSearchResultPlacemark(Placemark *placemark);
101 void clearSearchResultPlacemarks();
104 void marbleMapChanged();
106 void routingProfileChanged();
108 void hasRouteChanged();
110 void hasWaypointsChanged();
112 void routingModelChanged();
114 void waypointDelegateChanged(
QQmlComponent *waypointDelegate);
116 void routeRequestModelChanged(RouteRequestModel *routeRequestModel);
120 QSGNode *updatePaintNode(
QSGNode *oldNode, UpdatePaintNodeData *)
override;
123 void updateWaypointItems();
125 void updateSearchResultPlacemarks();
128 RoutingPrivate *
const d;
Binds a QML item to a specific geodetic location in screen coordinates.