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