mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 04:10:06 +00:00 
			
		
		
		
	Add map center icon to overlay layer
This commit is contained in:
		
							parent
							
								
									5beb16271a
								
							
						
					
					
						commit
						fcf6ef800b
					
				
					 1 changed files with 23 additions and 1 deletions
				
			
		|  | @ -69,6 +69,9 @@ public: | |||
|       showMapAttributionCallbackUuid_ = | ||||
|          generalSettings.show_map_attribution().RegisterValueChangedCallback( | ||||
|             [this](const bool&) { Q_EMIT self_->NeedsRendering(); }); | ||||
|       showMapCenterCallbackUuid_ = | ||||
|          generalSettings.show_map_center().RegisterValueChangedCallback( | ||||
|             [this](const bool&) { Q_EMIT self_->NeedsRendering(); }); | ||||
|       showMapLogoCallbackUuid_ = | ||||
|          generalSettings.show_map_logo().RegisterValueChangedCallback( | ||||
|             [this](const bool&) { Q_EMIT self_->NeedsRendering(); }); | ||||
|  | @ -84,6 +87,8 @@ public: | |||
|          defaultTimeZoneCallbackUuid_); | ||||
|       generalSettings.show_map_attribution().UnregisterValueChangedCallback( | ||||
|          showMapAttributionCallbackUuid_); | ||||
|       generalSettings.show_map_center().UnregisterValueChangedCallback( | ||||
|          showMapCenterCallbackUuid_); | ||||
|       generalSettings.show_map_logo().UnregisterValueChangedCallback( | ||||
|          showMapLogoCallbackUuid_); | ||||
|    } | ||||
|  | @ -93,6 +98,7 @@ public: | |||
|    boost::uuids::uuid clockFormatCallbackUuid_; | ||||
|    boost::uuids::uuid defaultTimeZoneCallbackUuid_; | ||||
|    boost::uuids::uuid showMapAttributionCallbackUuid_; | ||||
|    boost::uuids::uuid showMapCenterCallbackUuid_; | ||||
|    boost::uuids::uuid showMapLogoCallbackUuid_; | ||||
| 
 | ||||
|    std::shared_ptr<manager::PositionManager> positionManager_ { | ||||
|  | @ -112,6 +118,8 @@ public: | |||
|       types::GetTextureName(types::ImageTexture::CardinalPoint24)}; | ||||
|    const std::string& compassIconName_ { | ||||
|       types::GetTextureName(types::ImageTexture::Compass24)}; | ||||
|    const std::string& mapCenterIconName_ { | ||||
|       types::GetTextureName(types::ImageTexture::Cursor17)}; | ||||
| 
 | ||||
|    const std::string& mapboxLogoImageName_ { | ||||
|       types::GetTextureName(types::ImageTexture::MapboxLogo)}; | ||||
|  | @ -119,6 +127,7 @@ public: | |||
|       types::GetTextureName(types::ImageTexture::MapTilerLogo)}; | ||||
| 
 | ||||
|    std::shared_ptr<gl::draw::IconDrawItem> compassIcon_ {}; | ||||
|    std::shared_ptr<gl::draw::IconDrawItem> mapCenterIcon_ {}; | ||||
|    double                                  lastBearing_ {0.0}; | ||||
| 
 | ||||
|    std::shared_ptr<gl::draw::IconDrawItem> mapLogoIcon_ {}; | ||||
|  | @ -185,6 +194,7 @@ void OverlayLayer::Initialize() | |||
|    p->icons_->StartIconSheets(); | ||||
|    p->icons_->AddIconSheet(p->cardinalPointIconName_); | ||||
|    p->icons_->AddIconSheet(p->compassIconName_); | ||||
|    p->icons_->AddIconSheet(p->mapCenterIconName_); | ||||
|    p->icons_->AddIconSheet(p->mapboxLogoImageName_)->SetAnchor(0.0f, 1.0f); | ||||
|    p->icons_->AddIconSheet(p->mapTilerLogoImageName_)->SetAnchor(0.0f, 1.0f); | ||||
|    p->icons_->FinishIconSheets(); | ||||
|  | @ -234,6 +244,9 @@ void OverlayLayer::Initialize() | |||
|          } | ||||
|       }); | ||||
| 
 | ||||
|    p->mapCenterIcon_ = p->icons_->AddIcon(); | ||||
|    p->icons_->SetIconTexture(p->mapCenterIcon_, p->mapCenterIconName_, 0); | ||||
| 
 | ||||
|    p->mapLogoIcon_ = p->icons_->AddIcon(); | ||||
|    if (context()->map_provider() == MapProvider::Mapbox) | ||||
|    { | ||||
|  | @ -411,6 +424,16 @@ void OverlayLayer::Render(const QMapLibre::CustomLayerRenderParameters& params) | |||
| 
 | ||||
|    auto& generalSettings = settings::GeneralSettings::Instance(); | ||||
| 
 | ||||
|    // Map Center Icon
 | ||||
|    if (params.width != p->lastWidth_ || params.height != p->lastHeight_) | ||||
|    { | ||||
|       // Draw the icon in the center of the widget
 | ||||
|       p->icons_->SetIconLocation( | ||||
|          p->mapCenterIcon_, params.width / 2.0, params.height / 2.0); | ||||
|    } | ||||
|    p->icons_->SetIconVisible(p->mapCenterIcon_, | ||||
|                              generalSettings.show_map_center().GetValue()); | ||||
| 
 | ||||
|    QMargins colorTableMargins = context()->color_table_margins(); | ||||
|    if (colorTableMargins != p->lastColorTableMargins_ || p->firstRender_) | ||||
|    { | ||||
|  | @ -418,7 +441,6 @@ void OverlayLayer::Render(const QMapLibre::CustomLayerRenderParameters& params) | |||
|       p->icons_->SetIconLocation(p->mapLogoIcon_, | ||||
|                                  10 + colorTableMargins.left(), | ||||
|                                  10 + colorTableMargins.bottom()); | ||||
|       p->icons_->FinishIcons(); | ||||
|    } | ||||
|    p->icons_->SetIconVisible(p->mapLogoIcon_, | ||||
|                              generalSettings.show_map_logo().GetValue()); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat