Skip to content

Commit 4d5b047

Browse files
committed
Qt: Don't show fractional sizes in game list
Arguably not very useful.
1 parent e038a1d commit 4d5b047

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/duckstation-qt/gamelistwidget.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,13 @@ static void resizeAndPadImage(QImage* image, int expected_width, int expected_he
128128
*image = std::move(padded_image);
129129
}
130130

131+
static QString sizeToString(s64 size)
132+
{
133+
static constexpr s64 one_mb = 1024 * 1024;
134+
return (size >= 0) ? QStringLiteral("%1 MB").arg((size + (one_mb - 1)) / one_mb) :
135+
qApp->translate("GameListModel", "Unknown");
136+
}
137+
131138
std::optional<GameListModel::Column> GameListModel::getColumnIdForName(std::string_view name)
132139
{
133140
for (int column = 0; column < Column_Count; column++)
@@ -645,12 +652,10 @@ QVariant GameListModel::data(const QModelIndex& index, int role, const GameList:
645652
}
646653

647654
case Column_FileSize:
648-
return (ge->file_size >= 0) ?
649-
QStringLiteral("%1 MB").arg(static_cast<double>(ge->file_size) / 1048576.0, 0, 'f', 2) :
650-
tr("Unknown");
655+
return sizeToString(ge->file_size);
651656

652657
case Column_UncompressedSize:
653-
return QStringLiteral("%1 MB").arg(static_cast<double>(ge->uncompressed_size) / 1048576.0, 0, 'f', 2);
658+
return sizeToString(ge->file_size);
654659

655660
case Column_Achievements:
656661
return {};
@@ -1933,7 +1938,7 @@ void GameListListView::setFixedColumnWidths()
19331938
static_cast<s64>(QDateTime::currentSecsSinceEpoch())))))));
19341939

19351940
// Assume 8 is the widest digit.
1936-
int size_width = width_for(QStringLiteral("%1 MB").arg(8888.88, 0, 'f', 2));
1941+
const int size_width = std::max(width_for(QStringLiteral("%1 MB").arg(8888)), width_for(tr("Unknown")));
19371942
setFixedColumnWidth(fm, GameListModel::Column_FileSize, size_width);
19381943
setFixedColumnWidth(fm, GameListModel::Column_UncompressedSize, size_width);
19391944

0 commit comments

Comments
 (0)