void FormatAlternateUserAltitude(fixed value, TCHAR *buffer, bool include_unit) { FormatAltitude(buffer, value, GetAlternateAltitudeUnit(Units::GetUserAltitudeUnit()), include_unit); }
static void TestAltitude() { TCHAR buffer[256]; // Test FormatAltitude() FormatAltitude(buffer, 1234, Unit::METER); ok1(StringIsEqual(buffer, _T("1234 m"))); FormatAltitude(buffer, Units::ToSysUnit(1234, Unit::FEET), Unit::FEET); ok1(StringIsEqual(buffer, _T("1234 ft"))); FormatAltitude(buffer, -1234, Unit::METER); ok1(StringIsEqual(buffer, _T("-1234 m"))); FormatAltitude(buffer, Units::ToSysUnit(-1234, Unit::FEET), Unit::FEET); ok1(StringIsEqual(buffer, _T("-1234 ft"))); FormatAltitude(buffer, 1234, Unit::METER, false); ok1(StringIsEqual(buffer, _T("1234"))); FormatAltitude(buffer, -1234, Unit::METER, false); ok1(StringIsEqual(buffer, _T("-1234"))); }
QVariant ColumnGeoProperties::data(TableViewModel::Item* const item, const int role) const { if ( (role != Qt::DisplayRole) && (role != Qt::TextAlignmentRole) ) { return QVariant(); } if (role==Qt::TextAlignmentRole) { switch (subColumn) { case SubColumnAltitude: return QVariant(Qt::Alignment(Qt::AlignRight | Qt::AlignVCenter)); default: return QVariant(); } } const ImageInfo info = s->tableViewModel->infoFromItem(item); switch (subColumn) { case SubColumnHasCoordinates: { return info.hasCoordinates() ? i18n("Yes") : i18n("No"); } case SubColumnCoordinates: { if (!info.hasCoordinates()) { return QString(); } return QString::fromUtf8("%1,%2").arg(QLocale().toString(info.latitudeNumber(), 'g', 7)) .arg(QLocale().toString(info.longitudeNumber(), 'g', 7)); } case SubColumnAltitude: { /// @todo Needs custom sorting if ((!info.hasCoordinates()) || (!info.hasAltitude())) { return QString(); } /// @todo Use an enum instead to avoid lots of string comparisons const QString formatKey = configuration.getSetting(QLatin1String("format"), QLatin1String("metric")); QLocale::MeasurementSystem measureSystem = QLocale().measurementSystem(); if (formatKey == QLatin1String("metric")) { measureSystem = QLocale::MetricSystem; } else if (formatKey == QLatin1String("imperial")) { measureSystem = QLocale::ImperialSystem; } const QString formattedAltitude = FormatAltitude(info.altitudeNumber(), measureSystem); return formattedAltitude; } } return QVariant(); }