diff options
author | TheKodeToad <TheKodeToad@proton.me> | 2023-08-27 18:14:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-27 18:14:04 +0100 |
commit | e3b04d10cf4a234a1735b145a0a594b9241c84d1 (patch) | |
tree | a7fdf8d7b85ec38d9e4301e5bc5d449e41842fde | |
parent | df14f88307b1b7f7fa305472bd2800896103f879 (diff) | |
parent | 28ffa8bf44f220e541d00204b52a45573fba645a (diff) | |
download | PrismLauncher-e3b04d10cf4a234a1735b145a0a594b9241c84d1.tar.gz PrismLauncher-e3b04d10cf4a234a1735b145a0a594b9241c84d1.tar.bz2 PrismLauncher-e3b04d10cf4a234a1735b145a0a594b9241c84d1.zip |
Merge pull request #1536 from Trial97/time3
Allow showing playtime in hours
-rw-r--r-- | launcher/Application.cpp | 1 | ||||
-rw-r--r-- | launcher/MMCTime.cpp | 7 | ||||
-rw-r--r-- | launcher/MMCTime.h | 2 | ||||
-rw-r--r-- | launcher/minecraft/MinecraftInstance.cpp | 11 | ||||
-rw-r--r-- | launcher/ui/MainWindow.cpp | 4 | ||||
-rw-r--r-- | launcher/ui/pages/global/MinecraftPage.cpp | 2 | ||||
-rw-r--r-- | launcher/ui/pages/global/MinecraftPage.ui | 7 |
7 files changed, 25 insertions, 9 deletions
diff --git a/launcher/Application.cpp b/launcher/Application.cpp index 00010465..66044d9a 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -594,6 +594,7 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv) m_settings->registerSetting("ShowGameTime", true); m_settings->registerSetting("ShowGlobalGameTime", true); m_settings->registerSetting("RecordGameTime", true); + m_settings->registerSetting("ShowGameTimeWithoutDays", false); // Minecraft mods m_settings->registerSetting("ModMetadataDisabled", false); diff --git a/launcher/MMCTime.cpp b/launcher/MMCTime.cpp index 3972dbd5..1765fd84 100644 --- a/launcher/MMCTime.cpp +++ b/launcher/MMCTime.cpp @@ -16,19 +16,20 @@ */ #include <MMCTime.h> +#include <qobject.h> #include <QDateTime> #include <QObject> #include <QTextStream> -QString Time::prettifyDuration(int64_t duration) +QString Time::prettifyDuration(int64_t duration, bool noDays) { int seconds = (int)(duration % 60); duration /= 60; int minutes = (int)(duration % 60); duration /= 60; - int hours = (int)(duration % 24); - int days = (int)(duration / 24); + int hours = (int)(noDays ? duration : (duration % 24)); + int days = (int)(noDays ? 0 : (duration / 24)); if ((hours == 0) && (days == 0)) { return QObject::tr("%1min %2s").arg(minutes).arg(seconds); } diff --git a/launcher/MMCTime.h b/launcher/MMCTime.h index b7d34b5d..ea6d37e7 100644 --- a/launcher/MMCTime.h +++ b/launcher/MMCTime.h @@ -20,7 +20,7 @@ namespace Time { -QString prettifyDuration(int64_t duration); +QString prettifyDuration(int64_t duration, bool noDays = false); /** * @brief Returns a string with short form time duration ie. `2days 1h3m4s56.0ms`. diff --git a/launcher/minecraft/MinecraftInstance.cpp b/launcher/minecraft/MinecraftInstance.cpp index 0da97c14..d7dabe07 100644 --- a/launcher/minecraft/MinecraftInstance.cpp +++ b/launcher/minecraft/MinecraftInstance.cpp @@ -934,13 +934,16 @@ QString MinecraftInstance::getStatusbarDescription() if (m_settings->get("ShowGameTime").toBool()) { if (lastTimePlayed() > 0) { QDateTime lastLaunchTime = QDateTime::fromMSecsSinceEpoch(lastLaunch()); - description.append(tr(", last played on %1 for %2") - .arg(QLocale().toString(lastLaunchTime, QLocale::ShortFormat)) - .arg(Time::prettifyDuration(lastTimePlayed()))); + description.append( + tr(", last played on %1 for %2") + .arg(QLocale().toString(lastLaunchTime, QLocale::ShortFormat)) + .arg(Time::prettifyDuration(lastTimePlayed(), APPLICATION->settings()->get("ShowGameTimeWithoutDays").toBool()))); } if (totalTimePlayed() > 0) { - description.append(tr(", total played for %1").arg(Time::prettifyDuration(totalTimePlayed()))); + description.append( + tr(", total played for %1") + .arg(Time::prettifyDuration(totalTimePlayed(), APPLICATION->settings()->get("ShowGameTimeWithoutDays").toBool()))); } } if (hasCrashed()) { diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp index d3dc7f5b..20cc74d8 100644 --- a/launcher/ui/MainWindow.cpp +++ b/launcher/ui/MainWindow.cpp @@ -1736,7 +1736,9 @@ void MainWindow::updateStatusCenter() int timePlayed = APPLICATION->instances()->getTotalPlayTime(); if (timePlayed > 0) { - m_statusCenter->setText(tr("Total playtime: %1").arg(Time::prettifyDuration(timePlayed))); + m_statusCenter->setText( + tr("Total playtime: %1") + .arg(Time::prettifyDuration(timePlayed, APPLICATION->settings()->get("ShowGameTimeWithoutDays").toBool()))); } } // "Instance actions" are actions that require an instance to be selected (i.e. "new instance" is not here) diff --git a/launcher/ui/pages/global/MinecraftPage.cpp b/launcher/ui/pages/global/MinecraftPage.cpp index f0d50b63..553cefd8 100644 --- a/launcher/ui/pages/global/MinecraftPage.cpp +++ b/launcher/ui/pages/global/MinecraftPage.cpp @@ -114,6 +114,7 @@ void MinecraftPage::applySettings() s->set("ShowGameTime", ui->showGameTime->isChecked()); s->set("ShowGlobalGameTime", ui->showGlobalGameTime->isChecked()); s->set("RecordGameTime", ui->recordGameTime->isChecked()); + s->set("ShowGameTimeWithoutDays", ui->showGameTimeWithoutDays->isChecked()); // Miscellaneous s->set("CloseAfterLaunch", ui->closeAfterLaunchCheck->isChecked()); @@ -165,6 +166,7 @@ void MinecraftPage::loadSettings() ui->showGameTime->setChecked(s->get("ShowGameTime").toBool()); ui->showGlobalGameTime->setChecked(s->get("ShowGlobalGameTime").toBool()); ui->recordGameTime->setChecked(s->get("RecordGameTime").toBool()); + ui->showGameTimeWithoutDays->setChecked(s->get("ShowGameTimeWithoutDays").toBool()); ui->closeAfterLaunchCheck->setChecked(s->get("CloseAfterLaunch").toBool()); ui->quitAfterGameStopCheck->setChecked(s->get("QuitAfterGameStop").toBool()); diff --git a/launcher/ui/pages/global/MinecraftPage.ui b/launcher/ui/pages/global/MinecraftPage.ui index ef4a2287..b5cfa659 100644 --- a/launcher/ui/pages/global/MinecraftPage.ui +++ b/launcher/ui/pages/global/MinecraftPage.ui @@ -138,6 +138,13 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="showGameTimeWithoutDays"> + <property name="text"> + <string>Show time spent playing in hours</string> + </property> + </widget> + </item> </layout> </widget> </item> |