From 352ba4e98fcaa5791ba65bf2dd6e42dcca110223 Mon Sep 17 00:00:00 2001 From: emeric Date: Sat, 2 Jul 2022 16:54:39 +0200 Subject: [PATCH] Fixed long durations --- approot/playqueue.xml | 2 +- src/lms/ui/PlayQueue.cpp | 2 ++ src/lms/ui/PlayQueue.hpp | 1 + src/lms/ui/Utils.cpp | 18 +++++++++++++++--- src/lms/ui/explore/TrackListsView.cpp | 1 - 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/approot/playqueue.xml b/approot/playqueue.xml index c45dcf7a..c10a3c15 100644 --- a/approot/playqueue.xml +++ b/approot/playqueue.xml @@ -9,6 +9,7 @@ +
${track-count} ยท ${duration}
${repeat-btn class="btn-check"} @@ -25,7 +26,6 @@
${clear-btn class="btn btn-warning"}
- ${track-count}
${entries} diff --git a/src/lms/ui/PlayQueue.cpp b/src/lms/ui/PlayQueue.cpp index 939b8e54..a336e443 100644 --- a/src/lms/ui/PlayQueue.cpp +++ b/src/lms/ui/PlayQueue.cpp @@ -187,6 +187,7 @@ PlayQueue::PlayQueue() } _nbTracks = bindNew("track-count"); + _duration = bindNew("duration"); LmsApp->preQuit().connect([=] { @@ -367,6 +368,7 @@ PlayQueue::updateInfo() const auto trackCount {getTrackList()->getCount()}; _nbTracks->setText(Wt::WString::trn("Lms.track-count", trackCount).arg(trackCount)); + _duration->setText(Utils::durationToString(getTrackList()->getDuration())); } void diff --git a/src/lms/ui/PlayQueue.hpp b/src/lms/ui/PlayQueue.hpp index 5d60b836..2cd67e43 100644 --- a/src/lms/ui/PlayQueue.hpp +++ b/src/lms/ui/PlayQueue.hpp @@ -101,6 +101,7 @@ class PlayQueue : public Template Database::TrackListId _tracklistId {}; InfiniteScrollingContainer* _entriesContainer {}; Wt::WText* _nbTracks {}; + Wt::WText* _duration {}; Wt::WCheckBox* _repeatBtn {}; Wt::WCheckBox* _radioBtn {}; std::optional _trackPos; // current track position, if set diff --git a/src/lms/ui/Utils.cpp b/src/lms/ui/Utils.cpp index 0fd2acd3..c1560d93 100644 --- a/src/lms/ui/Utils.cpp +++ b/src/lms/ui/Utils.cpp @@ -37,9 +37,21 @@ namespace UserInterface::Utils const std::chrono::seconds duration {std::chrono::duration_cast(msDuration)}; std::ostringstream oss; - oss << (duration.count() / 60) - << ":" - << std::setfill('0') << std::setw(2) << duration.count() % 60; + + if (duration.count() >= 3600) + { + oss << (duration.count() / 3600) + << ":" + << std::setfill('0') << std::setw(2) << (duration.count() % 3600) / 60 + << ":" + << std::setfill('0') << std::setw(2) << duration.count() % 60; + } + else + { + oss << (duration.count() / 60) + << ":" + << std::setfill('0') << std::setw(2) << duration.count() % 60; + } return oss.str(); } diff --git a/src/lms/ui/explore/TrackListsView.cpp b/src/lms/ui/explore/TrackListsView.cpp index 9a878a8d..c9534fad 100644 --- a/src/lms/ui/explore/TrackListsView.cpp +++ b/src/lms/ui/explore/TrackListsView.cpp @@ -87,7 +87,6 @@ namespace UserInterface _container->remove(*itTrackList->second); _trackListWidgets.erase(itTrackList); - } void