| 
									
										
										
										
											2017-04-27 20:24:53 +02:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							| 
									
										
										
										
											2015-10-07 19:34:02 -03:00
										 |  |  | #include "divesite.h"
 | 
					
						
							|  |  |  | #include "pref.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-16 15:52:13 +02:00
										 |  |  | QString constructLocationTags(struct dive_site *ds, bool for_maintab) | 
					
						
							| 
									
										
										
										
											2015-10-07 19:34:02 -03:00
										 |  |  | { | 
					
						
							|  |  |  | 	QString locationTag; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (!ds || !ds->taxonomy.nr) | 
					
						
							|  |  |  | 		return locationTag; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-16 15:52:13 +02:00
										 |  |  | 	/* Check if the user set any of the 3 geocoding categories */ | 
					
						
							|  |  |  | 	bool prefs_set = false; | 
					
						
							|  |  |  | 	for (int i = 0; i < 3; i++) { | 
					
						
							|  |  |  | 		if (prefs.geocoding.category[i] != TC_NONE) | 
					
						
							|  |  |  | 			prefs_set = true; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (!prefs_set && !for_maintab) { | 
					
						
							|  |  |  | 		locationTag = QString("<small><small>") + QObject::tr("No dive site layout categories set in preferences!") + | 
					
						
							|  |  |  | 			QString("</small></small>"); | 
					
						
							|  |  |  | 		return locationTag; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	else if (!prefs_set) | 
					
						
							|  |  |  | 		return locationTag; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (for_maintab) | 
					
						
							|  |  |  | 		locationTag = QString("<small><small>(") + QObject::tr("Tags") + QString(": "); | 
					
						
							|  |  |  | 	else  | 
					
						
							|  |  |  | 		locationTag = QString("<small><small>"); | 
					
						
							| 
									
										
										
										
											2015-10-07 19:34:02 -03:00
										 |  |  | 	QString connector; | 
					
						
							|  |  |  | 	for (int i = 0; i < 3; i++) { | 
					
						
							|  |  |  | 		if (prefs.geocoding.category[i] == TC_NONE) | 
					
						
							|  |  |  | 			continue; | 
					
						
							| 
									
										
										
										
											2017-10-17 10:15:53 +02:00
										 |  |  | 		for (int j = 0; j < ds->taxonomy.nr; j++) { | 
					
						
							| 
									
										
										
										
											2015-10-07 19:34:02 -03:00
										 |  |  | 			if (ds->taxonomy.category[j].category == prefs.geocoding.category[i]) { | 
					
						
							|  |  |  | 				QString tag = ds->taxonomy.category[j].value; | 
					
						
							|  |  |  | 				if (!tag.isEmpty()) { | 
					
						
							|  |  |  | 					locationTag += connector + tag; | 
					
						
							|  |  |  | 					connector = " / "; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				break; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-16 15:52:13 +02:00
										 |  |  | 	if (for_maintab) | 
					
						
							|  |  |  | 		locationTag += ")</small></small>"; | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		locationTag += "</small></small>"; | 
					
						
							| 
									
										
										
										
											2015-10-07 19:34:02 -03:00
										 |  |  | 	return locationTag; | 
					
						
							|  |  |  | } |