mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Hack around a translation issue
I cannot figure out how to get the hemisphere letters translated correctly in qthelper.cpp. Short term hack for now - someone who understands how this is supposed to work really needs to take a look. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									6763b93619
								
							
						
					
					
						commit
						0a6c16f35a
					
				
					 3 changed files with 36 additions and 24 deletions
				
			
		|  | @ -1110,3 +1110,8 @@ void MainTab::updateGpsCoordinates(const struct dive *dive) | ||||||
| 		ui.coordinates->clear(); | 		ui.coordinates->clear(); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | QString MainTab::trHemisphere(const char *orig) | ||||||
|  | { | ||||||
|  | 	return tr(orig); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -96,6 +96,7 @@ slots: | ||||||
| 	void enableEdition(EditMode newEditMode = NONE); | 	void enableEdition(EditMode newEditMode = NONE); | ||||||
| 	void toggleTriggeredColumn(); | 	void toggleTriggeredColumn(); | ||||||
| 	void updateTextLabels(bool showUnits = true); | 	void updateTextLabels(bool showUnits = true); | ||||||
|  | 	QString trHemisphere(const char *orig); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
| 	Ui::MainTab ui; | 	Ui::MainTab ui; | ||||||
|  |  | ||||||
							
								
								
									
										54
									
								
								qthelper.cpp
									
										
									
									
									
								
							
							
						
						
									
										54
									
								
								qthelper.cpp
									
										
									
									
									
								
							|  | @ -6,6 +6,7 @@ | ||||||
| #include <QDebug> | #include <QDebug> | ||||||
| #include <QSettings> | #include <QSettings> | ||||||
| #include <libxslt/documents.h> | #include <libxslt/documents.h> | ||||||
|  | #include "mainwindow.h" | ||||||
| 
 | 
 | ||||||
| #define tr(_arg) QObject::tr(_arg) | #define tr(_arg) QObject::tr(_arg) | ||||||
| 
 | 
 | ||||||
|  | @ -119,6 +120,11 @@ bool parseGpsText(const QString &gps_text, double *latitude, double *longitude) | ||||||
| 	} gpsStyle = ISO6709D; | 	} gpsStyle = ISO6709D; | ||||||
| 	int eastWest = 4; | 	int eastWest = 4; | ||||||
| 	int northSouth = 1; | 	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"); | ||||||
| 	QString regExp; | 	QString regExp; | ||||||
| 	/* an empty string is interpreted as 0.0,0.0 and therefore "no gps location" */ | 	/* an empty string is interpreted as 0.0,0.0 and therefore "no gps location" */ | ||||||
| 	if (gps_text.trimmed() == "") { | 	if (gps_text.trimmed() == "") { | ||||||
|  | @ -136,39 +142,39 @@ bool parseGpsText(const QString &gps_text, double *latitude, double *longitude) | ||||||
| 		gpsStyle = ISO6709D; | 		gpsStyle = ISO6709D; | ||||||
| 		regExp = QString("(\\d+)[" UTF8_DEGREE "\\s](\\d+)[\'\\s](\\d+)([,\\.](\\d+))?[\"\\s]([NS%1%2])" | 		regExp = QString("(\\d+)[" UTF8_DEGREE "\\s](\\d+)[\'\\s](\\d+)([,\\.](\\d+))?[\"\\s]([NS%1%2])" | ||||||
| 				 "\\s*(\\d+)[" UTF8_DEGREE "\\s](\\d+)[\'\\s](\\d+)([,\\.](\\d+))?[\"\\s]([EW%3%4])") | 				 "\\s*(\\d+)[" UTF8_DEGREE "\\s](\\d+)[\'\\s](\\d+)([,\\.](\\d+))?[\"\\s]([EW%3%4])") | ||||||
| 			     .arg(tr("N")) | 				.arg(trHemisphere[0]) | ||||||
| 			     .arg(tr("S")) | 				.arg(trHemisphere[1]) | ||||||
| 			     .arg(tr("E")) | 				.arg(trHemisphere[2]) | ||||||
| 			     .arg(tr("W")); | 				.arg(trHemisphere[3]); | ||||||
| 	} else if (gps_text.count(QChar('"')) == 2) { | 	} else if (gps_text.count(QChar('"')) == 2) { | ||||||
| 		gpsStyle = SECONDS; | 		gpsStyle = SECONDS; | ||||||
| 		regExp = QString("\\s*([NS%1%2])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)[\'\\s]+(\\d+)([,\\.](\\d+))?[^EW%3%4]*" | 		regExp = QString("\\s*([NS%1%2])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)[\'\\s]+(\\d+)([,\\.](\\d+))?[^EW%3%4]*" | ||||||
| 				 "([EW%5%6])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)[\'\\s]+(\\d+)([,\\.](\\d+))?") | 				 "([EW%5%6])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)[\'\\s]+(\\d+)([,\\.](\\d+))?") | ||||||
| 			     .arg(tr("N")) | 				.arg(trHemisphere[0]) | ||||||
| 			     .arg(tr("S")) | 				.arg(trHemisphere[1]) | ||||||
| 			     .arg(tr("E")) | 				.arg(trHemisphere[2]) | ||||||
| 			     .arg(tr("W")) | 				.arg(trHemisphere[3]) | ||||||
| 			     .arg(tr("E")) | 				.arg(trHemisphere[2]) | ||||||
| 			     .arg(tr("W")); | 				.arg(trHemisphere[3]); | ||||||
| 	} else if (gps_text.count(QChar('\'')) == 2) { | 	} else if (gps_text.count(QChar('\'')) == 2) { | ||||||
| 		gpsStyle = MINUTES; | 		gpsStyle = MINUTES; | ||||||
| 		regExp = QString("\\s*([NS%1%2])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)([,\\.](\\d+))?[^EW%3%4]*" | 		regExp = QString("\\s*([NS%1%2])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)([,\\.](\\d+))?[^EW%3%4]*" | ||||||
| 				 "([EW%5%6])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)([,\\.](\\d+))?") | 				 "([EW%5%6])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)([,\\.](\\d+))?") | ||||||
| 			     .arg(tr("N")) | 				.arg(trHemisphere[0]) | ||||||
| 			     .arg(tr("S")) | 				.arg(trHemisphere[1]) | ||||||
| 			     .arg(tr("E")) | 				.arg(trHemisphere[2]) | ||||||
| 			     .arg(tr("W")) | 				.arg(trHemisphere[3]) | ||||||
| 			     .arg(tr("E")) | 				.arg(trHemisphere[2]) | ||||||
| 			     .arg(tr("W")); | 				.arg(trHemisphere[3]); | ||||||
| 	} else { | 	} else { | ||||||
| 		gpsStyle = DECIMAL; | 		gpsStyle = DECIMAL; | ||||||
| 		regExp = QString("\\s*([-NS%1%2]?)\\s*(\\d+)[,\\.](\\d+)[^-EW%3%4\\d]*([-EW%5%6]?)\\s*(\\d+)[,\\.](\\d+)") | 		regExp = QString("\\s*([-NS%1%2]?)\\s*(\\d+)[,\\.](\\d+)[^-EW%3%4\\d]*([-EW%5%6]?)\\s*(\\d+)[,\\.](\\d+)") | ||||||
| 			     .arg(tr("N")) | 				.arg(trHemisphere[0]) | ||||||
| 			     .arg(tr("S")) | 				.arg(trHemisphere[1]) | ||||||
| 			     .arg(tr("E")) | 				.arg(trHemisphere[2]) | ||||||
| 			     .arg(tr("W")) | 				.arg(trHemisphere[3]) | ||||||
| 			     .arg(tr("E")) | 				.arg(trHemisphere[2]) | ||||||
| 			     .arg(tr("W")); | 				.arg(trHemisphere[3]); | ||||||
| 	} | 	} | ||||||
| 	QRegExp r(regExp); | 	QRegExp r(regExp); | ||||||
| 	if (r.indexIn(gps_text) != -1) { | 	if (r.indexIn(gps_text) != -1) { | ||||||
|  | @ -201,9 +207,9 @@ bool parseGpsText(const QString &gps_text, double *latitude, double *longitude) | ||||||
| 			*longitude = (r.cap(5) + QString(".") + r.cap(6)).toDouble(); | 			*longitude = (r.cap(5) + QString(".") + r.cap(6)).toDouble(); | ||||||
| 			break; | 			break; | ||||||
| 		} | 		} | ||||||
| 		if (r.cap(northSouth) == "S" || r.cap(northSouth) == tr("S") || r.cap(northSouth) == "-") | 		if (r.cap(northSouth) == "S" || r.cap(northSouth) == trHemisphere[1] || r.cap(northSouth) == "-") | ||||||
| 			*latitude *= -1.0; | 			*latitude *= -1.0; | ||||||
| 		if (r.cap(eastWest) == "W" || r.cap(eastWest) == tr("W") || r.cap(eastWest) == "-") | 		if (r.cap(eastWest) == "W" || r.cap(eastWest) == trHemisphere[3] || r.cap(eastWest) == "-") | ||||||
| 			*longitude *= -1.0; | 			*longitude *= -1.0; | ||||||
| 		// qDebug("%s -> %8.5f / %8.5f", gps_text.toLocal8Bit().data(), *latitude, *longitude);
 | 		// qDebug("%s -> %8.5f / %8.5f", gps_text.toLocal8Bit().data(), *latitude, *longitude);
 | ||||||
| 		return true; | 		return true; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue