mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 08:20:05 +00:00 
			
		
		
		
	Update placefile view when placefiles are edited from settings
This commit is contained in:
		
							parent
							
								
									7c21ccaf41
								
							
						
					
					
						commit
						6dedce5089
					
				
					 2 changed files with 36 additions and 3 deletions
				
			
		|  | @ -1,5 +1,6 @@ | |||
| #include <scwx/qt/map/map_widget.hpp> | ||||
| #include <scwx/qt/gl/gl.hpp> | ||||
| #include <scwx/qt/manager/placefile_manager.hpp> | ||||
| #include <scwx/qt/manager/radar_product_manager.hpp> | ||||
| #include <scwx/qt/manager/settings_manager.hpp> | ||||
| #include <scwx/qt/map/alert_layer.hpp> | ||||
|  | @ -94,6 +95,8 @@ public: | |||
| 
 | ||||
|       // Set Map Provider Details
 | ||||
|       mapProvider_ = GetMapProvider(generalSettings.map_provider().GetValue()); | ||||
| 
 | ||||
|       ConnectSignals(); | ||||
|    } | ||||
| 
 | ||||
|    ~MapWidgetImpl() | ||||
|  | @ -115,6 +118,7 @@ public: | |||
|    void AddLayer(const std::string&            id, | ||||
|                  std::shared_ptr<GenericLayer> layer, | ||||
|                  const std::string&            before = {}); | ||||
|    void ConnectSignals(); | ||||
|    void InitializeNewRadarProductView(const std::string& colorPalette); | ||||
|    void RadarProductManagerConnect(); | ||||
|    void RadarProductManagerDisconnect(); | ||||
|  | @ -142,6 +146,8 @@ public: | |||
|    std::string   imGuiContextName_; | ||||
|    bool          imGuiRendererInitialized_; | ||||
| 
 | ||||
|    std::shared_ptr<manager::PlacefileManager> placefileManager_ { | ||||
|       manager::PlacefileManager::Instance()}; | ||||
|    std::shared_ptr<manager::RadarProductManager> radarProductManager_; | ||||
| 
 | ||||
|    std::shared_ptr<common::ColorTable> colorTable_; | ||||
|  | @ -188,6 +194,22 @@ MapWidget::~MapWidget() | |||
|    makeCurrent(); | ||||
| } | ||||
| 
 | ||||
| void MapWidgetImpl::ConnectSignals() | ||||
| { | ||||
|    connect(placefileManager_.get(), | ||||
|            &manager::PlacefileManager::PlacefileEnabled, | ||||
|            widget_, | ||||
|            [this]() { widget_->update(); }); | ||||
|    connect(placefileManager_.get(), | ||||
|            &manager::PlacefileManager::PlacefileRenamed, | ||||
|            widget_, | ||||
|            [this]() { widget_->update(); }); | ||||
|    connect(placefileManager_.get(), | ||||
|            &manager::PlacefileManager::PlacefileUpdated, | ||||
|            widget_, | ||||
|            [this]() { widget_->update(); }); | ||||
| } | ||||
| 
 | ||||
| common::Level3ProductCategoryMap MapWidget::GetAvailableLevel3Categories() | ||||
| { | ||||
|    if (p->radarProductManager_ != nullptr) | ||||
|  |  | |||
|  | @ -42,6 +42,7 @@ public: | |||
|    float         mapScale_ {1.0f}; | ||||
|    float         halfWidth_ {}; | ||||
|    float         halfHeight_ {}; | ||||
|    bool          thresholded_ {true}; | ||||
|    ImFont*       monospaceFont_ {}; | ||||
| }; | ||||
| 
 | ||||
|  | @ -63,8 +64,11 @@ void PlacefileLayer::Impl::RenderTextDrawItem( | |||
|    const QMapLibreGL::CustomLayerRenderParameters& params, | ||||
|    std::shared_ptr<gr::Placefile::TextDrawItem>    di) | ||||
| { | ||||
|    auto distance = util::GeographicLib::GetDistance( | ||||
|       params.latitude, params.longitude, di->latitude_, di->longitude_); | ||||
|    auto distance = | ||||
|       (thresholded_) ? | ||||
|          util::GeographicLib::GetDistance( | ||||
|             params.latitude, params.longitude, di->latitude_, di->longitude_) : | ||||
|          0; | ||||
| 
 | ||||
|    if (distance < di->threshold_) | ||||
|    { | ||||
|  | @ -145,7 +149,11 @@ void PlacefileLayer::Render( | |||
|    std::size_t fontSize = 16; | ||||
|    auto        fontSizes = | ||||
|       manager::SettingsManager::general_settings().font_sizes().GetValue(); | ||||
|    if (fontSizes.size() > 0) | ||||
|    if (fontSizes.size() > 1) | ||||
|    { | ||||
|       fontSize = fontSizes[1]; | ||||
|    } | ||||
|    else if (fontSizes.size() > 0) | ||||
|    { | ||||
|       fontSize = fontSizes[0]; | ||||
|    } | ||||
|  | @ -159,6 +167,9 @@ void PlacefileLayer::Render( | |||
|    // Render text
 | ||||
|    for (auto& placefile : placefileManager->GetActivePlacefiles()) | ||||
|    { | ||||
|       p->thresholded_ = | ||||
|          placefileManager->placefile_thresholded(placefile->name()); | ||||
| 
 | ||||
|       for (auto& drawItem : placefile->GetDrawItems()) | ||||
|       { | ||||
|          switch (drawItem->itemType_) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat