dragonpilot - 基於 openpilot 的開源駕駛輔助系統
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.
 
 
 
 
 
 

125 lines
3.2 KiB

// 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