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
Reference in a new issue