Merge bitcoin-core/gui#549: refactor: use std::chrono for formatDurationStr() helper

6f2593dc23565abaa3d176595cba6e07883f512e gui, refactor: use std::chrono for formatDurationStr() helper (Jon Atack)

Pull request description:

  Updates `formatDurationStr()` to use the `chrono` standard lib. No change in behavior.

ACKs for top commit:
  RandyMcMillan:
    tACK 6f2593dc23565abaa3d176595cba6e07883f512e
  shaavan:
    ACK 6f2593dc23565abaa3d176595cba6e07883f512e
  w0xlt:
    tACK 6f2593d on Ubuntu 21.10 Qt 5.15.2
  promag:
    Code review ACK 6f2593dc23565abaa3d176595cba6e07883f512e.

Tree-SHA512: 61e9afdb1db779150df338e6af08727c34f69639add465c2f7003ff775d97dce3e78e78d325bc6dea5bc13f0fce9ef1c3506d13f1661a5e083e52bba8a32ba44
This commit is contained in:
Hennadii Stepanov 2022-03-05 17:18:59 +01:00 committed by pasta
parent 3fa8158510
commit f5116a7d31
No known key found for this signature in database
GPG Key ID: 52527BEDABE87984

View File

@ -1676,23 +1676,18 @@ QString ConnectionTypeToQString(ConnectionType conn_type)
QString formatDurationStr(std::chrono::seconds dur) QString formatDurationStr(std::chrono::seconds dur)
{ {
const auto secs = count_seconds(dur); using days = std::chrono::duration<int, std::ratio<86400>>; // can remove this line after C++20
QStringList strList; const auto d{std::chrono::duration_cast<days>(dur)};
int days = secs / 86400; const auto h{std::chrono::duration_cast<std::chrono::hours>(dur - d)};
int hours = (secs % 86400) / 3600; const auto m{std::chrono::duration_cast<std::chrono::minutes>(dur - d - h)};
int mins = (secs % 3600) / 60; const auto s{std::chrono::duration_cast<std::chrono::seconds>(dur - d - h - m)};
int seconds = secs % 60; QStringList str_list;
if (auto d2{d.count()}) str_list.append(QObject::tr("%1 d").arg(d2));
if (days) if (auto h2{h.count()}) str_list.append(QObject::tr("%1 h").arg(h2));
strList.append(QObject::tr("%1 d").arg(days)); if (auto m2{m.count()}) str_list.append(QObject::tr("%1 m").arg(m2));
if (hours) const auto s2{s.count()};
strList.append(QObject::tr("%1 h").arg(hours)); if (s2 || str_list.empty()) str_list.append(QObject::tr("%1 s").arg(s2));
if (mins) return str_list.join(" ");
strList.append(QObject::tr("%1 m").arg(mins));
if (seconds || (!days && !hours && !mins))
strList.append(QObject::tr("%1 s").arg(seconds));
return strList.join(" ");
} }
QString formatServicesStr(quint64 mask) QString formatServicesStr(quint64 mask)