Add enhanced relative time to variable tab cells

This commit is contained in:
Przemek Pawlas
2024-09-18 09:46:39 +02:00
committed by WarmUpTill
parent 57d78a996a
commit 6ccbaad41c
15 changed files with 93 additions and 23 deletions

View File

@@ -0,0 +1,63 @@
#include "time-helpers.hpp"
#include "obs-module-helper.hpp"
namespace advss {
static QString combineRelativeTimeParts(const double unitCount,
const char *unitName)
{
QString combined = obs_module_text("AdvSceneSwitcher.time.relative");
return combined.arg(QString::number(unitCount, 'g', 2)).arg(unitName);
}
QString FormatRelativeTime(const double seconds)
{
// 365.2425 days
double divided = seconds / 31556952;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.years"));
}
// 30.436875 days
divided = seconds / 2629746;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.months"));
}
divided = seconds / 604800;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.weeks"));
}
divided = seconds / 86400;
if (divided >= 1) {
return combineRelativeTimeParts(
divided, obs_module_text("AdvSceneSwitcher.unit.days"));
}
divided = seconds / 3600;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.hours"));
}
divided = seconds / 60;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.minutes"));
}
return combineRelativeTimeParts(
seconds, obs_module_text("AdvSceneSwitcher.unit.seconds"));
}
} // namespace advss