1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-01-16 17:50:01 +00:00

Add source field in Torrent creator. Closes #7965.

This field is often used for cross-seeding between (private) trackers.
This commit is contained in:
Chocobo1 2017-12-05 21:18:18 +08:00
parent c405cb2f1c
commit 8dcf326576
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
5 changed files with 27 additions and 2 deletions

View File

@ -124,6 +124,14 @@ void TorrentCreatorThread::run()
if (isInterruptionRequested()) return;
libt::entry entry = newTorrent.generate();
// add source field
if (!m_params.source.isEmpty())
entry["info"]["source"] = m_params.source.toStdString();
if (isInterruptionRequested()) return;
// create the torrent
std::ofstream outfile(
#ifdef _MSC_VER
@ -137,7 +145,7 @@ void TorrentCreatorThread::run()
if (isInterruptionRequested()) return;
libt::bencode(std::ostream_iterator<char>(outfile), newTorrent.generate());
libt::bencode(std::ostream_iterator<char>(outfile), entry);
outfile.close();
emit updateProgress(100);

View File

@ -43,6 +43,7 @@ namespace BitTorrent
QString inputPath;
QString savePath;
QString comment;
QString source;
QStringList trackers;
QStringList urlSeeds;
};

View File

@ -60,6 +60,7 @@ TorrentCreatorDlg::TorrentCreatorDlg(QWidget *parent, const QString &defaultPath
, m_storeWebSeedList(SETTINGS_KEY("WebSeedList"))
, m_storeComments(SETTINGS_KEY("Comments"))
, m_storeLastSavePath(SETTINGS_KEY("LastSavePath"), QDir::homePath())
, m_storeSource(SETTINGS_KEY("Source"))
{
m_ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
@ -165,9 +166,11 @@ void TorrentCreatorDlg::onCreateButtonClicked()
.replace(QRegularExpression("\n\n[\n]+"), "\n\n").split('\n');
const QStringList urlSeeds = m_ui->URLSeedsList->toPlainText().split('\n', QString::SkipEmptyParts);
const QString comment = m_ui->txtComment->toPlainText();
const QString source = m_ui->lineEditSource->text();
// run the creator thread
m_creatorThread->create({ m_ui->checkPrivate->isChecked(), getPieceSize(), input, destination, comment, trackers, urlSeeds });
m_creatorThread->create({ m_ui->checkPrivate->isChecked(), getPieceSize()
, input, destination, comment, source, trackers, urlSeeds });
}
void TorrentCreatorDlg::handleCreationFailure(const QString &msg)
@ -241,6 +244,7 @@ void TorrentCreatorDlg::saveSettings()
m_storeTrackerList = m_ui->trackersList->toPlainText();
m_storeWebSeedList = m_ui->URLSeedsList->toPlainText();
m_storeComments = m_ui->txtComment->toPlainText();
m_storeSource = m_ui->lineEditSource->text();
m_storeDialogSize = size();
}
@ -258,6 +262,7 @@ void TorrentCreatorDlg::loadSettings()
m_ui->trackersList->setPlainText(m_storeTrackerList);
m_ui->URLSeedsList->setPlainText(m_storeWebSeedList);
m_ui->txtComment->setPlainText(m_storeComments);
m_ui->lineEditSource->setText(m_storeSource);
if (m_storeDialogSize.value().isValid())
resize(m_storeDialogSize);

View File

@ -85,6 +85,7 @@ private:
CachedSettingValue<QString> m_storeWebSeedList;
CachedSettingValue<QString> m_storeComments;
CachedSettingValue<QString> m_storeLastSavePath;
CachedSettingValue<QString> m_storeSource;
};
#endif

View File

@ -273,6 +273,16 @@
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="labelSource">
<property name="text">
<string>Source:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lineEditSource"/>
</item>
</layout>
</widget>
</item>