mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	mapwidgethelper: add the selectVisibleLocations() method
The new method selectVisibleLocations() contains a routine to find all visible MapLocation objects in the Map viewport and select the dives associated to said MapLocation objects. This method is to be invoked from the QML context menu. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
		
							parent
							
								
									5db2460168
								
							
						
					
					
						commit
						93896e54db
					
				
					 2 changed files with 28 additions and 0 deletions
				
			
		|  | @ -144,6 +144,33 @@ void MapWidgetHelper::selectedLocationChanged(MapLocation *location) | |||
| 	emit selectedDivesChanged(m_selectedDiveIds); | ||||
| } | ||||
| 
 | ||||
| void MapWidgetHelper::selectVisibleLocations() | ||||
| { | ||||
| 	int idx; | ||||
| 	struct dive *dive; | ||||
| 	bool selectedFirst = false; | ||||
| 	m_selectedDiveIds.clear(); | ||||
| 	for_each_dive (idx, dive) { | ||||
| 		struct dive_site *ds = get_dive_site_for_dive(dive); | ||||
| 		if (!dive_site_has_gps_location(ds)) | ||||
| 			continue; | ||||
| 		MapLocation *loc = m_mapLocationModel->getMapLocationForUuid(ds->uuid); | ||||
| 		if (loc) { | ||||
| 			QPointF point; | ||||
| 			QMetaObject::invokeMethod(m_map, "fromCoordinate", Q_RETURN_ARG(QPointF, point), | ||||
| 			                          Q_ARG(QGeoCoordinate, loc->coordinate())); | ||||
| 			if (!qIsNaN(point.x())) { | ||||
| 				if (!selectedFirst) { | ||||
| 					m_mapLocationModel->setSelectedUuid(ds->uuid, false); | ||||
| 					selectedFirst = true; | ||||
| 				} | ||||
| 				m_selectedDiveIds.append(idx); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	emit selectedDivesChanged(m_selectedDiveIds); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Based on a 2D Map widget circle with center "coord" and radius SMALL_CIRCLE_RADIUS_PX, | ||||
|  * obtain a "small circle" with radius m_smallCircleRadius in meters: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue