mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 06:30:05 +00:00 
			
		
		
		
	
							parent
							
								
									5caf0edf95
								
							
						
					
					
						commit
						336eb66321
					
				
					 1 changed files with 30 additions and 7 deletions
				
			
		|  | @ -159,6 +159,9 @@ public: | ||||||
|    void RadarProductViewConnect(); |    void RadarProductViewConnect(); | ||||||
|    void RadarProductViewDisconnect(); |    void RadarProductViewDisconnect(); | ||||||
|    void RunMousePicking(); |    void RunMousePicking(); | ||||||
|  |    void SelectNearestRadarSite(double                     latitude, | ||||||
|  |                                double                     longitude, | ||||||
|  |                                std::optional<std::string> type); | ||||||
|    void SetRadarSite(const std::string& radarSite); |    void SetRadarSite(const std::string& radarSite); | ||||||
|    void UpdateLoadedStyle(); |    void UpdateLoadedStyle(); | ||||||
|    bool UpdateStoredMapParameters(); |    bool UpdateStoredMapParameters(); | ||||||
|  | @ -1274,21 +1277,29 @@ void MapWidget::mousePressEvent(QMouseEvent* ev) | ||||||
|    p->lastPos_       = ev->position(); |    p->lastPos_       = ev->position(); | ||||||
|    p->lastGlobalPos_ = ev->globalPosition(); |    p->lastGlobalPos_ = ev->globalPosition(); | ||||||
| 
 | 
 | ||||||
|    if (ev->type() == QEvent::MouseButtonPress) |    if (ev->type() == QEvent::Type::MouseButtonPress) | ||||||
|    { |    { | ||||||
|       if (ev->buttons() == (Qt::LeftButton | Qt::RightButton)) |       if (ev->buttons() == | ||||||
|  |           (Qt::MouseButton::LeftButton | Qt::MouseButton::RightButton)) | ||||||
|       { |       { | ||||||
|          changeStyle(); |          changeStyle(); | ||||||
|       } |       } | ||||||
|  |       else if (ev->buttons() == Qt::MouseButton::MiddleButton) | ||||||
|  |       { | ||||||
|  |          // Select nearest WSR-88D radar on middle click
 | ||||||
|  |          auto coordinate = p->map_->coordinateForPixel(p->lastPos_); | ||||||
|  |          p->SelectNearestRadarSite( | ||||||
|  |             coordinate.first, coordinate.second, "wsr88d"); | ||||||
|  |       } | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|    if (ev->type() == QEvent::MouseButtonDblClick) |    if (ev->type() == QEvent::Type::MouseButtonDblClick) | ||||||
|    { |    { | ||||||
|       if (ev->buttons() == Qt::LeftButton) |       if (ev->buttons() == Qt::MouseButton::LeftButton) | ||||||
|       { |       { | ||||||
|          p->map_->scaleBy(2.0, p->lastPos_); |          p->map_->scaleBy(2.0, p->lastPos_); | ||||||
|       } |       } | ||||||
|       else if (ev->buttons() == Qt::RightButton) |       else if (ev->buttons() == Qt::MouseButton::RightButton) | ||||||
|       { |       { | ||||||
|          p->map_->scaleBy(0.5, p->lastPos_); |          p->map_->scaleBy(0.5, p->lastPos_); | ||||||
|       } |       } | ||||||
|  | @ -1303,11 +1314,11 @@ void MapWidget::mouseMoveEvent(QMouseEvent* ev) | ||||||
| 
 | 
 | ||||||
|    if (!delta.isNull()) |    if (!delta.isNull()) | ||||||
|    { |    { | ||||||
|       if (ev->buttons() == Qt::LeftButton) |       if (ev->buttons() == Qt::MouseButton::LeftButton) | ||||||
|       { |       { | ||||||
|          p->map_->moveBy(delta); |          p->map_->moveBy(delta); | ||||||
|       } |       } | ||||||
|       else if (ev->buttons() == Qt::RightButton) |       else if (ev->buttons() == Qt::MouseButton::RightButton) | ||||||
|       { |       { | ||||||
|          p->map_->rotateBy(p->lastPos_, ev->position()); |          p->map_->rotateBy(p->lastPos_, ev->position()); | ||||||
|       } |       } | ||||||
|  | @ -1736,6 +1747,18 @@ void MapWidgetImpl::RadarProductViewDisconnect() | ||||||
|    } |    } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void MapWidgetImpl::SelectNearestRadarSite(double                     latitude, | ||||||
|  |                                            double                     longitude, | ||||||
|  |                                            std::optional<std::string> type) | ||||||
|  | { | ||||||
|  |    auto radarSite = config::RadarSite::FindNearest(latitude, longitude, type); | ||||||
|  | 
 | ||||||
|  |    if (radarSite != nullptr) | ||||||
|  |    { | ||||||
|  |       widget_->SelectRadarSite(radarSite->id(), false); | ||||||
|  |    } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void MapWidgetImpl::SetRadarSite(const std::string& radarSite) | void MapWidgetImpl::SetRadarSite(const std::string& radarSite) | ||||||
| { | { | ||||||
|    // Check if radar site has changed
 |    // Check if radar site has changed
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat