From 8c598c463cd6768046231907deae8ab6dea18b0e Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 25 Feb 2022 01:19:28 -0600 Subject: [PATCH] feat: better dialog when adding duplicate magnet (#2709) Instead of giving the entire magnet link, which can be too long to be readable, give the magnet's display name (if available) or the info hash as a fallback. Fixes #1217. --- qt/AddData.cc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/qt/AddData.cc b/qt/AddData.cc index e40f54a59..f88a0196c 100644 --- a/qt/AddData.cc +++ b/qt/AddData.cc @@ -29,6 +29,23 @@ QString getNameFromMetainfo(QByteArray const& benc) return QString::fromStdString(metainfo.name()); } +QString getNameFromMagnet(QString const& magnet) +{ + auto tmp = tr_magnet_metainfo{}; + + if (!tmp.parseMagnet(magnet.toStdString())) + { + return magnet; + } + + if (!std::empty(tmp.name())) + { + return QString::fromStdString(tmp.name()); + } + + return QString::fromStdString(tmp.infoHashString()); +} + } // namespace int AddData::set(QString const& key) @@ -79,7 +96,7 @@ QString AddData::readableName() const return filename; case MAGNET: - return magnet; + return getNameFromMagnet(magnet); case URL: return url.toString();