mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-22 00:17:23 -06:00
fix import torrent with "Keep incomplete torrents in:" ticked
* also had to account for "Append the label of the torrent to the save path", but again, this was only an issue when "Keep incomplete torrents in:" is selected * A multi-file torrent with only one file (ie: a single file within a folder), was being treated as a single-file torrent, making it impossible to import. Multi-file torrent detection code was copied from libtorrent. The information is available in libtorrent (under torrent_info::m_multifile), however it's a private member and I chose to go with copying the code that determines it, rather than modifying a library qBittorrent depends on.
This commit is contained in:
@@ -77,7 +77,16 @@ void TorrentImportDlg::on_browseContentBtn_clicked()
|
||||
{
|
||||
QIniSettings settings;
|
||||
const QString default_dir = settings.value(QString::fromUtf8("TorrentImport/LastContentDir"), QDir::homePath()).toString();
|
||||
if (t->num_files() == 1) {
|
||||
// Test for multi-file taken from libtorrent/create_torrent.hpp -> create_torrent::create_torrent
|
||||
bool multifile = t->num_files() > 1;
|
||||
#if LIBTORRENT_VERSION_NUM >= 1600
|
||||
if (!multifile && has_parent_path(t->files().file_path(*(t->files().begin()))))
|
||||
multifile = true;
|
||||
#else
|
||||
if (!multifile && t->file_at(0).path.has_parent_path())
|
||||
multifile = true;
|
||||
#endif
|
||||
if (!multifile) {
|
||||
// Single file torrent
|
||||
#if LIBTORRENT_VERSION_NUM >= 1600
|
||||
const QString file_name = fsutils::fileName(misc::toQStringU(t->file_at(0).path));
|
||||
@@ -211,7 +220,7 @@ void TorrentImportDlg::importTorrent()
|
||||
TorrentTempData::setSavePath(hash, content_path);
|
||||
TorrentTempData::setSeedingMode(hash, dlg.skipFileChecking());
|
||||
qDebug("Adding the torrent to the session...");
|
||||
QBtSession::instance()->addTorrent(torrent_path);
|
||||
QBtSession::instance()->addTorrent(torrent_path, false, QString(), false, true);
|
||||
// Remember the last opened folder
|
||||
QIniSettings settings;
|
||||
settings.setValue(QString::fromUtf8("MainWindowLastDir"), torrent_path);
|
||||
|
||||
Reference in New Issue
Block a user