File indexing completed on 2024-05-05 03:49:18
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2012 Dennis Nienhüser <nienhueser@kde.org> 0004 // 0005 0006 #ifndef MARBLE_DECLARATIVE_NAVIGATION_H 0007 #define MARBLE_DECLARATIVE_NAVIGATION_H 0008 0009 #include <QObject> 0010 #include <QtQml> 0011 0012 namespace Marble { 0013 0014 class MarbleQuickItem; 0015 class NavigationPrivate; 0016 0017 class Navigation : public QObject 0018 { 0019 Q_OBJECT 0020 Q_PROPERTY(Marble::MarbleQuickItem * marbleQuickItem READ marbleQuickItem WRITE setMarbleQuickItem NOTIFY marbleQuickItemChanged) 0021 Q_PROPERTY(bool guidanceModeEnabled READ guidanceModeEnabled WRITE setGuidanceModeEnabled NOTIFY guidanceModeEnabledChanged) 0022 Q_PROPERTY(bool muted READ muted WRITE setMuted NOTIFY mutedChanged) 0023 Q_PROPERTY(QString speaker READ speaker WRITE setSpeaker NOTIFY speakerChanged) 0024 Q_PROPERTY(QString nextInstructionText READ nextInstructionText NOTIFY nextInstructionTextChanged) 0025 Q_PROPERTY(QString nextRoad READ nextRoad NOTIFY nextRoadChanged) 0026 Q_PROPERTY(QString nextInstructionImage READ nextInstructionImage NOTIFY nextInstructionImageChanged) 0027 Q_PROPERTY(qreal nextInstructionDistance READ nextInstructionDistance NOTIFY nextInstructionDistanceChanged) 0028 Q_PROPERTY(qreal destinationDistance READ destinationDistance NOTIFY destinationDistanceChanged) 0029 Q_PROPERTY(QString voiceNavigationAnnouncement READ voiceNavigationAnnouncement NOTIFY voiceNavigationAnnouncementChanged) 0030 Q_PROPERTY(bool deviated READ deviated NOTIFY deviationChanged) 0031 Q_PROPERTY(double screenAccuracy READ screenAccuracy NOTIFY screenAccuracyChanged) 0032 Q_PROPERTY(QPointF screenPosition READ screenPosition NOTIFY screenPositionChanged) 0033 0034 public: 0035 explicit Navigation( QObject* parent = nullptr ); 0036 0037 ~Navigation() override; 0038 0039 bool guidanceModeEnabled() const; 0040 0041 void setGuidanceModeEnabled( bool enabled ); 0042 0043 bool muted() const; 0044 0045 void setMuted(bool enabled); 0046 0047 QString nextInstructionText() const; 0048 0049 QString nextRoad() const; 0050 0051 QString nextInstructionImage() const; 0052 0053 qreal nextInstructionDistance() const; 0054 0055 qreal destinationDistance() const; 0056 0057 QString voiceNavigationAnnouncement() const; 0058 0059 QString speaker() const; 0060 0061 void setSpeaker( const QString &speaker ); 0062 0063 bool deviated() const; 0064 0065 Marble::MarbleQuickItem * marbleQuickItem() const; 0066 0067 double screenAccuracy() const; 0068 0069 QPointF screenPosition() const; 0070 0071 public Q_SLOTS: 0072 void setMarbleQuickItem(Marble::MarbleQuickItem * marbleQuickItem); 0073 0074 Q_SIGNALS: 0075 void mapChanged(); 0076 0077 void guidanceModeEnabledChanged(); 0078 0079 void mutedChanged(bool arg); 0080 0081 void nextInstructionTextChanged(); 0082 0083 void nextInstructionImageChanged(); 0084 0085 void nextInstructionDistanceChanged(); 0086 0087 void destinationDistanceChanged(); 0088 0089 void nextRoadChanged(); 0090 0091 void voiceNavigationAnnouncementChanged(); 0092 0093 void soundEnabledChanged(); 0094 0095 void speakerChanged(); 0096 0097 void deviationChanged(); 0098 0099 void marbleQuickItemChanged(Marble::MarbleQuickItem * marbleQuickItem); 0100 0101 void screenAccuracyChanged(); 0102 0103 void screenPositionChanged(); 0104 0105 private Q_SLOTS: 0106 void update(); 0107 void updateScreenPosition(); 0108 0109 private: 0110 NavigationPrivate* const d; 0111 }; 0112 0113 } 0114 0115 #endif