mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 06:30:05 +00:00 
			
		
		
		
	Fix radar product manager to view signals on manager change
This commit is contained in:
		
							parent
							
								
									f1a5d4a744
								
							
						
					
					
						commit
						6c7a02ff85
					
				
					 6 changed files with 39 additions and 5 deletions
				
			
		|  | @ -106,7 +106,13 @@ Level2ProductView::Level2ProductView( | ||||||
|     RadarProductView(radarProductManager), |     RadarProductView(radarProductManager), | ||||||
|     p(std::make_unique<Level2ProductViewImpl>(product)) |     p(std::make_unique<Level2ProductViewImpl>(product)) | ||||||
| { | { | ||||||
|    connect(radarProductManager.get(), |    ConnectRadarProductManager(); | ||||||
|  | } | ||||||
|  | Level2ProductView::~Level2ProductView() = default; | ||||||
|  | 
 | ||||||
|  | void Level2ProductView::ConnectRadarProductManager() | ||||||
|  | { | ||||||
|  |    connect(radar_product_manager().get(), | ||||||
|            &manager::RadarProductManager::DataReloaded, |            &manager::RadarProductManager::DataReloaded, | ||||||
|            this, |            this, | ||||||
|            [this](std::shared_ptr<types::RadarProductRecord> record) |            [this](std::shared_ptr<types::RadarProductRecord> record) | ||||||
|  | @ -121,7 +127,14 @@ Level2ProductView::Level2ProductView( | ||||||
|               } |               } | ||||||
|            }); |            }); | ||||||
| } | } | ||||||
| Level2ProductView::~Level2ProductView() = default; | 
 | ||||||
|  | void Level2ProductView::DisconnectRadarProductManager() | ||||||
|  | { | ||||||
|  |    disconnect(radar_product_manager().get(), | ||||||
|  |               &manager::RadarProductManager::DataReloaded, | ||||||
|  |               this, | ||||||
|  |               nullptr); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| const std::vector<boost::gil::rgba8_pixel_t>& | const std::vector<boost::gil::rgba8_pixel_t>& | ||||||
| Level2ProductView::color_table() const | Level2ProductView::color_table() const | ||||||
|  |  | ||||||
|  | @ -54,6 +54,8 @@ public: | ||||||
|           std::shared_ptr<manager::RadarProductManager> radarProductManager); |           std::shared_ptr<manager::RadarProductManager> radarProductManager); | ||||||
| 
 | 
 | ||||||
| protected: | protected: | ||||||
|  |    void ConnectRadarProductManager() override; | ||||||
|  |    void DisconnectRadarProductManager() override; | ||||||
|    void UpdateColorTable() override; |    void UpdateColorTable() override; | ||||||
| 
 | 
 | ||||||
| protected slots: | protected slots: | ||||||
|  |  | ||||||
|  | @ -59,7 +59,13 @@ Level3ProductView::Level3ProductView( | ||||||
|     RadarProductView(radarProductManager), |     RadarProductView(radarProductManager), | ||||||
|     p(std::make_unique<Level3ProductViewImpl>(product)) |     p(std::make_unique<Level3ProductViewImpl>(product)) | ||||||
| { | { | ||||||
|    connect(radarProductManager.get(), |    ConnectRadarProductManager(); | ||||||
|  | } | ||||||
|  | Level3ProductView::~Level3ProductView() = default; | ||||||
|  | 
 | ||||||
|  | void Level3ProductView::ConnectRadarProductManager() | ||||||
|  | { | ||||||
|  |    connect(radar_product_manager().get(), | ||||||
|            &manager::RadarProductManager::DataReloaded, |            &manager::RadarProductManager::DataReloaded, | ||||||
|            this, |            this, | ||||||
|            [this](std::shared_ptr<types::RadarProductRecord> record) |            [this](std::shared_ptr<types::RadarProductRecord> record) | ||||||
|  | @ -75,7 +81,14 @@ Level3ProductView::Level3ProductView( | ||||||
|               } |               } | ||||||
|            }); |            }); | ||||||
| } | } | ||||||
| Level3ProductView::~Level3ProductView() = default; | 
 | ||||||
|  | void Level3ProductView::DisconnectRadarProductManager() | ||||||
|  | { | ||||||
|  |    disconnect(radar_product_manager().get(), | ||||||
|  |               &manager::RadarProductManager::DataReloaded, | ||||||
|  |               this, | ||||||
|  |               nullptr); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| const std::vector<boost::gil::rgba8_pixel_t>& | const std::vector<boost::gil::rgba8_pixel_t>& | ||||||
| Level3ProductView::color_table() const | Level3ProductView::color_table() const | ||||||
|  |  | ||||||
|  | @ -45,6 +45,8 @@ protected: | ||||||
|    void set_graphic_product_message( |    void set_graphic_product_message( | ||||||
|       std::shared_ptr<wsr88d::rpg::GraphicProductMessage> gpm); |       std::shared_ptr<wsr88d::rpg::GraphicProductMessage> gpm); | ||||||
| 
 | 
 | ||||||
|  |    void ConnectRadarProductManager() override; | ||||||
|  |    void DisconnectRadarProductManager() override; | ||||||
|    void UpdateColorTable() override; |    void UpdateColorTable() override; | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -99,7 +99,9 @@ std::mutex& RadarProductView::sweep_mutex() | ||||||
| void RadarProductView::set_radar_product_manager( | void RadarProductView::set_radar_product_manager( | ||||||
|    std::shared_ptr<manager::RadarProductManager> radarProductManager) |    std::shared_ptr<manager::RadarProductManager> radarProductManager) | ||||||
| { | { | ||||||
|  |    DisconnectRadarProductManager(); | ||||||
|    p->radarProductManager_ = radarProductManager; |    p->radarProductManager_ = radarProductManager; | ||||||
|  |    ConnectRadarProductManager(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void RadarProductView::Initialize() | void RadarProductView::Initialize() | ||||||
|  |  | ||||||
|  | @ -64,7 +64,9 @@ public: | ||||||
|    GetCfpMomentData() const; |    GetCfpMomentData() const; | ||||||
| 
 | 
 | ||||||
| protected: | protected: | ||||||
|    virtual void UpdateColorTable() = 0; |    virtual void ConnectRadarProductManager()    = 0; | ||||||
|  |    virtual void DisconnectRadarProductManager() = 0; | ||||||
|  |    virtual void UpdateColorTable()              = 0; | ||||||
| 
 | 
 | ||||||
| protected slots: | protected slots: | ||||||
|    virtual void ComputeSweep(); |    virtual void ComputeSweep(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat