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

0001 //* SPDX-FileCopyrightText: 2020-2022 Tobias Leupold <tl at stonemx dot de>
0002 //
0003 // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 
0005 #ifndef SETTINGS_H
0006 #define SETTINGS_H
0007 
0008 // Local includes
0009 #include "KGeoTag.h"
0010 #include "Coordinates.h"
0011 
0012 // KDE includes
0013 #include <KSharedConfig>
0014 
0015 // Qt includes
0016 #include <QColor>
0017 #include <QHash>
0018 
0019 class Settings : public QObject
0020 {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit Settings(QObject *parent);
0025 
0026     void saveMainWindowState(const QByteArray &data);
0027     QByteArray mainWindowState() const;
0028 
0029     void saveShowCrosshairs(bool state);
0030     bool showCrosshairs() const;
0031 
0032     void saveFloatersVisibility(const QHash<QString, bool> &data);
0033     QHash<QString, bool> floatersVisibility();
0034 
0035     void saveMapCenter(const Coordinates &coordinates);
0036     Coordinates mapCenter() const;
0037 
0038     void saveZoom(int zoom);
0039     int zoom() const;
0040 
0041     void saveLastOpenPath(const QString &path);
0042     QString lastOpenPath() const;
0043 
0044     void saveSplitImagesList(bool state);
0045     bool splitImagesList() const;
0046 
0047     void saveThumbnailSize(int size);
0048     int thumbnailSize() const;
0049 
0050     void savePreviewSize(int size);
0051     int previewSize() const;
0052 
0053     void saveExactMatchTolerance(int seconds);
0054     int exactMatchTolerance() const;
0055 
0056     void saveMaximumInterpolationInterval(int seconds);
0057     int maximumInterpolationInterval() const;
0058 
0059     void saveMaximumInterpolationDistance(int meters);
0060     int maximumInterpolationDistance() const;
0061 
0062     void saveExcludeManuallyTaggedWhenReassigning(bool state);
0063     bool excludeManuallyTaggedWhenReassigning() const;
0064 
0065     void saveLookupElevationAutomatically(bool state);
0066     bool lookupElevationAutomatically() const;
0067 
0068     void saveElevationDataset(const QString &id);
0069     QString elevationDataset() const;
0070 
0071     void saveTrackColor(const QColor &color);
0072     QColor trackColor() const;
0073 
0074     void saveTrackWidth(int width);
0075     int trackWidth() const;
0076 
0077     void saveTrackStyle(Qt::PenStyle style);
0078     Qt::PenStyle trackStyle() const;
0079 
0080     void saveWriteMode(const QString &writeMode);
0081     QString writeMode() const;
0082 
0083     void saveAllowWriteRawFiles(bool state);
0084     bool allowWriteRawFiles() const;
0085 
0086     void saveCreateBackups(bool state);
0087     bool createBackups() const;
0088 
0089     void saveBookmarks(const QHash<QString, Coordinates> *bookmarks);
0090     QHash<QString, Coordinates> bookmarks() const;
0091 
0092     void saveDefaultMatchingMode(KGeoTag::SearchType mode);
0093     KGeoTag::SearchType defaultMatchingMode() const;
0094 
0095 private: // Variables
0096     KSharedConfig::Ptr m_config;
0097 
0098 };
0099 
0100 #endif // SETTINGS_H