@@ -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+
131138std::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