mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2026-01-02 13:48:05 -06:00
Don't use output parameters for error handling
This commit is contained in:
@@ -252,13 +252,13 @@ bool AddNewTorrentDialog::loadTorrentFile(const QString &torrentPath)
|
||||
? QUrl::fromEncoded(torrentPath.toLocal8Bit()).toLocalFile()
|
||||
: torrentPath;
|
||||
|
||||
QString error;
|
||||
m_torrentInfo = BitTorrent::TorrentInfo::loadFromFile(decodedPath, &error);
|
||||
if (!m_torrentInfo.isValid())
|
||||
const nonstd::expected<BitTorrent::TorrentInfo, QString> result = BitTorrent::TorrentInfo::loadFromFile(decodedPath);
|
||||
m_torrentInfo = result.value_or(BitTorrent::TorrentInfo());
|
||||
if (!result)
|
||||
{
|
||||
RaisedMessageBox::critical(this, tr("Invalid torrent")
|
||||
, tr("Failed to load the torrent: %1.\nError: %2", "Don't remove the '\n' characters. They insert a newline.")
|
||||
.arg(Utils::Fs::toNativePath(decodedPath), error));
|
||||
.arg(Utils::Fs::toNativePath(decodedPath), result.error()));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -746,36 +746,38 @@ void AddNewTorrentDialog::setupTreeview()
|
||||
updateDiskSpaceLabel();
|
||||
}
|
||||
|
||||
void AddNewTorrentDialog::handleDownloadFinished(const Net::DownloadResult &result)
|
||||
void AddNewTorrentDialog::handleDownloadFinished(const Net::DownloadResult &downloadResult)
|
||||
{
|
||||
QString error;
|
||||
switch (result.status)
|
||||
switch (downloadResult.status)
|
||||
{
|
||||
case Net::DownloadStatus::Success:
|
||||
m_torrentInfo = BitTorrent::TorrentInfo::load(result.data, &error);
|
||||
if (!m_torrentInfo.isValid())
|
||||
{
|
||||
RaisedMessageBox::critical(this, tr("Invalid torrent"), tr("Failed to load from URL: %1.\nError: %2")
|
||||
.arg(result.url, error));
|
||||
return;
|
||||
const nonstd::expected<BitTorrent::TorrentInfo, QString> result = BitTorrent::TorrentInfo::load(downloadResult.data);
|
||||
m_torrentInfo = result.value_or(BitTorrent::TorrentInfo());
|
||||
if (!result)
|
||||
{
|
||||
RaisedMessageBox::critical(this, tr("Invalid torrent"), tr("Failed to load from URL: %1.\nError: %2")
|
||||
.arg(downloadResult.url, result.error()));
|
||||
return;
|
||||
}
|
||||
|
||||
m_torrentGuard = std::make_unique<TorrentFileGuard>();
|
||||
|
||||
if (loadTorrentImpl())
|
||||
open();
|
||||
else
|
||||
deleteLater();
|
||||
}
|
||||
|
||||
m_torrentGuard = std::make_unique<TorrentFileGuard>();
|
||||
|
||||
if (loadTorrentImpl())
|
||||
open();
|
||||
else
|
||||
deleteLater();
|
||||
break;
|
||||
case Net::DownloadStatus::RedirectedToMagnet:
|
||||
if (loadMagnet(BitTorrent::MagnetUri(result.magnet)))
|
||||
if (loadMagnet(BitTorrent::MagnetUri(downloadResult.magnet)))
|
||||
open();
|
||||
else
|
||||
deleteLater();
|
||||
break;
|
||||
default:
|
||||
RaisedMessageBox::critical(this, tr("Download Error"),
|
||||
tr("Cannot download '%1': %2").arg(result.url, result.errorString));
|
||||
tr("Cannot download '%1': %2").arg(downloadResult.url, downloadResult.errorString));
|
||||
deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ private slots:
|
||||
void updateDiskSpaceLabel();
|
||||
void onSavePathChanged(const QString &newPath);
|
||||
void updateMetadata(const BitTorrent::TorrentInfo &metadata);
|
||||
void handleDownloadFinished(const Net::DownloadResult &result);
|
||||
void handleDownloadFinished(const Net::DownloadResult &downloadResult);
|
||||
void TMMChanged(int index);
|
||||
void categoryChanged(int index);
|
||||
void doNotDeleteTorrentClicked(bool checked);
|
||||
|
||||
@@ -246,10 +246,10 @@ void RSSWidget::askNewFolder()
|
||||
? RSS::Session::instance()->rootFolder()
|
||||
: qobject_cast<RSS::Folder *>(m_feedListWidget->getRSSItem(destItem)));
|
||||
|
||||
QString error;
|
||||
const QString newFolderPath = RSS::Item::joinPath(rssDestFolder->path(), newName);
|
||||
if (!RSS::Session::instance()->addFolder(newFolderPath, &error))
|
||||
QMessageBox::warning(this, "qBittorrent", error, QMessageBox::Ok);
|
||||
const nonstd::expected<void, QString> result = RSS::Session::instance()->addFolder(newFolderPath);
|
||||
if (!result)
|
||||
QMessageBox::warning(this, "qBittorrent", result.error(), QMessageBox::Ok);
|
||||
|
||||
// Expand destination folder to display new feed
|
||||
if (destItem && (destItem != m_feedListWidget->stickyUnreadItem()))
|
||||
@@ -287,11 +287,11 @@ void RSSWidget::on_newFeedButton_clicked()
|
||||
? RSS::Session::instance()->rootFolder()
|
||||
: qobject_cast<RSS::Folder *>(m_feedListWidget->getRSSItem(destItem)));
|
||||
|
||||
QString error;
|
||||
// NOTE: We still add feed using legacy way (with URL as feed name)
|
||||
const QString newFeedPath = RSS::Item::joinPath(rssDestFolder->path(), newURL);
|
||||
if (!RSS::Session::instance()->addFeed(newURL, newFeedPath, &error))
|
||||
QMessageBox::warning(this, "qBittorrent", error, QMessageBox::Ok);
|
||||
const nonstd::expected<void, QString> result = RSS::Session::instance()->addFeed(newURL, newFeedPath);
|
||||
if (!result)
|
||||
QMessageBox::warning(this, "qBittorrent", result.error(), QMessageBox::Ok);
|
||||
|
||||
// Expand destination folder to display new feed
|
||||
if (destItem && (destItem != m_feedListWidget->stickyUnreadItem()))
|
||||
@@ -411,10 +411,10 @@ void RSSWidget::renameSelectedRSSItem()
|
||||
// Check if name is already taken
|
||||
if (!ok) return;
|
||||
|
||||
QString error;
|
||||
if (!RSS::Session::instance()->moveItem(rssItem, RSS::Item::joinPath(parentPath, newName), &error))
|
||||
const nonstd::expected<void, QString> result = RSS::Session::instance()->moveItem(rssItem, RSS::Item::joinPath(parentPath, newName));
|
||||
if (!result)
|
||||
{
|
||||
QMessageBox::warning(nullptr, tr("Rename failed"), error);
|
||||
QMessageBox::warning(nullptr, tr("Rename failed"), result.error());
|
||||
ok = false;
|
||||
}
|
||||
} while (!ok);
|
||||
|
||||
@@ -234,8 +234,8 @@ void TorrentCreatorDialog::handleCreationSuccess(const QString &path, const QStr
|
||||
if (m_ui->checkStartSeeding->isChecked())
|
||||
{
|
||||
// Create save path temp data
|
||||
const BitTorrent::TorrentInfo info = BitTorrent::TorrentInfo::loadFromFile(Utils::Fs::toNativePath(path));
|
||||
if (!info.isValid())
|
||||
const nonstd::expected<BitTorrent::TorrentInfo, QString> result = BitTorrent::TorrentInfo::loadFromFile(Utils::Fs::toNativePath(path));
|
||||
if (!result)
|
||||
{
|
||||
QMessageBox::critical(this, tr("Torrent creation failed"), tr("Reason: Created torrent is invalid. It won't be added to download list."));
|
||||
return;
|
||||
@@ -251,7 +251,7 @@ void TorrentCreatorDialog::handleCreationSuccess(const QString &path, const QStr
|
||||
}
|
||||
params.useAutoTMM = false; // otherwise if it is on by default, it will overwrite `savePath` to the default save path
|
||||
|
||||
BitTorrent::Session::instance()->addTorrent(info, params);
|
||||
BitTorrent::Session::instance()->addTorrent(result.value(), params);
|
||||
}
|
||||
QMessageBox::information(this, tr("Torrent creator")
|
||||
, QString::fromLatin1("%1\n%2").arg(tr("Torrent created:"), Utils::Fs::toNativePath(path)));
|
||||
|
||||
Reference in New Issue
Block a user