File indexing completed on 2024-04-28 15:39:08

0001 // SPDX-FileCopyrightText: 2020-2021 Tobias Leupold <tl at stonemx dot de>
0002 //
0003 // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 
0005 #ifndef SHAREDOBJECTS_H
0006 #define SHAREDOBJECTS_H
0007 
0008 // Local includes
0009 #include "KGeoTag.h"
0010 #include "Coordinates.h"
0011 
0012 // Qt includes
0013 #include <QObject>
0014 #include <QLocale>
0015 
0016 // Local classes
0017 class Settings;
0018 class ImagesModel;
0019 class GeoDataModel;
0020 class GpxEngine;
0021 class ElevationEngine;
0022 class MapWidget;
0023 class CoordinatesFormatter;
0024 
0025 class SharedObjects : public QObject
0026 {
0027     Q_OBJECT
0028 
0029 public:
0030     explicit SharedObjects(QObject *parent = nullptr);
0031     Settings *settings() const;
0032     ImagesModel *imagesModel() const;
0033     GeoDataModel *geoDataModel() const;
0034     GpxEngine *gpxEngine() const;
0035     ElevationEngine *elevationEngine() const;
0036     MapWidget *mapWidget() const;
0037     CoordinatesFormatter *coordinatesFormatter() const;
0038 
0039     void setBookmarks(const QHash<QString, Coordinates> *bookmarks);
0040     const QHash<QString, Coordinates> *bookmarks() const;
0041 
0042     const QLocale *locale() const;
0043 
0044 private: // Variables
0045     Settings *m_settings;
0046     ImagesModel *m_imagesModel;
0047     GeoDataModel *m_geoDataModel;
0048     GpxEngine *m_gpxEngine;
0049     ElevationEngine *m_elevationEngine;
0050     MapWidget *m_mapWidget;
0051     QLocale m_locale;
0052     CoordinatesFormatter *m_coordinatesFormatter;
0053 
0054     const QHash<QString, Coordinates> *m_bookmarks;
0055 
0056 };
0057 
0058 #endif // SHAREDOBJECTS_H