Fixed long durations
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
<message id="Lms.PlayQueue.template.save-btn"><i class="fa fa-fw fa-save"></i></message>
|
<message id="Lms.PlayQueue.template.save-btn"><i class="fa fa-fw fa-save"></i></message>
|
||||||
|
|
||||||
<message id="Lms.PlayQueue.template">
|
<message id="Lms.PlayQueue.template">
|
||||||
|
<div class="small text-muted mb-2">${track-count} · ${duration}</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<div class="btn-group me-2">
|
<div class="btn-group me-2">
|
||||||
${repeat-btn class="btn-check"}
|
${repeat-btn class="btn-check"}
|
||||||
@@ -25,7 +26,6 @@
|
|||||||
<div class="d-inline-block me-2" title="${tr:Lms.PlayQueue.clear}">
|
<div class="d-inline-block me-2" title="${tr:Lms.PlayQueue.clear}">
|
||||||
${clear-btn class="btn btn-warning"}
|
${clear-btn class="btn btn-warning"}
|
||||||
</div>
|
</div>
|
||||||
${track-count}
|
|
||||||
</div>
|
</div>
|
||||||
${entries}
|
${entries}
|
||||||
</message>
|
</message>
|
||||||
|
|||||||
@@ -187,6 +187,7 @@ PlayQueue::PlayQueue()
|
|||||||
}
|
}
|
||||||
|
|
||||||
_nbTracks = bindNew<Wt::WText>("track-count");
|
_nbTracks = bindNew<Wt::WText>("track-count");
|
||||||
|
_duration = bindNew<Wt::WText>("duration");
|
||||||
|
|
||||||
LmsApp->preQuit().connect([=]
|
LmsApp->preQuit().connect([=]
|
||||||
{
|
{
|
||||||
@@ -367,6 +368,7 @@ PlayQueue::updateInfo()
|
|||||||
|
|
||||||
const auto trackCount {getTrackList()->getCount()};
|
const auto trackCount {getTrackList()->getCount()};
|
||||||
_nbTracks->setText(Wt::WString::trn("Lms.track-count", trackCount).arg(trackCount));
|
_nbTracks->setText(Wt::WString::trn("Lms.track-count", trackCount).arg(trackCount));
|
||||||
|
_duration->setText(Utils::durationToString(getTrackList()->getDuration()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ class PlayQueue : public Template
|
|||||||
Database::TrackListId _tracklistId {};
|
Database::TrackListId _tracklistId {};
|
||||||
InfiniteScrollingContainer* _entriesContainer {};
|
InfiniteScrollingContainer* _entriesContainer {};
|
||||||
Wt::WText* _nbTracks {};
|
Wt::WText* _nbTracks {};
|
||||||
|
Wt::WText* _duration {};
|
||||||
Wt::WCheckBox* _repeatBtn {};
|
Wt::WCheckBox* _repeatBtn {};
|
||||||
Wt::WCheckBox* _radioBtn {};
|
Wt::WCheckBox* _radioBtn {};
|
||||||
std::optional<std::size_t> _trackPos; // current track position, if set
|
std::optional<std::size_t> _trackPos; // current track position, if set
|
||||||
|
|||||||
@@ -37,9 +37,21 @@ namespace UserInterface::Utils
|
|||||||
const std::chrono::seconds duration {std::chrono::duration_cast<std::chrono::seconds>(msDuration)};
|
const std::chrono::seconds duration {std::chrono::duration_cast<std::chrono::seconds>(msDuration)};
|
||||||
|
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
|
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)
|
oss << (duration.count() / 60)
|
||||||
<< ":"
|
<< ":"
|
||||||
<< std::setfill('0') << std::setw(2) << duration.count() % 60;
|
<< std::setfill('0') << std::setw(2) << duration.count() % 60;
|
||||||
|
}
|
||||||
|
|
||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,6 @@ namespace UserInterface
|
|||||||
|
|
||||||
_container->remove(*itTrackList->second);
|
_container->remove(*itTrackList->second);
|
||||||
_trackListWidgets.erase(itTrackList);
|
_trackListWidgets.erase(itTrackList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user