You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.2 KiB
126 lines
3.2 KiB
1 year ago
|
// Copyright (C) 2023 MapLibre contributors
|
||
|
// Copyright (C) 2019 Mapbox, Inc.
|
||
|
|
||
|
// SPDX-License-Identifier: BSD-2-Clause
|
||
|
|
||
|
#ifndef QMAPLIBRE_SETTINGS_H
|
||
|
#define QMAPLIBRE_SETTINGS_H
|
||
|
|
||
|
#include <QMapLibre/Export>
|
||
|
#include <QMapLibre/Types>
|
||
|
|
||
|
#include <QtCore/QString>
|
||
|
#include <QtGui/QImage>
|
||
|
|
||
|
#include <functional>
|
||
|
#include <memory>
|
||
|
|
||
|
// TODO: this will be wrapped at some point
|
||
|
namespace mbgl {
|
||
|
class TileServerOptions;
|
||
|
} // namespace mbgl
|
||
|
|
||
|
namespace QMapLibre {
|
||
|
|
||
|
class SettingsPrivate;
|
||
|
|
||
|
class Q_MAPLIBRE_CORE_EXPORT Settings {
|
||
|
public:
|
||
|
enum GLContextMode : bool {
|
||
|
UniqueGLContext,
|
||
|
SharedGLContext
|
||
|
};
|
||
|
|
||
|
enum MapMode {
|
||
|
Continuous = 0,
|
||
|
Static
|
||
|
};
|
||
|
|
||
|
enum ConstrainMode {
|
||
|
NoConstrain = 0,
|
||
|
ConstrainHeightOnly,
|
||
|
ConstrainWidthAndHeight
|
||
|
};
|
||
|
|
||
|
enum ViewportMode {
|
||
|
DefaultViewport = 0,
|
||
|
FlippedYViewport
|
||
|
};
|
||
|
|
||
|
enum ProviderTemplate {
|
||
|
NoProvider = 0,
|
||
|
MapLibreProvider,
|
||
|
MapTilerProvider,
|
||
|
MapboxProvider
|
||
|
};
|
||
|
|
||
|
using ResourceTransformFunction = std::function<std::string(const std::string &)>;
|
||
|
|
||
|
explicit Settings(ProviderTemplate provider = NoProvider);
|
||
|
~Settings();
|
||
|
Settings(const Settings &s);
|
||
|
Settings(Settings &&s) noexcept;
|
||
|
Settings &operator=(const Settings &s);
|
||
|
Settings &operator=(Settings &&s) noexcept;
|
||
|
|
||
|
[[nodiscard]] GLContextMode contextMode() const;
|
||
|
void setContextMode(GLContextMode);
|
||
|
|
||
|
[[nodiscard]] MapMode mapMode() const;
|
||
|
void setMapMode(MapMode);
|
||
|
|
||
|
[[nodiscard]] ConstrainMode constrainMode() const;
|
||
|
void setConstrainMode(ConstrainMode);
|
||
|
|
||
|
[[nodiscard]] ViewportMode viewportMode() const;
|
||
|
void setViewportMode(ViewportMode);
|
||
|
|
||
|
[[nodiscard]] unsigned cacheDatabaseMaximumSize() const;
|
||
|
void setCacheDatabaseMaximumSize(unsigned);
|
||
|
|
||
|
[[nodiscard]] QString cacheDatabasePath() const;
|
||
|
void setCacheDatabasePath(const QString &path);
|
||
|
|
||
|
[[nodiscard]] QString assetPath() const;
|
||
|
void setAssetPath(const QString &path);
|
||
|
|
||
|
[[nodiscard]] QString apiKey() const;
|
||
|
void setApiKey(const QString &key);
|
||
|
|
||
|
[[nodiscard]] QString apiBaseUrl() const;
|
||
|
void setApiBaseUrl(const QString &url);
|
||
|
|
||
|
[[nodiscard]] QString localFontFamily() const;
|
||
|
void setLocalFontFamily(const QString &family);
|
||
|
|
||
|
[[nodiscard]] QString clientName() const;
|
||
|
void setClientName(const QString &name);
|
||
|
|
||
|
[[nodiscard]] QString clientVersion() const;
|
||
|
void setClientVersion(const QString &version);
|
||
|
|
||
|
[[nodiscard]] ResourceTransformFunction resourceTransform() const;
|
||
|
void setResourceTransform(const ResourceTransformFunction &transform);
|
||
|
|
||
|
void setProviderTemplate(ProviderTemplate providerTemplate);
|
||
|
void setStyles(const Styles &styles);
|
||
|
|
||
|
[[nodiscard]] const Styles &styles() const;
|
||
|
[[nodiscard]] Styles providerStyles() const;
|
||
|
|
||
|
[[nodiscard]] Coordinate defaultCoordinate() const;
|
||
|
void setDefaultCoordinate(const Coordinate &coordinate);
|
||
|
[[nodiscard]] double defaultZoom() const;
|
||
|
void setDefaultZoom(double zoom);
|
||
|
|
||
|
[[nodiscard]] bool customTileServerOptions() const;
|
||
|
[[nodiscard]] const mbgl::TileServerOptions &tileServerOptions() const;
|
||
|
|
||
|
private:
|
||
|
std::unique_ptr<SettingsPrivate> d_ptr;
|
||
|
};
|
||
|
|
||
|
} // namespace QMapLibre
|
||
|
|
||
|
#endif // QMAPLIBRE_SETTINGS_H
|