1 /* SPDX-FileCopyrightText: 2020-2021 Tobias Leupold <tl@l3u.de>
2 
3    SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-KDE-Accepted-GPL
4 */
5 
6 #ifndef SETTINGS_H
7 #define SETTINGS_H
8 
9 // Local includes
10 #include "KGeoTag.h"
11 #include "Coordinates.h"
12 
13 // KDE includes
14 #include <KSharedConfig>
15 
16 // Qt includes
17 #include <QColor>
18 #include <QHash>
19 
20 class Settings : public QObject
21 {
22     Q_OBJECT
23 
24 public:
25     explicit Settings(QObject *parent);
26 
27     void saveMainWindowState(const QByteArray &data);
28     QByteArray mainWindowState() const;
29 
30     void saveShowCrosshairs(bool state);
31     bool showCrosshairs() const;
32 
33     void saveFloatersVisibility(const QHash<QString, bool> &data);
34     QHash<QString, bool> floatersVisibility();
35 
36     void saveMapCenter(const Coordinates &coordinates);
37     Coordinates mapCenter() const;
38 
39     void saveZoom(int zoom);
40     int zoom() const;
41 
42     void saveLastOpenPath(const QString &path);
43     QString lastOpenPath() const;
44 
45     void saveSplitImagesList(bool state);
46     bool splitImagesList() const;
47 
48     void saveThumbnailSize(int size);
49     int thumbnailSize() const;
50 
51     void savePreviewSize(int size);
52     int previewSize() const;
53 
54     void saveExactMatchTolerance(int seconds);
55     int exactMatchTolerance() const;
56 
57     void saveMaximumInterpolationInterval(int seconds);
58     int maximumInterpolationInterval() const;
59 
60     void saveMaximumInterpolationDistance(int meters);
61     int maximumInterpolationDistance() const;
62 
63     void saveExcludeManuallyTaggedWhenReassigning(bool state);
64     bool excludeManuallyTaggedWhenReassigning() const;
65 
66     void saveLookupElevationAutomatically(bool state);
67     bool lookupElevationAutomatically() const;
68 
69     void saveElevationDataset(const QString &id);
70     QString elevationDataset() const;
71 
72     void saveTrackColor(const QColor &color);
73     QColor trackColor() const;
74 
75     void saveTrackWidth(int width);
76     int trackWidth() const;
77 
78     void saveTrackStyle(Qt::PenStyle style);
79     Qt::PenStyle trackStyle() const;
80 
81     void saveWriteMode(const QString &writeMode);
82     QString writeMode() const;
83 
84     void saveCreateBackups(bool state);
85     bool createBackups() const;
86 
87     void saveBookmarks(const QHash<QString, Coordinates> *bookmarks);
88     QHash<QString, Coordinates> bookmarks() const;
89 
90     void saveDefaultMatchingMode(KGeoTag::SearchType mode);
91     KGeoTag::SearchType defaultMatchingMode() const;
92 
93 private: // Variables
94     KSharedConfig::Ptr m_config;
95 
96 };
97 
98 #endif // SETTINGS_H
99