Browse Source

Make alignment optimization optional

Disabling alignment optimization allows preserving file order in torrent
files and closes #5652
adaptive-webui-19844
toster 7 years ago
parent
commit
e538eae726
  1. 3
      src/base/bittorrent/torrentcreatorthread.cpp
  2. 1
      src/base/bittorrent/torrentcreatorthread.h
  3. 6
      src/gui/torrentcreatordlg.cpp
  4. 1
      src/gui/torrentcreatordlg.h
  5. 11
      src/gui/torrentcreatordlg.ui

3
src/base/bittorrent/torrentcreatorthread.cpp

@ -92,7 +92,8 @@ void TorrentCreatorThread::run() @@ -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) {

1
src/base/bittorrent/torrentcreatorthread.h

@ -39,6 +39,7 @@ namespace BitTorrent @@ -39,6 +39,7 @@ namespace BitTorrent
struct TorrentCreatorParams
{
bool isPrivate;
bool isAlignmentOptimized;
int pieceSize;
QString inputPath;
QString savePath;

6
src/gui/torrentcreatordlg.cpp

@ -55,6 +55,7 @@ TorrentCreatorDlg::TorrentCreatorDlg(QWidget *parent, const QString &defaultPath @@ -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() @@ -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() @@ -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() @@ -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);

1
src/gui/torrentcreatordlg.h

@ -80,6 +80,7 @@ private: @@ -80,6 +80,7 @@ private:
CachedSettingValue<bool> m_storePrivateTorrent;
CachedSettingValue<bool> m_storeStartSeeding;
CachedSettingValue<bool> m_storeIgnoreRatio;
CachedSettingValue<bool> m_storeOptimizeAlignment;
CachedSettingValue<QString> m_storeLastAddPath;
CachedSettingValue<QString> m_storeTrackerList;
CachedSettingValue<QString> m_storeWebSeedList;

11
src/gui/torrentcreatordlg.ui

@ -224,6 +224,16 @@ @@ -224,6 +224,16 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkOptimizeAlignment">
<property name="text">
<string>Optimize alignment</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@ -329,6 +339,7 @@ @@ -329,6 +339,7 @@
<tabstop>checkPrivate</tabstop>
<tabstop>checkStartSeeding</tabstop>
<tabstop>checkIgnoreShareLimits</tabstop>
<tabstop>checkOptimizeAlignment</tabstop>
<tabstop>trackersList</tabstop>
<tabstop>URLSeedsList</tabstop>
<tabstop>txtComment</tabstop>

Loading…
Cancel
Save