mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Move printGpsCoords from MainTab to QtHelper
Last time I touched this I got a scream from dirk, but then I looked at the code again and the problem that I faced was that I broke translations in a sad way, well, now I broke it again. However, this method shouldn't belong to MainTab ( because of that thingy that I said before and also many others: Separate the logic of your application from the UI specific code ) This generates a string that's going to be used on the Interface, it doesn't display it on the interface. Move it down below makes it easier to test ( I don't need to create an Widget and worry about the parent-relationship with the mainwindow just to test this function, for instance. ) Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									05e0086631
								
							
						
					
					
						commit
						2b06e4be67
					
				
					 4 changed files with 31 additions and 33 deletions
				
			
		|  | @ -1076,32 +1076,6 @@ void MainTab::editWeightWidget(const QModelIndex &index) | |||
| 		ui.weights->edit(index); | ||||
| } | ||||
| 
 | ||||
| QString MainTab::printGPSCoords(int lat, int lon) | ||||
| { | ||||
| 	unsigned int latdeg, londeg; | ||||
| 	unsigned int latmin, lonmin; | ||||
| 	double latsec, lonsec; | ||||
| 	QString lath, lonh, result; | ||||
| 
 | ||||
| 	if (!lat && !lon) | ||||
| 		return QString(""); | ||||
| 
 | ||||
| 	lath = lat >= 0 ? tr("N") : tr("S"); | ||||
| 	lonh = lon >= 0 ? tr("E") : tr("W"); | ||||
| 	lat = abs(lat); | ||||
| 	lon = abs(lon); | ||||
| 	latdeg = lat / 1000000; | ||||
| 	londeg = lon / 1000000; | ||||
| 	latmin = (lat % 1000000) * 60; | ||||
| 	lonmin = (lon % 1000000) * 60; | ||||
| 	latsec = (latmin % 1000000) * 60; | ||||
| 	lonsec = (lonmin % 1000000) * 60; | ||||
| 	result.sprintf("%u%s%02d\'%06.3f\"%s %u%s%02d\'%06.3f\"%s", | ||||
| 		       latdeg, UTF8_DEGREE, latmin / 1000000, latsec / 1000000, lath.toUtf8().data(), | ||||
| 		       londeg, UTF8_DEGREE, lonmin / 1000000, lonsec / 1000000, lonh.toUtf8().data()); | ||||
| 	return result; | ||||
| } | ||||
| 
 | ||||
| void MainTab::updateCoordinatesText(qreal lat, qreal lon) | ||||
| { | ||||
| 	int ulat = rint(lat * 1000000); | ||||
|  |  | |||
|  | @ -120,7 +120,6 @@ private: | |||
| 	Completers completers; | ||||
| 	void resetPallete(); | ||||
| 	void saveTags(); | ||||
| 	QString printGPSCoords(int lat, int lon); | ||||
| 	void updateGpsCoordinates(const struct dive *dive); | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										35
									
								
								qthelper.cpp
									
										
									
									
									
								
							
							
						
						
									
										35
									
								
								qthelper.cpp
									
										
									
									
									
								
							|  | @ -110,6 +110,32 @@ QString weight_string(int weight_in_grams) | |||
| 	return (str); | ||||
| } | ||||
| 
 | ||||
| QString printGPSCoords(int lat, int lon) | ||||
| { | ||||
| 	unsigned int latdeg, londeg; | ||||
| 	unsigned int latmin, lonmin; | ||||
| 	double latsec, lonsec; | ||||
| 	QString lath, lonh, result; | ||||
| 
 | ||||
| 	if (!lat && !lon) | ||||
| 		return QString(); | ||||
| 
 | ||||
| 	lath = lat >= 0 ? tr("N") : tr("S"); | ||||
| 	lonh = lon >= 0 ? tr("E") : tr("W"); | ||||
| 	lat = abs(lat); | ||||
| 	lon = abs(lon); | ||||
| 	latdeg = lat / 1000000; | ||||
| 	londeg = lon / 1000000; | ||||
| 	latmin = (lat % 1000000) * 60; | ||||
| 	lonmin = (lon % 1000000) * 60; | ||||
| 	latsec = (latmin % 1000000) * 60; | ||||
| 	lonsec = (lonmin % 1000000) * 60; | ||||
| 	result.sprintf("%u%s%02d\'%06.3f\"%s %u%s%02d\'%06.3f\"%s", | ||||
| 		       latdeg, UTF8_DEGREE, latmin / 1000000, latsec / 1000000, lath.toUtf8().data(), | ||||
| 		       londeg, UTF8_DEGREE, lonmin / 1000000, lonsec / 1000000, lonh.toUtf8().data()); | ||||
| 	return result; | ||||
| } | ||||
| 
 | ||||
| bool parseGpsText(const QString &gps_text, double *latitude, double *longitude) | ||||
| { | ||||
| 	enum { | ||||
|  | @ -121,10 +147,10 @@ bool parseGpsText(const QString &gps_text, double *latitude, double *longitude) | |||
| 	int eastWest = 4; | ||||
| 	int northSouth = 1; | ||||
| 	QString trHemisphere[4]; | ||||
| 	trHemisphere[0] = MainWindow::instance()->information()->trHemisphere("N"); | ||||
| 	trHemisphere[1] = MainWindow::instance()->information()->trHemisphere("S"); | ||||
| 	trHemisphere[2] = MainWindow::instance()->information()->trHemisphere("E"); | ||||
| 	trHemisphere[3] = MainWindow::instance()->information()->trHemisphere("W"); | ||||
| 	trHemisphere[0] = tr("N"); | ||||
| 	trHemisphere[1] = tr("S"); | ||||
| 	trHemisphere[2] = tr("E"); | ||||
| 	trHemisphere[3] = tr("W"); | ||||
| 	QString regExp; | ||||
| 	/* an empty string is interpreted as 0.0,0.0 and therefore "no gps location" */ | ||||
| 	if (gps_text.trimmed().isEmpty()) { | ||||
|  | @ -302,7 +328,6 @@ extern "C" void call_for_each_dc(void *f, void (*callback)(void *, const char *, | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| static xmlDocPtr get_stylesheet_doc(const xmlChar *uri, xmlDictPtr, int, void *, xsltLoadType) | ||||
| { | ||||
| 	QFile f(QLatin1String(":/xslt/") + (const char *)uri); | ||||
|  |  | |||
|  | @ -41,6 +41,6 @@ public: | |||
| 
 | ||||
| QString weight_string(int weight_in_grams); | ||||
| bool gpsHasChanged(struct dive *dive, struct dive *master, const QString &gps_text, bool *parsed); | ||||
| 
 | ||||
| QString printGPSCoords(int lat, int lon); | ||||
| QList<int> getDivesInTrip(dive_trip_t *trip); | ||||
| #endif // QTHELPER_H
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue