|
|
|
@ -30,12 +30,12 @@ void MapETA::paintEvent(QPaintEvent *event) { |
|
|
|
|
void MapETA::updateETA(float s, float s_typical, float d) { |
|
|
|
|
// ETA
|
|
|
|
|
auto eta_t = QDateTime::currentDateTime().addSecs(s).time(); |
|
|
|
|
auto eta = format_24h ? std::array{eta_t.toString("HH:mm"), tr("eta")} |
|
|
|
|
: std::array{eta_t.toString("h:mm a").split(' ')[0], eta_t.toString("a")}; |
|
|
|
|
auto eta = format_24h ? std::pair{eta_t.toString("HH:mm"), tr("eta")} |
|
|
|
|
: std::pair{eta_t.toString("h:mm a").split(' ')[0], eta_t.toString("a")}; |
|
|
|
|
|
|
|
|
|
// Remaining time
|
|
|
|
|
auto remaining = s < 3600 ? std::array{QString::number(int(s / 60)), tr("min")} |
|
|
|
|
: std::array{QString("%1:%2").arg((int)s / 3600).arg(((int)s % 3600) / 60, 2, 10, QLatin1Char('0')), tr("hr")}; |
|
|
|
|
auto remaining = s < 3600 ? std::pair{QString::number(int(s / 60)), tr("min")} |
|
|
|
|
: std::pair{QString("%1:%2").arg((int)s / 3600).arg(((int)s % 3600) / 60, 2, 10, QLatin1Char('0')), tr("hr")}; |
|
|
|
|
QString color = "#25DA6E"; |
|
|
|
|
if (s / s_typical > 1.5) |
|
|
|
|
color = "#DA3025"; |
|
|
|
@ -44,13 +44,13 @@ void MapETA::updateETA(float s, float s_typical, float d) { |
|
|
|
|
|
|
|
|
|
// Distance
|
|
|
|
|
float num = uiState()->scene.is_metric ? (d / 1000.0) : (d * METER_TO_MILE); |
|
|
|
|
auto distance = std::array{QString::number(num, 'f', num < 100 ? 1 : 0), |
|
|
|
|
uiState()->scene.is_metric ? tr("km") : tr("mi")}; |
|
|
|
|
auto distance = std::pair{QString::number(num, 'f', num < 100 ? 1 : 0), |
|
|
|
|
uiState()->scene.is_metric ? tr("km") : tr("mi")}; |
|
|
|
|
|
|
|
|
|
eta_doc.setHtml(QString(R"(<body><table><tr style="vertical-align:bottom;"><td><b>%1</b></td><td>%2</td> |
|
|
|
|
<td style="padding-left:40px;color:%3;"><b>%4</b></td><td style="padding-right:40px;color:%3;">%5</td> |
|
|
|
|
<td><b>%6</b></td><td>%7</td></tr></body>)") |
|
|
|
|
.arg(eta[0], eta[1], color, remaining[0], remaining[1], distance[0], distance[1])); |
|
|
|
|
.arg(eta.first, eta.second, color, remaining.first, remaining.second, distance.first, distance.second)); |
|
|
|
|
|
|
|
|
|
setVisible(d >= MANEUVER_TRANSITION_THRESHOLD); |
|
|
|
|
update(); |
|
|
|
|