diff --git a/src/base/bittorrent/torrentcreatorthread.cpp b/src/base/bittorrent/torrentcreatorthread.cpp index aaec19324..e5f92a7c2 100644 --- a/src/base/bittorrent/torrentcreatorthread.cpp +++ b/src/base/bittorrent/torrentcreatorthread.cpp @@ -92,7 +92,8 @@ void TorrentCreatorThread::run() if (isInterruptionRequested()) return; - libt::create_torrent newTorrent(fs, m_params.pieceSize); + libt::create_torrent newTorrent(fs, m_params.pieceSize, -1 + , (m_params.isAlignmentOptimized ? libt::create_torrent::optimize_alignment : 0)); // Add url seeds foreach (QString seed, m_params.urlSeeds) { diff --git a/src/base/bittorrent/torrentcreatorthread.h b/src/base/bittorrent/torrentcreatorthread.h index 58785cfa2..2f32db4d4 100644 --- a/src/base/bittorrent/torrentcreatorthread.h +++ b/src/base/bittorrent/torrentcreatorthread.h @@ -39,6 +39,7 @@ namespace BitTorrent struct TorrentCreatorParams { bool isPrivate; + bool isAlignmentOptimized; int pieceSize; QString inputPath; QString savePath; diff --git a/src/gui/torrentcreatordlg.cpp b/src/gui/torrentcreatordlg.cpp index 793f31f66..3c3b5bd1c 100644 --- a/src/gui/torrentcreatordlg.cpp +++ b/src/gui/torrentcreatordlg.cpp @@ -55,6 +55,7 @@ TorrentCreatorDlg::TorrentCreatorDlg(QWidget *parent, const QString &defaultPath , m_storePrivateTorrent(SETTINGS_KEY("PrivateTorrent")) , m_storeStartSeeding(SETTINGS_KEY("StartSeeding")) , m_storeIgnoreRatio(SETTINGS_KEY("IgnoreRatio")) + , m_storeOptimizeAlignment(SETTINGS_KEY("OptimizeAlignment"), true) , m_storeLastAddPath(SETTINGS_KEY("LastAddPath"), QDir::homePath()) , m_storeTrackerList(SETTINGS_KEY("TrackerList")) , m_storeWebSeedList(SETTINGS_KEY("WebSeedList")) @@ -169,7 +170,8 @@ void TorrentCreatorDlg::onCreateButtonClicked() const QString source = m_ui->lineEditSource->text(); // run the creator thread - m_creatorThread->create({ m_ui->checkPrivate->isChecked(), getPieceSize() + m_creatorThread->create({ m_ui->checkPrivate->isChecked() + , m_ui->checkOptimizeAlignment->isChecked(), getPieceSize() , input, destination, comment, source, trackers, urlSeeds }); } @@ -241,6 +243,7 @@ void TorrentCreatorDlg::saveSettings() m_storePrivateTorrent = m_ui->checkPrivate->isChecked(); m_storeStartSeeding = m_ui->checkStartSeeding->isChecked(); m_storeIgnoreRatio = m_ui->checkIgnoreShareLimits->isChecked(); + m_storeOptimizeAlignment = m_ui->checkOptimizeAlignment->isChecked(); m_storeTrackerList = m_ui->trackersList->toPlainText(); m_storeWebSeedList = m_ui->URLSeedsList->toPlainText(); @@ -258,6 +261,7 @@ void TorrentCreatorDlg::loadSettings() m_ui->checkPrivate->setChecked(m_storePrivateTorrent); m_ui->checkStartSeeding->setChecked(m_storeStartSeeding); m_ui->checkIgnoreShareLimits->setChecked(m_storeIgnoreRatio); + m_ui->checkOptimizeAlignment->setChecked(m_storeOptimizeAlignment); m_ui->checkIgnoreShareLimits->setEnabled(m_ui->checkStartSeeding->isChecked()); m_ui->trackersList->setPlainText(m_storeTrackerList); diff --git a/src/gui/torrentcreatordlg.h b/src/gui/torrentcreatordlg.h index 514dedf0c..48c9eacc3 100644 --- a/src/gui/torrentcreatordlg.h +++ b/src/gui/torrentcreatordlg.h @@ -80,6 +80,7 @@ private: CachedSettingValue m_storePrivateTorrent; CachedSettingValue m_storeStartSeeding; CachedSettingValue m_storeIgnoreRatio; + CachedSettingValue m_storeOptimizeAlignment; CachedSettingValue m_storeLastAddPath; CachedSettingValue m_storeTrackerList; CachedSettingValue m_storeWebSeedList; diff --git a/src/gui/torrentcreatordlg.ui b/src/gui/torrentcreatordlg.ui index 7ac6cbf59..b4238661d 100644 --- a/src/gui/torrentcreatordlg.ui +++ b/src/gui/torrentcreatordlg.ui @@ -224,6 +224,16 @@ + + + + Optimize alignment + + + true + + + @@ -329,6 +339,7 @@ checkPrivate checkStartSeeding checkIgnoreShareLimits + checkOptimizeAlignment trackersList URLSeedsList txtComment