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