mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-01-06 15:04:34 +08:00
Rename ASM to TMM and related stuff.
This commit is contained in:
parent
bc270bd801
commit
81ea07abee
@ -98,10 +98,10 @@ const QString KEY_DEFAULTSAVEPATH = SETTINGS_KEY("DefaultSavePath");
|
||||
const QString KEY_TEMPPATH = SETTINGS_KEY("TempPath");
|
||||
const QString KEY_SUBCATEGORIESENABLED = SETTINGS_KEY("SubcategoriesEnabled");
|
||||
const QString KEY_TEMPPATHENABLED = SETTINGS_KEY("TempPathEnabled");
|
||||
const QString KEY_DISABLEASMBYDEFAULT = SETTINGS_KEY("DisableASMByDefault");
|
||||
const QString KEY_DISABLEASMONCATEGORYCHANGED = SETTINGS_KEY("DisableASMTriggers/CategoryChanged");
|
||||
const QString KEY_DISABLEASMONDEFAULTSAVEPATHCHANGED = SETTINGS_KEY("DisableASMTriggers/DefaultSavePathChanged");
|
||||
const QString KEY_DISABLEASMONCATEGORYSAVEPATHCHANGED = SETTINGS_KEY("DisableASMTriggers/CategorySavePathChanged");
|
||||
const QString KEY_DISABLE_AUTOTMM_BYDEFAULT = SETTINGS_KEY("DisableAutoTMMByDefault");
|
||||
const QString KEY_DISABLE_AUTOTMM_ONCATEGORYCHANGED = SETTINGS_KEY("DisableAutoTMMTriggers/CategoryChanged");
|
||||
const QString KEY_DISABLE_AUTOTMM_ONDEFAULTSAVEPATHCHANGED = SETTINGS_KEY("DisableAutoTMMTriggers/DefaultSavePathChanged");
|
||||
const QString KEY_DISABLE_AUTOTMM_ONCATEGORYSAVEPATHCHANGED = SETTINGS_KEY("DisableAutoTMMTriggers/CategorySavePathChanged");
|
||||
const QString KEY_ADDTORRENTPAUSED = SETTINGS_KEY("AddTorrentPaused");
|
||||
|
||||
namespace
|
||||
@ -422,10 +422,10 @@ bool Session::editCategory(const QString &name, const QString &savePath)
|
||||
if (categorySavePath(name) == savePath) return false;
|
||||
|
||||
m_categories[name] = savePath;
|
||||
if (isDisableASMWhenCategorySavePathChanged()) {
|
||||
if (isDisableAutoTMMWhenCategorySavePathChanged()) {
|
||||
foreach (TorrentHandle *const torrent, torrents())
|
||||
if (torrent->category() == name)
|
||||
torrent->setASMEnabled(false);
|
||||
torrent->setAutoTMMEnabled(false);
|
||||
}
|
||||
else {
|
||||
foreach (TorrentHandle *const torrent, torrents())
|
||||
@ -491,44 +491,44 @@ void Session::setSubcategoriesEnabled(bool value)
|
||||
emit subcategoriesSupportChanged();
|
||||
}
|
||||
|
||||
bool Session::isASMDisabledByDefault() const
|
||||
bool Session::isAutoTMMDisabledByDefault() const
|
||||
{
|
||||
return m_settings->loadValue(KEY_DISABLEASMBYDEFAULT, true).toBool();
|
||||
return m_settings->loadValue(KEY_DISABLE_AUTOTMM_BYDEFAULT, true).toBool();
|
||||
}
|
||||
|
||||
void Session::setASMDisabledByDefault(bool value)
|
||||
void Session::setAutoTMMDisabledByDefault(bool value)
|
||||
{
|
||||
m_settings->storeValue(KEY_DISABLEASMBYDEFAULT, value);
|
||||
m_settings->storeValue(KEY_DISABLE_AUTOTMM_BYDEFAULT, value);
|
||||
}
|
||||
|
||||
bool Session::isDisableASMWhenCategoryChanged() const
|
||||
bool Session::isDisableAutoTMMWhenCategoryChanged() const
|
||||
{
|
||||
return m_settings->loadValue(KEY_DISABLEASMONCATEGORYCHANGED, false).toBool();
|
||||
return m_settings->loadValue(KEY_DISABLE_AUTOTMM_ONCATEGORYCHANGED, false).toBool();
|
||||
}
|
||||
|
||||
void Session::setDisableASMWhenCategoryChanged(bool value)
|
||||
void Session::setDisableAutoTMMWhenCategoryChanged(bool value)
|
||||
{
|
||||
m_settings->storeValue(KEY_DISABLEASMONCATEGORYCHANGED, value);
|
||||
m_settings->storeValue(KEY_DISABLE_AUTOTMM_ONCATEGORYCHANGED, value);
|
||||
}
|
||||
|
||||
bool Session::isDisableASMWhenDefaultSavePathChanged() const
|
||||
bool Session::isDisableAutoTMMWhenDefaultSavePathChanged() const
|
||||
{
|
||||
return m_settings->loadValue(KEY_DISABLEASMONDEFAULTSAVEPATHCHANGED, true).toBool();
|
||||
return m_settings->loadValue(KEY_DISABLE_AUTOTMM_ONDEFAULTSAVEPATHCHANGED, true).toBool();
|
||||
}
|
||||
|
||||
void Session::setDisableASMWhenDefaultSavePathChanged(bool value)
|
||||
void Session::setDisableAutoTMMWhenDefaultSavePathChanged(bool value)
|
||||
{
|
||||
m_settings->storeValue(KEY_DISABLEASMONDEFAULTSAVEPATHCHANGED, value);
|
||||
m_settings->storeValue(KEY_DISABLE_AUTOTMM_ONDEFAULTSAVEPATHCHANGED, value);
|
||||
}
|
||||
|
||||
bool Session::isDisableASMWhenCategorySavePathChanged() const
|
||||
bool Session::isDisableAutoTMMWhenCategorySavePathChanged() const
|
||||
{
|
||||
return m_settings->loadValue(KEY_DISABLEASMONCATEGORYSAVEPATHCHANGED, true).toBool();
|
||||
return m_settings->loadValue(KEY_DISABLE_AUTOTMM_ONCATEGORYSAVEPATHCHANGED, true).toBool();
|
||||
}
|
||||
|
||||
void Session::setDisableASMWhenCategorySavePathChanged(bool value)
|
||||
void Session::setDisableAutoTMMWhenCategorySavePathChanged(bool value)
|
||||
{
|
||||
m_settings->storeValue(KEY_DISABLEASMONCATEGORYSAVEPATHCHANGED, value);
|
||||
m_settings->storeValue(KEY_DISABLE_AUTOTMM_ONCATEGORYSAVEPATHCHANGED, value);
|
||||
}
|
||||
|
||||
bool Session::isAddTorrentPaused() const
|
||||
@ -1259,7 +1259,7 @@ bool Session::addTorrent_impl(AddTorrentData addData, const MagnetUri &magnetUri
|
||||
{
|
||||
addData.savePath = normalizeSavePath(
|
||||
addData.savePath,
|
||||
((!addData.resumed && isASMDisabledByDefault()) ? m_defaultSavePath : ""));
|
||||
((!addData.resumed && isAutoTMMDisabledByDefault()) ? m_defaultSavePath : ""));
|
||||
|
||||
if (!addData.category.isEmpty()) {
|
||||
if (!m_categories.contains(addData.category) && !addCategory(addData.category)) {
|
||||
@ -1274,9 +1274,9 @@ bool Session::addTorrent_impl(AddTorrentData addData, const MagnetUri &magnetUri
|
||||
std::vector<boost::uint8_t> filePriorities;
|
||||
|
||||
QString savePath;
|
||||
if (addData.savePath.isEmpty()) // using Advanced mode
|
||||
if (addData.savePath.isEmpty()) // using Automatic mode
|
||||
savePath = categorySavePath(addData.category);
|
||||
else // using Simple mode
|
||||
else // using Manual mode
|
||||
savePath = addData.savePath;
|
||||
|
||||
bool fromMagnetUri = magnetUri.isValid();
|
||||
@ -1679,9 +1679,9 @@ void Session::setDefaultSavePath(QString path)
|
||||
m_defaultSavePath = path;
|
||||
m_settings->storeValue(KEY_DEFAULTSAVEPATH, m_defaultSavePath);
|
||||
|
||||
if (isDisableASMWhenDefaultSavePathChanged())
|
||||
if (isDisableAutoTMMWhenDefaultSavePathChanged())
|
||||
foreach (TorrentHandle *const torrent, torrents())
|
||||
torrent->setASMEnabled(false);
|
||||
torrent->setAutoTMMEnabled(false);
|
||||
else
|
||||
foreach (TorrentHandle *const torrent, torrents())
|
||||
torrent->handleCategorySavePathChanged();
|
||||
|
@ -199,25 +199,25 @@ namespace BitTorrent
|
||||
bool isSubcategoriesEnabled() const;
|
||||
void setSubcategoriesEnabled(bool value);
|
||||
|
||||
// Advanced Saving Management subsystem (ASM)
|
||||
// Torrent Management Mode subsystem (TMM)
|
||||
//
|
||||
// Each torrent can be either in Simple mode or in Advanced mode
|
||||
// In Simple mode torrent has explicit save path
|
||||
// In Advanced Mode torrent has implicit save path (based on Default
|
||||
// save path and Category save path)
|
||||
// In Advanced Mode torrent save path can be changed in following cases:
|
||||
// Each torrent can be either in Manual mode or in Automatic mode
|
||||
// In Manual Mode various torrent properties are set explicitly(eg save path)
|
||||
// In Automatic Mode various torrent properties are set implicitly(eg save path)
|
||||
// based on the associated category.
|
||||
// In Automatic Mode torrent save path can be changed in following cases:
|
||||
// 1. Default save path changed
|
||||
// 2. Torrent category save path changed
|
||||
// 3. Torrent category changed
|
||||
// (unless otherwise is specified)
|
||||
bool isASMDisabledByDefault() const;
|
||||
void setASMDisabledByDefault(bool value);
|
||||
bool isDisableASMWhenCategoryChanged() const;
|
||||
void setDisableASMWhenCategoryChanged(bool value);
|
||||
bool isDisableASMWhenDefaultSavePathChanged() const;
|
||||
void setDisableASMWhenDefaultSavePathChanged(bool value);
|
||||
bool isDisableASMWhenCategorySavePathChanged() const;
|
||||
void setDisableASMWhenCategorySavePathChanged(bool value);
|
||||
bool isAutoTMMDisabledByDefault() const;
|
||||
void setAutoTMMDisabledByDefault(bool value);
|
||||
bool isDisableAutoTMMWhenCategoryChanged() const;
|
||||
void setDisableAutoTMMWhenCategoryChanged(bool value);
|
||||
bool isDisableAutoTMMWhenDefaultSavePathChanged() const;
|
||||
void setDisableAutoTMMWhenDefaultSavePathChanged(bool value);
|
||||
bool isDisableAutoTMMWhenCategorySavePathChanged() const;
|
||||
void setDisableAutoTMMWhenCategorySavePathChanged(bool value);
|
||||
|
||||
bool isAddTorrentPaused() const;
|
||||
void setAddTorrentPaused(bool value);
|
||||
|
@ -199,7 +199,7 @@ TorrentHandle::TorrentHandle(Session *session, const libtorrent::torrent_handle
|
||||
, m_nativeHandle(nativeHandle)
|
||||
, m_state(TorrentState::Unknown)
|
||||
, m_renameCount(0)
|
||||
, m_useASM(data.savePath.isEmpty())
|
||||
, m_useAutoTMM(data.savePath.isEmpty())
|
||||
, m_name(data.name)
|
||||
, m_savePath(Utils::Fs::toNativePath(data.savePath))
|
||||
, m_category(data.category)
|
||||
@ -210,7 +210,7 @@ TorrentHandle::TorrentHandle(Session *session, const libtorrent::torrent_handle
|
||||
, m_pauseAfterRecheck(false)
|
||||
, m_needSaveResumeData(false)
|
||||
{
|
||||
if (m_useASM)
|
||||
if (m_useAutoTMM)
|
||||
m_savePath = Utils::Fs::toNativePath(m_session->categorySavePath(m_category));
|
||||
|
||||
updateStatus();
|
||||
@ -326,19 +326,19 @@ QString TorrentHandle::contentPath(bool actual) const
|
||||
return rootPath(actual);
|
||||
}
|
||||
|
||||
bool TorrentHandle::isASMEnabled() const
|
||||
bool TorrentHandle::isAutoTMMEnabled() const
|
||||
{
|
||||
return m_useASM;
|
||||
return m_useAutoTMM;
|
||||
}
|
||||
|
||||
void TorrentHandle::setASMEnabled(bool enabled)
|
||||
void TorrentHandle::setAutoTMMEnabled(bool enabled)
|
||||
{
|
||||
if (m_useASM == enabled) return;
|
||||
if (m_useAutoTMM == enabled) return;
|
||||
|
||||
m_useASM = enabled;
|
||||
m_useAutoTMM = enabled;
|
||||
m_session->handleTorrentSavingModeChanged(this);
|
||||
|
||||
if (m_useASM)
|
||||
if (m_useAutoTMM)
|
||||
move_impl(m_session->categorySavePath(m_category));
|
||||
}
|
||||
|
||||
@ -1150,11 +1150,11 @@ bool TorrentHandle::setCategory(const QString &category)
|
||||
m_needSaveResumeData = true;
|
||||
m_session->handleTorrentCategoryChanged(this, oldCategory);
|
||||
|
||||
if (m_useASM) {
|
||||
if (!m_session->isDisableASMWhenCategoryChanged())
|
||||
if (m_useAutoTMM) {
|
||||
if (!m_session->isDisableAutoTMMWhenCategoryChanged())
|
||||
move_impl(m_session->categorySavePath(m_category));
|
||||
else
|
||||
setASMEnabled(false);
|
||||
setAutoTMMEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1163,7 +1163,7 @@ bool TorrentHandle::setCategory(const QString &category)
|
||||
|
||||
void TorrentHandle::move(QString path)
|
||||
{
|
||||
m_useASM = false;
|
||||
m_useAutoTMM = false;
|
||||
m_session->handleTorrentSavingModeChanged(this);
|
||||
|
||||
path = Utils::Fs::fromNativePath(path.trimmed());
|
||||
@ -1531,7 +1531,7 @@ void TorrentHandle::handleSaveResumeDataAlert(libtorrent::save_resume_data_alert
|
||||
resumeData["qBt-paused"] = isPaused();
|
||||
resumeData["qBt-forced"] = isForced();
|
||||
}
|
||||
resumeData["qBt-savePath"] = m_useASM ? "" : Utils::String::toStdString(m_savePath);
|
||||
resumeData["qBt-savePath"] = m_useAutoTMM ? "" : Utils::String::toStdString(m_savePath);
|
||||
resumeData["qBt-ratioLimit"] = Utils::String::toStdString(QString::number(m_ratioLimit));
|
||||
resumeData["qBt-category"] = Utils::String::toStdString(m_category);
|
||||
resumeData["qBt-name"] = Utils::String::toStdString(m_name);
|
||||
@ -1656,7 +1656,7 @@ void TorrentHandle::handleTempPathChanged()
|
||||
|
||||
void TorrentHandle::handleCategorySavePathChanged()
|
||||
{
|
||||
if (m_useASM)
|
||||
if (m_useAutoTMM)
|
||||
move_impl(m_session->categorySavePath(m_category));
|
||||
}
|
||||
|
||||
|
@ -229,8 +229,8 @@ namespace BitTorrent
|
||||
QString rootPath(bool actual = false) const;
|
||||
QString contentPath(bool actual = false) const;
|
||||
|
||||
bool isASMEnabled() const;
|
||||
void setASMEnabled(bool enabled);
|
||||
bool isAutoTMMEnabled() const;
|
||||
void setAutoTMMEnabled(bool enabled);
|
||||
QString category() const;
|
||||
bool belongsToCategory(const QString &category) const;
|
||||
bool setCategory(const QString &category);
|
||||
@ -412,7 +412,7 @@ namespace BitTorrent
|
||||
QQueue<EventTrigger> m_moveFinishedTriggers;
|
||||
int m_renameCount;
|
||||
|
||||
bool m_useASM;
|
||||
bool m_useAutoTMM;
|
||||
|
||||
// Persistent data
|
||||
QString m_name;
|
||||
|
@ -89,7 +89,9 @@ AddNewTorrentDialog::AddNewTorrentDialog(QWidget *parent)
|
||||
auto session = BitTorrent::Session::instance();
|
||||
|
||||
ui->startTorrentCheckBox->setChecked(!session->isAddTorrentPaused());
|
||||
(session->isASMDisabledByDefault() ? ui->simpleModeRadioButton : ui->advancedModeRadioButton)->setChecked(true);
|
||||
ui->comboTTM->blockSignals(true); //the TreeView size isn't correct if the slot does it job at this point
|
||||
ui->comboTTM->setCurrentIndex(!session->isAutoTMMDisabledByDefault());
|
||||
ui->comboTTM->blockSignals(false);
|
||||
populateSavePathComboBox();
|
||||
connect(ui->savePathComboBox, SIGNAL(currentIndexChanged(int)), SLOT(onSavePathChanged(int)));
|
||||
connect(ui->browseButton, SIGNAL(clicked()), SLOT(browseButton_clicked()));
|
||||
@ -249,6 +251,7 @@ bool AddNewTorrentDialog::loadTorrent(const QString &torrentPath)
|
||||
|
||||
ui->lblhash->setText(m_hash);
|
||||
setupTreeview();
|
||||
TMMChanged(ui->comboTTM->currentIndex());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -287,6 +290,7 @@ bool AddNewTorrentDialog::loadMagnet(const BitTorrent::MagnetUri &magnetUri)
|
||||
setWindowTitle(torrent_name.isEmpty() ? tr("Magnet link") : torrent_name);
|
||||
|
||||
setupTreeview();
|
||||
TMMChanged(ui->comboTTM->currentIndex());
|
||||
// Set dialog position
|
||||
setdialogPosition();
|
||||
|
||||
@ -402,7 +406,7 @@ void AddNewTorrentDialog::categoryChanged(int index)
|
||||
{
|
||||
Q_UNUSED(index);
|
||||
|
||||
if (ui->advancedModeRadioButton->isChecked()) {
|
||||
if (ui->comboTTM->currentIndex() == 1) {
|
||||
QString savePath = BitTorrent::Session::instance()->categorySavePath(ui->categoryComboBox->currentText());
|
||||
ui->savePathComboBox->setItemText(0, Utils::Fs::toNativePath(savePath));
|
||||
ui->savePathComboBox->setItemData(0, savePath);
|
||||
@ -638,7 +642,7 @@ void AddNewTorrentDialog::accept()
|
||||
params.addPaused = !ui->startTorrentCheckBox->isChecked();
|
||||
|
||||
QString savePath = ui->savePathComboBox->itemData(ui->savePathComboBox->currentIndex()).toString();
|
||||
if (ui->simpleModeRadioButton->isChecked()) {
|
||||
if (ui->comboTTM->currentIndex() != 1) { // 0 is Manual mode and 1 is Automatic mode. Handle all non 1 values as manual mode.
|
||||
params.savePath = savePath;
|
||||
saveSavePathHistory();
|
||||
if (ui->defaultSavePathCheckBox->isChecked())
|
||||
@ -686,6 +690,7 @@ void AddNewTorrentDialog::updateMetadata(const BitTorrent::TorrentInfo &info)
|
||||
|
||||
// Update UI
|
||||
setupTreeview();
|
||||
TMMChanged(ui->comboTTM->currentIndex());
|
||||
setMetadataProgressIndicator(false, tr("Metadata retrieval complete"));
|
||||
}
|
||||
|
||||
@ -770,25 +775,25 @@ void AddNewTorrentDialog::handleDownloadFinished(const QString &url, const QStri
|
||||
this->deleteLater();
|
||||
}
|
||||
|
||||
void AddNewTorrentDialog::savingModeChanged(bool enabled)
|
||||
void AddNewTorrentDialog::TMMChanged(int index)
|
||||
{
|
||||
if (!enabled) return;
|
||||
|
||||
if (ui->simpleModeRadioButton->isChecked()) {
|
||||
if (index != 1) { // 0 is Manual mode and 1 is Automatic mode. Handle all non 1 values as manual mode.
|
||||
populateSavePathComboBox();
|
||||
ui->savePathComboBox->setEnabled(true);
|
||||
ui->browseButton->setEnabled(true);
|
||||
ui->groupBoxSavePath->setEnabled(true);
|
||||
ui->savePathComboBox->blockSignals(false);
|
||||
ui->savePathComboBox->setCurrentIndex(m_oldIndex < ui->savePathComboBox->count() ? m_oldIndex : ui->savePathComboBox->count() - 1);
|
||||
ui->adv_button->setEnabled(true);
|
||||
}
|
||||
else {
|
||||
ui->groupBoxSavePath->setEnabled(false);
|
||||
ui->savePathComboBox->blockSignals(true);
|
||||
ui->savePathComboBox->clear();
|
||||
QString savePath = BitTorrent::Session::instance()->categorySavePath(ui->categoryComboBox->currentText());
|
||||
ui->savePathComboBox->addItem(Utils::Fs::toNativePath(savePath), savePath);
|
||||
ui->savePathComboBox->setEnabled(false);
|
||||
ui->browseButton->setEnabled(false);
|
||||
ui->defaultSavePathCheckBox->setVisible(false);
|
||||
ui->adv_button->setChecked(true);
|
||||
ui->adv_button->setEnabled(false);
|
||||
showAdvancedSettings(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,7 @@ private slots:
|
||||
void handleDownloadFailed(const QString &url, const QString &reason);
|
||||
void handleRedirectedToMagnet(const QString &url, const QString &magnetUri);
|
||||
void handleDownloadFinished(const QString &url, const QString &filePath);
|
||||
void savingModeChanged(bool enabled);
|
||||
void TMMChanged(int index);
|
||||
void categoryChanged(int index);
|
||||
void doNotDeleteTorrentClicked(bool checked);
|
||||
|
||||
|
@ -12,55 +12,52 @@
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="AddNewTorrentDialogLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="labelTorrentManagementMode">
|
||||
<property name="text">
|
||||
<string>Torrent Management Mode:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboTTM">
|
||||
<property name="toolTip">
|
||||
<string>Automatic mode means that various torrent properties(eg save path) will be decided by the associated category</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Manual</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Automatic</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBoxSavePath">
|
||||
<property name="title">
|
||||
<string>Save at</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="spacing">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="savingModeLabel">
|
||||
<property name="text">
|
||||
<string>Saving Management:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="simpleModeRadioButton">
|
||||
<property name="text">
|
||||
<string>Simple</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="advancedModeRadioButton">
|
||||
<property name="text">
|
||||
<string>Advanced</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
@ -400,8 +397,6 @@
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>simpleModeRadioButton</tabstop>
|
||||
<tabstop>advancedModeRadioButton</tabstop>
|
||||
<tabstop>savePathComboBox</tabstop>
|
||||
<tabstop>browseButton</tabstop>
|
||||
<tabstop>defaultSavePathCheckBox</tabstop>
|
||||
@ -448,38 +443,6 @@
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>simpleModeRadioButton</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>AddNewTorrentDialog</receiver>
|
||||
<slot>savingModeChanged(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>154</x>
|
||||
<y>39</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>122</x>
|
||||
<y>6</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>advancedModeRadioButton</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>AddNewTorrentDialog</receiver>
|
||||
<slot>savingModeChanged(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>218</x>
|
||||
<y>44</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>209</x>
|
||||
<y>7</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>categoryComboBox</sender>
|
||||
<signal>currentIndexChanged(int)</signal>
|
||||
@ -496,9 +459,26 @@
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>comboTTM</sender>
|
||||
<signal>currentIndexChanged(int)</signal>
|
||||
<receiver>AddNewTorrentDialog</receiver>
|
||||
<slot>TMMChanged(int)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>200</x>
|
||||
<y>19</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>206</x>
|
||||
<y>294</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
<slots>
|
||||
<slot>savingModeChanged(bool)</slot>
|
||||
<slot>categoryChanged(int)</slot>
|
||||
<slot>TMMChanged(int)</slot>
|
||||
</slots>
|
||||
</ui>
|
||||
|
@ -797,7 +797,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_40">
|
||||
<property name="text">
|
||||
<string>Default Saving Mode:</string>
|
||||
<string>Default Torrent Management Mode:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -856,7 +856,7 @@
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Switch torrent to Simple Mode</string>
|
||||
<string>Switch torrent to Manual Mode</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
@ -897,7 +897,7 @@
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Switch affected torrents to Simple Mode</string>
|
||||
<string>Switch affected torrents to Manual Mode</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
@ -938,7 +938,7 @@
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Switch affected torrents to Simple Mode</string>
|
||||
<string>Switch affected torrents to Manual Mode</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
@ -1306,10 +1306,6 @@
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<zorder>gridLayoutWidget</zorder>
|
||||
<zorder>label_2</zorder>
|
||||
<zorder>checkSmtpSSL</zorder>
|
||||
<zorder>groupMailNotifAuth</zorder>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
@ -496,10 +496,10 @@ void options_imp::saveOptions()
|
||||
// Downloads preferences
|
||||
session->setDefaultSavePath(Utils::Fs::expandPathAbs(textSavePath->text()));
|
||||
session->setSubcategoriesEnabled(checkUseSubcategories->isChecked());
|
||||
session->setASMDisabledByDefault(comboSavingMode->currentIndex() == 0);
|
||||
session->setDisableASMWhenCategoryChanged(comboTorrentCategoryChanged->currentIndex() == 1);
|
||||
session->setDisableASMWhenCategorySavePathChanged(comboCategoryChanged->currentIndex() == 1);
|
||||
session->setDisableASMWhenDefaultSavePathChanged(comboCategoryDefaultPathChanged->currentIndex() == 1);
|
||||
session->setAutoTMMDisabledByDefault(comboSavingMode->currentIndex() == 0);
|
||||
session->setDisableAutoTMMWhenCategoryChanged(comboTorrentCategoryChanged->currentIndex() == 1);
|
||||
session->setDisableAutoTMMWhenCategorySavePathChanged(comboCategoryChanged->currentIndex() == 1);
|
||||
session->setDisableAutoTMMWhenDefaultSavePathChanged(comboCategoryDefaultPathChanged->currentIndex() == 1);
|
||||
session->setTempPathEnabled(checkTempFolder->isChecked());
|
||||
session->setTempPath(Utils::Fs::expandPathAbs(textTempPath->text()));
|
||||
pref->useIncompleteFilesExtension(checkAppendqB->isChecked());
|
||||
@ -710,10 +710,10 @@ void options_imp::loadOptions()
|
||||
|
||||
textSavePath->setText(Utils::Fs::toNativePath(session->defaultSavePath()));
|
||||
checkUseSubcategories->setChecked(session->isSubcategoriesEnabled());
|
||||
comboSavingMode->setCurrentIndex(!session->isASMDisabledByDefault());
|
||||
comboTorrentCategoryChanged->setCurrentIndex(session->isDisableASMWhenCategoryChanged());
|
||||
comboCategoryChanged->setCurrentIndex(session->isDisableASMWhenCategorySavePathChanged());
|
||||
comboCategoryDefaultPathChanged->setCurrentIndex(session->isDisableASMWhenDefaultSavePathChanged());
|
||||
comboSavingMode->setCurrentIndex(!session->isAutoTMMDisabledByDefault());
|
||||
comboTorrentCategoryChanged->setCurrentIndex(session->isDisableAutoTMMWhenCategoryChanged());
|
||||
comboCategoryChanged->setCurrentIndex(session->isDisableAutoTMMWhenCategorySavePathChanged());
|
||||
comboCategoryDefaultPathChanged->setCurrentIndex(session->isDisableAutoTMMWhenDefaultSavePathChanged());
|
||||
checkTempFolder->setChecked(session->isTempPathEnabled());
|
||||
textTempPath->setEnabled(checkTempFolder->isChecked());
|
||||
browseTempDirButton->setEnabled(checkTempFolder->isChecked());
|
||||
|
@ -566,10 +566,10 @@ void TransferListWidget::toggleSelectedFirstLastPiecePrio() const
|
||||
torrent->toggleFirstLastPiecePriority();
|
||||
}
|
||||
|
||||
void TransferListWidget::setSelectedASMEnabled(bool enabled) const
|
||||
void TransferListWidget::setSelectedAutoTMMEnabled(bool enabled) const
|
||||
{
|
||||
foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents())
|
||||
torrent->setASMEnabled(enabled);
|
||||
torrent->setAutoTMMEnabled(enabled);
|
||||
}
|
||||
|
||||
void TransferListWidget::askNewCategoryForSelection()
|
||||
@ -672,9 +672,10 @@ void TransferListWidget::displayListMenu(const QPoint&)
|
||||
QAction actionFirstLastPiece_prio(tr("Download first and last pieces first"), 0);
|
||||
actionFirstLastPiece_prio.setCheckable(true);
|
||||
connect(&actionFirstLastPiece_prio, SIGNAL(triggered()), this, SLOT(toggleSelectedFirstLastPiecePrio()));
|
||||
QAction actionEnableASM(tr("Enable Advanced Saving Management"), 0);
|
||||
actionEnableASM.setCheckable(true);
|
||||
connect(&actionEnableASM, SIGNAL(triggered(bool)), this, SLOT(setSelectedASMEnabled(bool)));
|
||||
QAction actionAutoTMM(tr("Automatic Torrent Management"), 0);
|
||||
actionAutoTMM.setCheckable(true);
|
||||
actionAutoTMM.setToolTip(tr("Automatic mode means that various torrent properties(eg save path) will be decided by the associated category"));
|
||||
connect(&actionAutoTMM, SIGNAL(triggered(bool)), this, SLOT(setSelectedAutoTMMEnabled(bool)));
|
||||
// End of actions
|
||||
|
||||
// Enable/disable pause/start action given the DL state
|
||||
@ -685,8 +686,8 @@ void TransferListWidget::displayListMenu(const QPoint&)
|
||||
bool sequential_download_mode = false, prioritize_first_last = false;
|
||||
bool one_has_metadata = false, one_not_seed = false;
|
||||
bool allSameCategory = true;
|
||||
bool allSameASM = true;
|
||||
bool firstASM = false;
|
||||
bool allSameAutoTMM = true;
|
||||
bool firstAutoTMM = false;
|
||||
QString firstCategory;
|
||||
bool first = true;
|
||||
|
||||
@ -704,9 +705,9 @@ void TransferListWidget::displayListMenu(const QPoint&)
|
||||
allSameCategory = false;
|
||||
|
||||
if (first)
|
||||
firstASM = torrent->isASMEnabled();
|
||||
if (firstASM != torrent->isASMEnabled())
|
||||
allSameASM = false;
|
||||
firstAutoTMM = torrent->isAutoTMMEnabled();
|
||||
if (firstAutoTMM != torrent->isAutoTMMEnabled())
|
||||
allSameAutoTMM = false;
|
||||
|
||||
if (torrent->hasMetadata())
|
||||
one_has_metadata = true;
|
||||
@ -750,7 +751,7 @@ void TransferListWidget::displayListMenu(const QPoint&)
|
||||
|
||||
if (one_has_metadata && one_not_seed && !all_same_sequential_download_mode
|
||||
&& !all_same_prio_firstlast && !all_same_super_seeding && !allSameCategory
|
||||
&& needs_start && needs_force && needs_pause && needs_preview && !allSameASM) {
|
||||
&& needs_start && needs_force && needs_pause && needs_preview && !allSameAutoTMM) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -786,9 +787,9 @@ void TransferListWidget::displayListMenu(const QPoint&)
|
||||
categoryActions << cat;
|
||||
}
|
||||
|
||||
if (allSameASM) {
|
||||
actionEnableASM.setChecked(firstASM);
|
||||
listMenu.addAction(&actionEnableASM);
|
||||
if (allSameAutoTMM) {
|
||||
actionAutoTMM.setChecked(firstAutoTMM);
|
||||
listMenu.addAction(&actionAutoTMM);
|
||||
}
|
||||
|
||||
listMenu.addSeparator();
|
||||
|
@ -105,7 +105,7 @@ protected slots:
|
||||
void toggleSelectedTorrentsSuperSeeding() const;
|
||||
void toggleSelectedTorrentsSequentialDownload() const;
|
||||
void toggleSelectedFirstLastPiecePrio() const;
|
||||
void setSelectedASMEnabled(bool enabled) const;
|
||||
void setSelectedAutoTMMEnabled(bool enabled) const;
|
||||
void askNewCategoryForSelection();
|
||||
void saveSettings();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user