diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index 7d024d5db195..3a88596277c2 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -167,11 +167,6 @@ namespace BitTorrent virtual bool removeCategory(const QString &name) = 0; virtual bool isSubcategoriesEnabled() const = 0; virtual void setSubcategoriesEnabled(bool value) = 0; - virtual bool useCategoryPathsInManualMode() const = 0; - virtual void setUseCategoryPathsInManualMode(bool value) = 0; - - virtual Path suggestedSavePath(const QString &categoryName, std::optional useAutoTMM) const = 0; - virtual Path suggestedDownloadPath(const QString &categoryName, std::optional useAutoTMM) const = 0; virtual TagSet tags() const = 0; virtual bool hasTag(const Tag &tag) const = 0; @@ -188,15 +183,8 @@ namespace BitTorrent // 1. Default save path changed // 2. Torrent category save path changed // 3. Torrent category changed - // (unless otherwise is specified) virtual bool isAutoTMMDisabledByDefault() const = 0; virtual void setAutoTMMDisabledByDefault(bool value) = 0; - virtual bool isDisableAutoTMMWhenCategoryChanged() const = 0; - virtual void setDisableAutoTMMWhenCategoryChanged(bool value) = 0; - virtual bool isDisableAutoTMMWhenDefaultSavePathChanged() const = 0; - virtual void setDisableAutoTMMWhenDefaultSavePathChanged(bool value) = 0; - virtual bool isDisableAutoTMMWhenCategorySavePathChanged() const = 0; - virtual void setDisableAutoTMMWhenCategorySavePathChanged(bool value) = 0; virtual qreal globalMaxRatio() const = 0; virtual void setGlobalMaxRatio(qreal ratio) = 0; diff --git a/src/base/bittorrent/sessionimpl.cpp b/src/base/bittorrent/sessionimpl.cpp index 72f6e6a2a9a0..466b1715796a 100644 --- a/src/base/bittorrent/sessionimpl.cpp +++ b/src/base/bittorrent/sessionimpl.cpp @@ -556,11 +556,7 @@ SessionImpl::SessionImpl(QObject *parent) , m_downloadPath(BITTORRENT_SESSION_KEY(u"TempPath"_s), (savePath() / Path(u"temp"_s))) , m_isDownloadPathEnabled(BITTORRENT_SESSION_KEY(u"TempPathEnabled"_s), false) , m_isSubcategoriesEnabled(BITTORRENT_SESSION_KEY(u"SubcategoriesEnabled"_s), false) - , m_useCategoryPathsInManualMode(BITTORRENT_SESSION_KEY(u"UseCategoryPathsInManualMode"_s), false) , m_isAutoTMMDisabledByDefault(BITTORRENT_SESSION_KEY(u"DisableAutoTMMByDefault"_s), true) - , m_isDisableAutoTMMWhenCategoryChanged(BITTORRENT_SESSION_KEY(u"DisableAutoTMMTriggers/CategoryChanged"_s), false) - , m_isDisableAutoTMMWhenDefaultSavePathChanged(BITTORRENT_SESSION_KEY(u"DisableAutoTMMTriggers/DefaultSavePathChanged"_s), true) - , m_isDisableAutoTMMWhenCategorySavePathChanged(BITTORRENT_SESSION_KEY(u"DisableAutoTMMTriggers/CategorySavePathChanged"_s), true) , m_isTrackerEnabled(BITTORRENT_KEY(u"TrackerEnabled"_s), false) , m_peerTurnover(BITTORRENT_SESSION_KEY(u"PeerTurnover"_s), 4) , m_peerTurnoverCutoff(BITTORRENT_SESSION_KEY(u"PeerTurnoverCutOff"_s), 90) @@ -1035,18 +1031,6 @@ bool SessionImpl::editCategory(const QString &name, const CategoryOptions &optio if (options == currentOptions) return false; - if (isDisableAutoTMMWhenCategorySavePathChanged()) - { - // This should be done before changing the category options - // to prevent the torrent from being moved at the new save path. - - for (TorrentImpl *const torrent : asConst(m_torrents)) - { - if (torrent->category() == name) - torrent->setAutoTMMEnabled(false); - } - } - currentOptions = options; storeCategories(); @@ -1124,31 +1108,6 @@ void SessionImpl::setSubcategoriesEnabled(const bool value) emit subcategoriesSupportChanged(); } -bool SessionImpl::useCategoryPathsInManualMode() const -{ - return m_useCategoryPathsInManualMode; -} - -void SessionImpl::setUseCategoryPathsInManualMode(const bool value) -{ - m_useCategoryPathsInManualMode = value; -} - -Path SessionImpl::suggestedSavePath(const QString &categoryName, std::optional useAutoTMM) const -{ - const bool useCategoryPaths = useAutoTMM.value_or(!isAutoTMMDisabledByDefault()) || useCategoryPathsInManualMode(); - const auto path = (useCategoryPaths ? categorySavePath(categoryName) : savePath()); - return path; -} - -Path SessionImpl::suggestedDownloadPath(const QString &categoryName, std::optional useAutoTMM) const -{ - const bool useCategoryPaths = useAutoTMM.value_or(!isAutoTMMDisabledByDefault()) || useCategoryPathsInManualMode(); - const auto categoryDownloadPath = this->categoryDownloadPath(categoryName); - const auto path = ((useCategoryPaths && !categoryDownloadPath.isEmpty()) ? categoryDownloadPath : downloadPath()); - return path; -} - TagSet SessionImpl::tags() const { return m_tags; @@ -1196,36 +1155,6 @@ void SessionImpl::setAutoTMMDisabledByDefault(const bool value) m_isAutoTMMDisabledByDefault = value; } -bool SessionImpl::isDisableAutoTMMWhenCategoryChanged() const -{ - return m_isDisableAutoTMMWhenCategoryChanged; -} - -void SessionImpl::setDisableAutoTMMWhenCategoryChanged(const bool value) -{ - m_isDisableAutoTMMWhenCategoryChanged = value; -} - -bool SessionImpl::isDisableAutoTMMWhenDefaultSavePathChanged() const -{ - return m_isDisableAutoTMMWhenDefaultSavePathChanged; -} - -void SessionImpl::setDisableAutoTMMWhenDefaultSavePathChanged(const bool value) -{ - m_isDisableAutoTMMWhenDefaultSavePathChanged = value; -} - -bool SessionImpl::isDisableAutoTMMWhenCategorySavePathChanged() const -{ - return m_isDisableAutoTMMWhenCategorySavePathChanged; -} - -void SessionImpl::setDisableAutoTMMWhenCategorySavePathChanged(const bool value) -{ - m_isDisableAutoTMMWhenCategorySavePathChanged = value; -} - bool SessionImpl::isAddTorrentToQueueTop() const { return m_isAddTorrentToQueueTop; @@ -2666,8 +2595,9 @@ LoadTorrentParams SessionImpl::initLoadTorrentParams(const AddTorrentParams &add else loadTorrentParams.category = category; - const auto defaultSavePath = suggestedSavePath(loadTorrentParams.category, addTorrentParams.useAutoTMM); - const auto defaultDownloadPath = suggestedDownloadPath(loadTorrentParams.category, addTorrentParams.useAutoTMM); + const auto defaultSavePath = categorySavePath(loadTorrentParams.category); + const auto categoryDownloadPath = this->categoryDownloadPath(loadTorrentParams.category); + const auto defaultDownloadPath = !categoryDownloadPath.isEmpty() ? categoryDownloadPath : downloadPath(); loadTorrentParams.useAutoTMM = addTorrentParams.useAutoTMM.value_or( addTorrentParams.savePath.isEmpty() && addTorrentParams.downloadPath.isEmpty() && !isAutoTMMDisabledByDefault()); @@ -3285,27 +3215,6 @@ void SessionImpl::setSavePath(const Path &path) if (newPath == m_savePath) return; - if (isDisableAutoTMMWhenDefaultSavePathChanged()) - { - // This should be done before changing the save path - // to prevent the torrent from being moved at the new save path. - - QSet affectedCatogories {{}}; // includes default (unnamed) category - for (auto it = m_categories.cbegin(); it != m_categories.cend(); ++it) - { - const QString &categoryName = it.key(); - const CategoryOptions &categoryOptions = it.value(); - if (categoryOptions.savePath.isRelative()) - affectedCatogories.insert(categoryName); - } - - for (TorrentImpl *const torrent : asConst(m_torrents)) - { - if (affectedCatogories.contains(torrent->category())) - torrent->setAutoTMMEnabled(false); - } - } - m_savePath = newPath; for (TorrentImpl *const torrent : asConst(m_torrents)) torrent->handleCategoryOptionsChanged(); @@ -3325,29 +3234,6 @@ void SessionImpl::setDownloadPath(const Path &path) if (newPath == m_downloadPath) return; - if (isDisableAutoTMMWhenDefaultSavePathChanged()) - { - // This should be done before changing the save path - // to prevent the torrent from being moved at the new save path. - - QSet affectedCatogories {{}}; // includes default (unnamed) category - for (auto it = m_categories.cbegin(); it != m_categories.cend(); ++it) - { - const QString &categoryName = it.key(); - const CategoryOptions &categoryOptions = it.value(); - const DownloadPathOption downloadPathOption = - categoryOptions.downloadPath.value_or(DownloadPathOption {isDownloadPathEnabled(), downloadPath()}); - if (downloadPathOption.enabled && downloadPathOption.path.isRelative()) - affectedCatogories.insert(categoryName); - } - - for (TorrentImpl *const torrent : asConst(m_torrents)) - { - if (affectedCatogories.contains(torrent->category())) - torrent->setAutoTMMEnabled(false); - } - } - m_downloadPath = newPath; for (TorrentImpl *const torrent : asConst(m_torrents)) torrent->handleCategoryOptionsChanged(); diff --git a/src/base/bittorrent/sessionimpl.h b/src/base/bittorrent/sessionimpl.h index b40622a7f273..8f01b1954edf 100644 --- a/src/base/bittorrent/sessionimpl.h +++ b/src/base/bittorrent/sessionimpl.h @@ -158,11 +158,6 @@ namespace BitTorrent bool removeCategory(const QString &name) override; bool isSubcategoriesEnabled() const override; void setSubcategoriesEnabled(bool value) override; - bool useCategoryPathsInManualMode() const override; - void setUseCategoryPathsInManualMode(bool value) override; - - Path suggestedSavePath(const QString &categoryName, std::optional useAutoTMM) const override; - Path suggestedDownloadPath(const QString &categoryName, std::optional useAutoTMM) const override; TagSet tags() const override; bool hasTag(const Tag &tag) const override; @@ -171,12 +166,6 @@ namespace BitTorrent bool isAutoTMMDisabledByDefault() const override; void setAutoTMMDisabledByDefault(bool value) override; - bool isDisableAutoTMMWhenCategoryChanged() const override; - void setDisableAutoTMMWhenCategoryChanged(bool value) override; - bool isDisableAutoTMMWhenDefaultSavePathChanged() const override; - void setDisableAutoTMMWhenDefaultSavePathChanged(bool value) override; - bool isDisableAutoTMMWhenCategorySavePathChanged() const override; - void setDisableAutoTMMWhenCategorySavePathChanged(bool value) override; qreal globalMaxRatio() const override; void setGlobalMaxRatio(qreal ratio) override; @@ -755,11 +744,7 @@ namespace BitTorrent CachedSettingValue m_downloadPath; CachedSettingValue m_isDownloadPathEnabled; CachedSettingValue m_isSubcategoriesEnabled; - CachedSettingValue m_useCategoryPathsInManualMode; CachedSettingValue m_isAutoTMMDisabledByDefault; - CachedSettingValue m_isDisableAutoTMMWhenCategoryChanged; - CachedSettingValue m_isDisableAutoTMMWhenDefaultSavePathChanged; - CachedSettingValue m_isDisableAutoTMMWhenCategorySavePathChanged; CachedSettingValue m_isTrackerEnabled; CachedSettingValue m_peerTurnover; CachedSettingValue m_peerTurnoverCutoff; diff --git a/src/base/bittorrent/torrentimpl.cpp b/src/base/bittorrent/torrentimpl.cpp index 84450fe4f542..f60c4de35bb1 100644 --- a/src/base/bittorrent/torrentimpl.cpp +++ b/src/base/bittorrent/torrentimpl.cpp @@ -505,8 +505,7 @@ void TorrentImpl::setSavePath(const Path &path) if (isAutoTMMEnabled()) [[unlikely]] return; - const Path basePath = m_session->useCategoryPathsInManualMode() - ? m_session->categorySavePath(category()) : m_session->savePath(); + const Path basePath = m_session->categorySavePath(category()); const Path resolvedPath = (path.isAbsolute() ? path : (basePath / path)); if (resolvedPath == savePath()) return; @@ -534,8 +533,7 @@ void TorrentImpl::setDownloadPath(const Path &path) if (isAutoTMMEnabled()) [[unlikely]] return; - const Path basePath = m_session->useCategoryPathsInManualMode() - ? m_session->categoryDownloadPath(category()) : m_session->downloadPath(); + const Path basePath = m_session->categoryDownloadPath(category()); const Path resolvedPath = (path.isEmpty() || path.isAbsolute()) ? path : (basePath / path); if (resolvedPath == m_downloadPath) return; @@ -1623,13 +1621,6 @@ bool TorrentImpl::setCategory(const QString &category) if (!category.isEmpty() && !m_session->categories().contains(category)) return false; - if (m_session->isDisableAutoTMMWhenCategoryChanged()) - { - // This should be done before changing the category name - // to prevent the torrent from being moved at the path of new category. - setAutoTMMEnabled(false); - } - const QString oldCategory = m_category; m_category = category; deferredRequestResumeData(); diff --git a/src/gui/addtorrentparamswidget.cpp b/src/gui/addtorrentparamswidget.cpp index bedf88ffda92..9e35b9f9ec68 100644 --- a/src/gui/addtorrentparamswidget.cpp +++ b/src/gui/addtorrentparamswidget.cpp @@ -337,8 +337,7 @@ void AddTorrentParamsWidget::populateDefaultPaths() { const auto *btSession = BitTorrent::Session::instance(); - const Path defaultSavePath = btSession->suggestedSavePath( - m_ui->categoryComboBox->currentText(), toOptionalBool(m_ui->comboTTM->currentData())); + const Path defaultSavePath = btSession->categorySavePath(m_ui->categoryComboBox->currentText()); m_ui->savePathEdit->setPlaceholder(defaultSavePath); populateDefaultDownloadPath(); @@ -351,8 +350,8 @@ void AddTorrentParamsWidget::populateDefaultDownloadPath() const std::optional useDownloadPath = toOptionalBool(m_ui->useDownloadPathComboBox->currentData()); if (useDownloadPath.value_or(btSession->isDownloadPathEnabled())) { - const Path defaultDownloadPath = btSession->suggestedDownloadPath( - m_ui->categoryComboBox->currentText(), toOptionalBool(m_ui->comboTTM->currentData())); + const Path categoryDownloadPath = btSession->categoryDownloadPath(m_ui->categoryComboBox->currentText()); + const Path defaultDownloadPath = !categoryDownloadPath.isEmpty() ? categoryDownloadPath : btSession->downloadPath(); m_ui->downloadPathEdit->setPlaceholder(defaultDownloadPath); } else diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index f1c3cca62085..da3a11e86a12 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -621,12 +621,7 @@ void OptionsDialog::loadDownloadsTabOptions() m_ui->checkRecursiveDownload->setChecked(pref->isRecursiveDownloadEnabled()); m_ui->comboSavingMode->setCurrentIndex(!session->isAutoTMMDisabledByDefault()); - m_ui->comboTorrentCategoryChanged->setCurrentIndex(session->isDisableAutoTMMWhenCategoryChanged()); - m_ui->comboCategoryChanged->setCurrentIndex(session->isDisableAutoTMMWhenCategorySavePathChanged()); - m_ui->comboCategoryDefaultPathChanged->setCurrentIndex(session->isDisableAutoTMMWhenDefaultSavePathChanged()); - m_ui->checkUseSubcategories->setChecked(session->isSubcategoriesEnabled()); - m_ui->checkUseCategoryPaths->setChecked(session->useCategoryPathsInManualMode()); m_ui->textSavePath->setDialogCaption(tr("Choose a save directory")); m_ui->textSavePath->setMode(FileSystemPathEdit::Mode::DirectorySave); @@ -726,12 +721,8 @@ void OptionsDialog::loadDownloadsTabOptions() connect(m_ui->checkRecursiveDownload, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->comboSavingMode, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); - connect(m_ui->comboTorrentCategoryChanged, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); - connect(m_ui->comboCategoryChanged, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); - connect(m_ui->comboCategoryDefaultPathChanged, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); connect(m_ui->checkUseSubcategories, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); - connect(m_ui->checkUseCategoryPaths, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->textSavePath, &FileSystemPathEdit::selectedPathChanged, this, &ThisType::enableApplyButton); connect(m_ui->textDownloadPath, &FileSystemPathEdit::selectedPathChanged, this, &ThisType::enableApplyButton); @@ -798,13 +789,7 @@ void OptionsDialog::saveDownloadsTabOptions() const pref->setRecursiveDownloadEnabled(m_ui->checkRecursiveDownload->isChecked()); session->setAutoTMMDisabledByDefault(m_ui->comboSavingMode->currentIndex() == 0); - session->setDisableAutoTMMWhenCategoryChanged(m_ui->comboTorrentCategoryChanged->currentIndex() == 1); - session->setDisableAutoTMMWhenCategorySavePathChanged(m_ui->comboCategoryChanged->currentIndex() == 1); - session->setDisableAutoTMMWhenDefaultSavePathChanged(m_ui->comboCategoryDefaultPathChanged->currentIndex() == 1); - session->setSubcategoriesEnabled(m_ui->checkUseSubcategories->isChecked()); - session->setUseCategoryPathsInManualMode(m_ui->checkUseCategoryPaths->isChecked()); - session->setSavePath(Path(m_ui->textSavePath->selectedPath())); session->setDownloadPathEnabled(m_ui->checkUseDownloadPath->isChecked()); session->setDownloadPath(m_ui->textDownloadPath->selectedPath()); diff --git a/src/gui/optionsdialog.ui b/src/gui/optionsdialog.ui index 21435d8098ff..14c0276e5b7f 100644 --- a/src/gui/optionsdialog.ui +++ b/src/gui/optionsdialog.ui @@ -1259,126 +1259,6 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - - - - When Torrent Category changed: - - - - - - - - - - Relocate torrent - - - - - Switch torrent to Manual Mode - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - When Default Save/Incomplete Path changed: - - - - - - - - - 1 - - - - Relocate affected torrents - - - - - Switch affected torrents to Manual Mode - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - When Category Save Path changed: - - - - - - - - - 1 - - - - Relocate affected torrents - - - - - Switch affected torrents to Manual Mode - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - @@ -1388,16 +1268,6 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - - - - Resolve relative Save Path against appropriate Category path instead of Default one - - - Use Category paths in Manual Mode - - - diff --git a/src/webui/api/appcontroller.cpp b/src/webui/api/appcontroller.cpp index 11d6bee7e12d..ed9b2896f8e0 100644 --- a/src/webui/api/appcontroller.cpp +++ b/src/webui/api/appcontroller.cpp @@ -171,14 +171,10 @@ void AppController::preferencesAction() data[u"use_unwanted_folder"_s] = session->isUnwantedFolderEnabled(); // Saving Management data[u"auto_tmm_enabled"_s] = !session->isAutoTMMDisabledByDefault(); - data[u"torrent_changed_tmm_enabled"_s] = !session->isDisableAutoTMMWhenCategoryChanged(); - data[u"save_path_changed_tmm_enabled"_s] = !session->isDisableAutoTMMWhenDefaultSavePathChanged(); - data[u"category_changed_tmm_enabled"_s] = !session->isDisableAutoTMMWhenCategorySavePathChanged(); data[u"use_subcategories"] = session->isSubcategoriesEnabled(); data[u"save_path"_s] = session->savePath().toString(); data[u"temp_path_enabled"_s] = session->isDownloadPathEnabled(); data[u"temp_path"_s] = session->downloadPath().toString(); - data[u"use_category_paths_in_manual_mode"_s] = session->useCategoryPathsInManualMode(); data[u"export_dir"_s] = session->torrentExportDirectory().toString(); data[u"export_dir_fin"_s] = session->finishedTorrentExportDirectory().toString(); @@ -587,12 +583,6 @@ void AppController::setPreferencesAction() // Saving Management if (hasKey(u"auto_tmm_enabled"_s)) session->setAutoTMMDisabledByDefault(!it.value().toBool()); - if (hasKey(u"torrent_changed_tmm_enabled"_s)) - session->setDisableAutoTMMWhenCategoryChanged(!it.value().toBool()); - if (hasKey(u"save_path_changed_tmm_enabled"_s)) - session->setDisableAutoTMMWhenDefaultSavePathChanged(!it.value().toBool()); - if (hasKey(u"category_changed_tmm_enabled"_s)) - session->setDisableAutoTMMWhenCategorySavePathChanged(!it.value().toBool()); if (hasKey(u"use_subcategories"_s)) session->setSubcategoriesEnabled(it.value().toBool()); if (hasKey(u"save_path"_s)) @@ -601,8 +591,6 @@ void AppController::setPreferencesAction() session->setDownloadPathEnabled(it.value().toBool()); if (hasKey(u"temp_path"_s)) session->setDownloadPath(Path(it.value().toString())); - if (hasKey(u"use_category_paths_in_manual_mode"_s)) - session->setUseCategoryPathsInManualMode(it.value().toBool()); if (hasKey(u"export_dir"_s)) session->setTorrentExportDirectory(Path(it.value().toString())); if (hasKey(u"export_dir_fin"_s)) diff --git a/src/webui/webapplication.h b/src/webui/webapplication.h index ebac6207bf57..a752a3225dca 100644 --- a/src/webui/webapplication.h +++ b/src/webui/webapplication.h @@ -57,7 +57,7 @@ using namespace std::chrono_literals; -inline const Utils::Version<3, 2> API_VERSION {2, 14, 1}; +inline const Utils::Version<3, 2> API_VERSION {2, 15, 0}; class APIController; class AuthController; diff --git a/src/webui/www/private/views/preferences.html b/src/webui/www/private/views/preferences.html index 76257e9bbe40..dd649fb41ac6 100644 --- a/src/webui/www/private/views/preferences.html +++ b/src/webui/www/private/views/preferences.html @@ -194,49 +194,12 @@ - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
@@ -2329,11 +2292,7 @@ // Saving Management document.getElementById("default_tmm_combobox").value = pref.auto_tmm_enabled; - document.getElementById("torrent_changed_tmm_combobox").value = pref.torrent_changed_tmm_enabled; - document.getElementById("save_path_changed_tmm_combobox").value = pref.save_path_changed_tmm_enabled; - document.getElementById("category_changed_tmm_combobox").value = pref.category_changed_tmm_enabled; document.getElementById("use_subcategories_checkbox").checked = pref.use_subcategories; - document.getElementById("categoryPathsManualModeCheckbox").checked = pref.use_category_paths_in_manual_mode; document.getElementById("savepath_text").value = pref.save_path; document.getElementById("temppath_checkbox").checked = pref.temp_path_enabled; document.getElementById("temppath_text").value = pref.temp_path; @@ -2751,11 +2710,7 @@ // Saving Management settings["auto_tmm_enabled"] = (document.getElementById("default_tmm_combobox").value === "true"); - settings["torrent_changed_tmm_enabled"] = (document.getElementById("torrent_changed_tmm_combobox").value === "true"); - settings["save_path_changed_tmm_enabled"] = (document.getElementById("save_path_changed_tmm_combobox").value === "true"); - settings["category_changed_tmm_enabled"] = (document.getElementById("category_changed_tmm_combobox").value === "true"); settings["use_subcategories"] = document.getElementById("use_subcategories_checkbox").checked; - settings["use_category_paths_in_manual_mode"] = document.getElementById("categoryPathsManualModeCheckbox").checked; settings["save_path"] = document.getElementById("savepath_text").value; settings["temp_path_enabled"] = document.getElementById("temppath_checkbox").checked; settings["temp_path"] = document.getElementById("temppath_text").value;