mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 14:50:05 +00:00 
			
		
		
		
	Allow selection of radar smoothing
This commit is contained in:
		
							parent
							
								
									d3ae404f7a
								
							
						
					
					
						commit
						a8132ef9f1
					
				
					 7 changed files with 66 additions and 6 deletions
				
			
		|  | @ -322,6 +322,8 @@ MainWindow::MainWindow(QWidget* parent) : | |||
|    p->mapSettingsGroup_ = new ui::CollapsibleGroup(tr("Map Settings"), this); | ||||
|    p->mapSettingsGroup_->GetContentsLayout()->addWidget(ui->mapStyleLabel); | ||||
|    p->mapSettingsGroup_->GetContentsLayout()->addWidget(ui->mapStyleComboBox); | ||||
|    p->mapSettingsGroup_->GetContentsLayout()->addWidget( | ||||
|       ui->smoothRadarDataCheckBox); | ||||
|    p->mapSettingsGroup_->GetContentsLayout()->addWidget( | ||||
|       ui->trackLocationCheckBox); | ||||
|    ui->radarToolboxScrollAreaContents->layout()->replaceWidget( | ||||
|  | @ -1085,6 +1087,16 @@ void MainWindowImpl::ConnectOtherSignals() | |||
|                  } | ||||
|               } | ||||
|            }); | ||||
|    connect(mainWindow_->ui->smoothRadarDataCheckBox, | ||||
|            &QCheckBox::checkStateChanged, | ||||
|            mainWindow_, | ||||
|            [this](Qt::CheckState state) | ||||
|            { | ||||
|               bool smoothingEnabled = (state == Qt::CheckState::Checked); | ||||
| 
 | ||||
|               // Turn on smoothing
 | ||||
|               activeMap_->SetSmoothingEnabled(smoothingEnabled); | ||||
|            }); | ||||
|    connect(mainWindow_->ui->trackLocationCheckBox, | ||||
|            &QCheckBox::checkStateChanged, | ||||
|            mainWindow_, | ||||
|  | @ -1471,6 +1483,10 @@ void MainWindowImpl::UpdateRadarProductSettings() | |||
|    { | ||||
|       level2SettingsGroup_->setVisible(false); | ||||
|    } | ||||
| 
 | ||||
|    mainWindow_->ui->smoothRadarDataCheckBox->setCheckState( | ||||
|       activeMap_->GetSmoothingEnabled() ? Qt::CheckState::Checked : | ||||
|                                           Qt::CheckState::Unchecked); | ||||
| } | ||||
| 
 | ||||
| void MainWindowImpl::UpdateRadarSite() | ||||
|  |  | |||
|  | @ -153,8 +153,8 @@ | |||
|          <rect> | ||||
|           <x>0</x> | ||||
|           <y>0</y> | ||||
|           <width>205</width> | ||||
|           <height>701</height> | ||||
|           <width>190</width> | ||||
|           <height>680</height> | ||||
|          </rect> | ||||
|         </property> | ||||
|         <layout class="QVBoxLayout" name="verticalLayout_6"> | ||||
|  | @ -329,6 +329,13 @@ | |||
|             <item> | ||||
|              <widget class="QComboBox" name="mapStyleComboBox"/> | ||||
|             </item> | ||||
|             <item> | ||||
|              <widget class="QCheckBox" name="smoothRadarDataCheckBox"> | ||||
|               <property name="text"> | ||||
|                <string>Smooth Radar Data</string> | ||||
|               </property> | ||||
|              </widget> | ||||
|             </item> | ||||
|             <item> | ||||
|              <widget class="QCheckBox" name="trackLocationCheckBox"> | ||||
|               <property name="text"> | ||||
|  |  | |||
|  | @ -225,7 +225,7 @@ public: | |||
|    std::shared_ptr<OverlayLayer>        overlayLayer_; | ||||
|    std::shared_ptr<OverlayProductLayer> overlayProductLayer_ {nullptr}; | ||||
|    std::shared_ptr<PlacefileLayer>      placefileLayer_; | ||||
|    std::shared_ptr<MarkerLayer>            markerLayer_; | ||||
|    std::shared_ptr<MarkerLayer>         markerLayer_; | ||||
|    std::shared_ptr<ColorTableLayer>     colorTableLayer_; | ||||
|    std::shared_ptr<RadarSiteLayer>      radarSiteLayer_ {nullptr}; | ||||
| 
 | ||||
|  | @ -233,6 +233,7 @@ public: | |||
| 
 | ||||
|    bool autoRefreshEnabled_; | ||||
|    bool autoUpdateEnabled_; | ||||
|    bool smoothingEnabled_ {false}; | ||||
| 
 | ||||
|    common::Level2Product selectedLevel2Product_; | ||||
| 
 | ||||
|  | @ -727,6 +728,23 @@ std::uint16_t MapWidget::GetVcp() const | |||
|    } | ||||
| } | ||||
| 
 | ||||
| bool MapWidget::GetSmoothingEnabled() const | ||||
| { | ||||
|    return p->smoothingEnabled_; | ||||
| } | ||||
| 
 | ||||
| void MapWidget::SetSmoothingEnabled(bool smoothingEnabled) | ||||
| { | ||||
|    p->smoothingEnabled_ = smoothingEnabled; | ||||
| 
 | ||||
|    auto radarProductView = p->context_->radar_product_view(); | ||||
|    if (radarProductView != nullptr) | ||||
|    { | ||||
|       radarProductView->set_smoothing_enabled(smoothingEnabled); | ||||
|       radarProductView->Update(); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| void MapWidget::SelectElevation(float elevation) | ||||
| { | ||||
|    auto radarProductView = p->context_->radar_product_view(); | ||||
|  | @ -775,6 +793,7 @@ void MapWidget::SelectRadarProduct(common::RadarProductGroup group, | |||
| 
 | ||||
|       radarProductView = view::RadarProductViewFactory::Create( | ||||
|          group, productName, productCode, p->radarProductManager_); | ||||
|       radarProductView->set_smoothing_enabled(p->smoothingEnabled_); | ||||
|       p->context_->set_radar_product_view(radarProductView); | ||||
| 
 | ||||
|       p->RadarProductViewConnect(); | ||||
|  |  | |||
|  | @ -48,6 +48,7 @@ public: | |||
|    std::string                           GetRadarProductName() const; | ||||
|    std::shared_ptr<config::RadarSite>    GetRadarSite() const; | ||||
|    std::chrono::system_clock::time_point GetSelectedTime() const; | ||||
|    bool                                  GetSmoothingEnabled() const; | ||||
|    std::uint16_t                         GetVcp() const; | ||||
| 
 | ||||
|    void SelectElevation(float elevation); | ||||
|  | @ -117,6 +118,7 @@ public: | |||
|                          double pitch); | ||||
|    void SetInitialMapStyle(const std::string& styleName); | ||||
|    void SetMapStyle(const std::string& styleName); | ||||
|    void SetSmoothingEnabled(bool enabled); | ||||
| 
 | ||||
|    /**
 | ||||
|     * Updates the coordinates associated with mouse movement from another map. | ||||
|  |  | |||
|  | @ -131,6 +131,8 @@ public: | |||
|    std::shared_ptr<wsr88d::rda::GenericRadarData::MomentDataBlock> | ||||
|       momentDataBlock0_; | ||||
| 
 | ||||
|    bool prevSmoothingEnabled_ {false}; | ||||
| 
 | ||||
|    std::vector<float>    coordinates_ {}; | ||||
|    std::vector<float>    vertices_ {}; | ||||
|    std::vector<uint8_t>  dataMoments8_ {}; | ||||
|  | @ -512,6 +514,7 @@ void Level2ProductView::ComputeSweep() | |||
| 
 | ||||
|    std::shared_ptr<manager::RadarProductManager> radarProductManager = | ||||
|       radar_product_manager(); | ||||
|    const bool smoothingEnabled = smoothing_enabled(); | ||||
| 
 | ||||
|    std::shared_ptr<wsr88d::rda::ElevationScan> radarData; | ||||
|    std::chrono::system_clock::time_point       requestedTime {selected_time()}; | ||||
|  | @ -524,14 +527,14 @@ void Level2ProductView::ComputeSweep() | |||
|       Q_EMIT SweepNotComputed(types::NoUpdateReason::NotLoaded); | ||||
|       return; | ||||
|    } | ||||
|    if (radarData == p->elevationScan_) | ||||
|    if (radarData == p->elevationScan_ && | ||||
|        smoothingEnabled == p->prevSmoothingEnabled_) | ||||
|    { | ||||
|       Q_EMIT SweepNotComputed(types::NoUpdateReason::NoChange); | ||||
|       return; | ||||
|    } | ||||
| 
 | ||||
|    // TODO: Where does this come from?
 | ||||
|    bool smoothingEnabled = false; | ||||
|    p->prevSmoothingEnabled_ = smoothingEnabled; | ||||
| 
 | ||||
|    logger_->debug("Computing Sweep"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -41,6 +41,7 @@ public: | |||
|    std::mutex sweepMutex_; | ||||
| 
 | ||||
|    std::chrono::system_clock::time_point selectedTime_; | ||||
|    bool                                  smoothingEnabled_ {false}; | ||||
| 
 | ||||
|    std::shared_ptr<manager::RadarProductManager> radarProductManager_; | ||||
| }; | ||||
|  | @ -87,6 +88,11 @@ std::chrono::system_clock::time_point RadarProductView::selected_time() const | |||
|    return p->selectedTime_; | ||||
| } | ||||
| 
 | ||||
| bool RadarProductView::smoothing_enabled() const | ||||
| { | ||||
|    return p->smoothingEnabled_; | ||||
| } | ||||
| 
 | ||||
| std::chrono::system_clock::time_point RadarProductView::sweep_time() const | ||||
| { | ||||
|    return {}; | ||||
|  | @ -105,6 +111,11 @@ void RadarProductView::set_radar_product_manager( | |||
|    ConnectRadarProductManager(); | ||||
| } | ||||
| 
 | ||||
| void RadarProductView::set_smoothing_enabled(bool smoothingEnabled) | ||||
| { | ||||
|    p->smoothingEnabled_ = smoothingEnabled; | ||||
| } | ||||
| 
 | ||||
| void RadarProductView::Initialize() | ||||
| { | ||||
|    ComputeSweep(); | ||||
|  |  | |||
|  | @ -49,10 +49,12 @@ public: | |||
| 
 | ||||
|    std::shared_ptr<manager::RadarProductManager> radar_product_manager() const; | ||||
|    std::chrono::system_clock::time_point         selected_time() const; | ||||
|    bool                                          smoothing_enabled() const; | ||||
|    std::mutex&                                   sweep_mutex(); | ||||
| 
 | ||||
|    void set_radar_product_manager( | ||||
|       std::shared_ptr<manager::RadarProductManager> radarProductManager); | ||||
|    void set_smoothing_enabled(bool smoothingEnabled); | ||||
| 
 | ||||
|    void Initialize(); | ||||
|    virtual void | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat