Browse Source

[desktop] Display currently applied update in tooltip alongside playtime

Also nicely formats both it and play time, alongside fallbacks if they
have nothing

Signed-off-by: crueter <crueter@eden-emu.dev>
pull/3611/head
crueter 2 weeks ago
parent
commit
e6c39bbf85
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 27
      src/yuzu/game/game_list_p.h
  2. 2
      src/yuzu/game/game_list_worker.cpp

27
src/yuzu/game/game_list_p.h

@ -17,6 +17,7 @@
#include <QStandardItem>
#include <QString>
#include <QWidget>
#include <QRegularExpression>
#include "common/common_types.h"
#include "common/logging/log.h"
@ -76,15 +77,35 @@ public:
GameListItemPath() = default;
GameListItemPath(const QString& game_path, const std::vector<u8>& picture_data,
const QString& game_name, const QString& game_type, u64 program_id,
u64 play_time) {
u64 play_time, const QString &patch_versions) {
setData(type(), TypeRole);
setData(game_path, FullPathRole);
setData(game_name, TitleRole);
setData(qulonglong(program_id), ProgramIdRole);
setData(game_type, FileTypeRole);
setData(QString::fromStdString(PlayTime::PlayTimeManager::GetReadablePlayTime(play_time)),
Qt::ToolTipRole);
const auto readable_play_time =
play_time > 0
? QObject::tr("Play Time: %1").arg(QString::fromStdString(PlayTime::PlayTimeManager::GetReadablePlayTime(play_time)))
: QObject::tr("Never Played");
const auto enabled_update = [patch_versions]() -> QString {
const QStringList lines = patch_versions.split(QLatin1Char('\n'));
const QRegularExpression regex{QStringLiteral(R"(^Update \(([0-9\.]+)\))")};
for (const QString &line : std::as_const(lines)) {
const auto match = regex.match(line);
if (match.hasMatch()) {
return QObject::tr("Version: %1").arg(match.captured());
}
}
return QObject::tr("Version: 1.0.0");
}();
const auto tooltip = QStringLiteral("%1\n%2").arg(
readable_play_time,
enabled_update);
setData(tooltip, Qt::ToolTipRole);
const u32 size = UISettings::values.game_icon_size.GetValue();

2
src/yuzu/game/game_list_worker.cpp

@ -218,7 +218,7 @@ QList<QStandardItem*> MakeGameListEntry(const std::string& path,
u64 play_time = play_time_manager.GetPlayTime(program_id);
return QList<QStandardItem*>{
new GameListItemPath(FormatGameName(path), icon, QString::fromStdString(name),
file_type_string, program_id, play_time),
file_type_string, program_id, play_time, patch_versions),
new GameListItem(file_type_string),
new GameListItemSize(size),
new GameListItemPlayTime(play_time),

Loading…
Cancel
Save