refactor: remove tr_strip_positional_args() (#2881)

* refactor: use fmt in gtk/SystemIconTray

* refactor: use fmt in gtk/MakeDialog

* refactor: remove unused tr_strip_positional_args()

Co-authored-by: Mike Gelfand <mikedld@mikedld.com>
This commit is contained in:
Charles Kerr
2022-04-07 08:23:04 -05:00
committed by GitHub
parent 8d11f0bc22
commit ffda5bb68a
8 changed files with 72 additions and 146 deletions

View File

@@ -818,48 +818,52 @@ void DetailsDialog::Impl::refreshInfo(std::vector<tr_torrent*> const& torrents)
/* size_lb */
{
uint64_t size = 0;
int pieces = 0;
int32_t pieceSize = 0;
auto const piece_count = std::accumulate(
std::begin(infos),
std::end(infos),
uint64_t{},
[](auto sum, auto const& info) { return sum + info.n_pieces; });
for (auto const& info : infos)
{
size += info.total_size;
pieces += info.n_pieces;
if (pieceSize == 0)
{
pieceSize = info.piece_size;
}
else if (pieceSize != (int)info.piece_size)
{
pieceSize = -1;
}
}
auto const sizebuf = tr_strlsize(size);
if (size == 0)
if (piece_count == 0)
{
str.clear();
}
else if (pieceSize >= 0)
{
str = fmt::format(
ngettext(
"{file_size} ({piece_count} piece @ {piece_size})",
"{file_size} ({piece_count} pieces @ {piece_size})",
pieces),
fmt::arg("file_size", sizebuf),
fmt::arg("piece_count", pieces),
fmt::arg("piece_size", tr_formatter_mem_B(pieceSize)));
}
else
{
auto const total_size = std::accumulate(
std::begin(infos),
std::end(infos),
uint64_t{},
[](auto sum, auto const& info) { return sum + info.total_size; });
auto const file_count = std::accumulate(
std::begin(torrents),
std::end(torrents),
std::size_t{},
[](auto sum, auto const* tor) { return sum + tr_torrentFileCount(tor); });
str = fmt::format(
ngettext("{file_size} ({piece_count} piece)", "{file_size} ({piece_count} pieces)", pieces),
fmt::arg("file_size", sizebuf),
fmt::arg("piece_count", pieces));
ngettext("{total_size} in {file_count:L} file", "{total_size} in {file_count:L} files", file_count),
fmt::arg("total_size", tr_strlsize(total_size)),
fmt::arg("file_count", file_count));
auto const piece_size = std::empty(infos) ? uint32_t{} : infos.front().piece_size;
auto const piece_size_is_uniform = std::all_of(
std::begin(infos),
std::end(infos),
[piece_size](auto const& info) { return info.piece_size == piece_size; });
if (piece_size_is_uniform)
{
str += ' ';
str += fmt::format(
ngettext(
"({piece_count} BitTorrent piece @ {piece_size})",
"({piece_count} BitTorrent pieces @ {piece_size})",
piece_count),
fmt::arg("piece_count", piece_count),
fmt::arg("piece_size", tr_formatter_mem_B(piece_size)));
}
}
size_lb_->set_text(str);
@@ -2669,8 +2673,8 @@ void DetailsDialog::Impl::set_torrents(std::vector<int> const& ids)
else
{
title = fmt::format(
ngettext("Properties - {count} Torrent", "Properties - {count} Torrents", len),
fmt::arg("count", len));
ngettext("Properties - {torrent_count:L} Torrent", "Properties - {torrent_count:L} Torrents", len),
fmt::arg("torrent_count", len));
file_list_->clear();
file_list_->hide();