mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-14 02:27:09 -07:00
Add a thin layer around SettingsStorage class
This new layer would be handy for saving GUI widget states as they don't need the value cached and they store/load rarely.
This commit is contained in:
parent
60d65d8137
commit
0b0597be0c
12 changed files with 122 additions and 92 deletions
|
@ -118,6 +118,6 @@ private:
|
|||
std::unique_ptr<TorrentFileGuard> m_torrentGuard;
|
||||
BitTorrent::AddTorrentParams m_torrentParams;
|
||||
|
||||
CachedSettingValue<QSize> m_storeDialogSize;
|
||||
CachedSettingValue<QByteArray> m_storeSplitterState;
|
||||
SettingValue<QSize> m_storeDialogSize;
|
||||
SettingValue<QByteArray> m_storeSplitterState;
|
||||
};
|
||||
|
|
|
@ -159,7 +159,7 @@ void PreviewSelectDialog::loadWindowState()
|
|||
Utils::Gui::resize(this, m_storeDialogSize);
|
||||
|
||||
// Restore TreeView Header state
|
||||
if (!m_storeTreeHeaderState.value().isEmpty())
|
||||
if (!m_storeTreeHeaderState.get().isEmpty())
|
||||
{
|
||||
m_headerStateInitialized = m_ui->previewList->header()->restoreState(m_storeTreeHeaderState);
|
||||
}
|
||||
|
|
|
@ -82,6 +82,6 @@ private:
|
|||
bool m_headerStateInitialized = false;
|
||||
|
||||
// Settings
|
||||
CachedSettingValue<QSize> m_storeDialogSize;
|
||||
CachedSettingValue<QByteArray> m_storeTreeHeaderState;
|
||||
SettingValue<QSize> m_storeDialogSize;
|
||||
SettingValue<QByteArray> m_storeTreeHeaderState;
|
||||
};
|
||||
|
|
|
@ -358,7 +358,7 @@ void SearchJobWidget::fillFilterComboBoxes()
|
|||
m_ui->filterMode->addItem(tr("Torrent names only"), static_cast<int>(NameFilteringMode::OnlyNames));
|
||||
m_ui->filterMode->addItem(tr("Everywhere"), static_cast<int>(NameFilteringMode::Everywhere));
|
||||
|
||||
QVariant selectedMode = static_cast<int>(nameFilteringModeSetting().value());
|
||||
QVariant selectedMode = static_cast<int>(nameFilteringModeSetting().get(NameFilteringMode::OnlyNames));
|
||||
int index = m_ui->filterMode->findData(selectedMode);
|
||||
m_ui->filterMode->setCurrentIndex((index == -1) ? 0 : index);
|
||||
}
|
||||
|
@ -545,9 +545,9 @@ void SearchJobWidget::appendSearchResults(const QVector<SearchResult> &results)
|
|||
updateResultsCount();
|
||||
}
|
||||
|
||||
CachedSettingValue<SearchJobWidget::NameFilteringMode> &SearchJobWidget::nameFilteringModeSetting()
|
||||
SettingValue<SearchJobWidget::NameFilteringMode> &SearchJobWidget::nameFilteringModeSetting()
|
||||
{
|
||||
static CachedSettingValue<NameFilteringMode> setting("Search/FilteringMode", NameFilteringMode::OnlyNames);
|
||||
static SettingValue<NameFilteringMode> setting {"Search/FilteringMode"};
|
||||
return setting;
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ class SearchHandler;
|
|||
class SearchSortModel;
|
||||
struct SearchResult;
|
||||
|
||||
template <typename T> class CachedSettingValue;
|
||||
template <typename T> class SettingValue;
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
|
@ -117,7 +117,7 @@ private:
|
|||
void copyField(int column) const;
|
||||
|
||||
static QString statusText(Status st);
|
||||
static CachedSettingValue<NameFilteringMode> &nameFilteringModeSetting();
|
||||
static SettingValue<NameFilteringMode> &nameFilteringModeSetting();
|
||||
|
||||
Ui::SearchJobWidget *m_ui;
|
||||
SearchHandler *m_searchHandler;
|
||||
|
|
|
@ -54,16 +54,16 @@ TorrentCreatorDialog::TorrentCreatorDialog(QWidget *parent, const QString &defau
|
|||
, m_storeStartSeeding(SETTINGS_KEY("StartSeeding"))
|
||||
, m_storeIgnoreRatio(SETTINGS_KEY("IgnoreRatio"))
|
||||
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||
, m_storeTorrentFormat(SETTINGS_KEY("TorrentFormat"), 1)
|
||||
, m_storeTorrentFormat(SETTINGS_KEY("TorrentFormat"))
|
||||
#else
|
||||
, m_storeOptimizeAlignment(SETTINGS_KEY("OptimizeAlignment"), true)
|
||||
, m_paddedFileSizeLimit(SETTINGS_KEY("PaddedFileSizeLimit"), -1)
|
||||
, m_storeOptimizeAlignment(SETTINGS_KEY("OptimizeAlignment"))
|
||||
, m_paddedFileSizeLimit(SETTINGS_KEY("PaddedFileSizeLimit"))
|
||||
#endif
|
||||
, m_storeLastAddPath(SETTINGS_KEY("LastAddPath"), QDir::homePath())
|
||||
, m_storeLastAddPath(SETTINGS_KEY("LastAddPath"))
|
||||
, m_storeTrackerList(SETTINGS_KEY("TrackerList"))
|
||||
, m_storeWebSeedList(SETTINGS_KEY("WebSeedList"))
|
||||
, m_storeComments(SETTINGS_KEY("Comments"))
|
||||
, m_storeLastSavePath(SETTINGS_KEY("LastSavePath"), QDir::homePath())
|
||||
, m_storeLastSavePath(SETTINGS_KEY("LastSavePath"))
|
||||
, m_storeSource(SETTINGS_KEY("Source"))
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
@ -184,7 +184,7 @@ void TorrentCreatorDialog::onCreateButtonClicked()
|
|||
input = fi.canonicalFilePath();
|
||||
|
||||
// get save path
|
||||
const QString savePath = QString(m_storeLastSavePath) + QLatin1Char('/') + fi.fileName() + QLatin1String(".torrent");
|
||||
const QString savePath = m_storeLastSavePath.get(QDir::homePath()) + QLatin1Char('/') + fi.fileName() + QLatin1String(".torrent");
|
||||
QString destination = QFileDialog::getSaveFileName(this, tr("Select where to save the new torrent"), savePath, tr("Torrent Files (*.torrent)"));
|
||||
if (destination.isEmpty())
|
||||
return;
|
||||
|
@ -324,7 +324,7 @@ void TorrentCreatorDialog::saveSettings()
|
|||
|
||||
void TorrentCreatorDialog::loadSettings()
|
||||
{
|
||||
m_ui->textInputPath->setText(m_storeLastAddPath);
|
||||
m_ui->textInputPath->setText(m_storeLastAddPath.get(QDir::homePath()));
|
||||
|
||||
m_ui->comboPieceSize->setCurrentIndex(m_storePieceSize);
|
||||
m_ui->checkPrivate->setChecked(m_storePrivateTorrent);
|
||||
|
@ -332,10 +332,10 @@ void TorrentCreatorDialog::loadSettings()
|
|||
m_ui->checkIgnoreShareLimits->setChecked(m_storeIgnoreRatio);
|
||||
m_ui->checkIgnoreShareLimits->setEnabled(m_ui->checkStartSeeding->isChecked());
|
||||
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||
m_ui->comboTorrentFormat->setCurrentIndex(m_storeTorrentFormat);
|
||||
m_ui->comboTorrentFormat->setCurrentIndex(m_storeTorrentFormat.get(1));
|
||||
#else
|
||||
m_ui->checkOptimizeAlignment->setChecked(m_storeOptimizeAlignment);
|
||||
m_ui->spinPaddedFileSizeLimit->setValue(m_paddedFileSizeLimit);
|
||||
m_ui->checkOptimizeAlignment->setChecked(m_storeOptimizeAlignment.get(true));
|
||||
m_ui->spinPaddedFileSizeLimit->setValue(m_paddedFileSizeLimit.get(-1));
|
||||
#endif
|
||||
|
||||
m_ui->trackersList->setPlainText(m_storeTrackerList);
|
||||
|
|
|
@ -78,21 +78,21 @@ private:
|
|||
BitTorrent::TorrentCreatorThread *m_creatorThread;
|
||||
|
||||
// settings
|
||||
CachedSettingValue<QSize> m_storeDialogSize;
|
||||
CachedSettingValue<int> m_storePieceSize;
|
||||
CachedSettingValue<bool> m_storePrivateTorrent;
|
||||
CachedSettingValue<bool> m_storeStartSeeding;
|
||||
CachedSettingValue<bool> m_storeIgnoreRatio;
|
||||
SettingValue<QSize> m_storeDialogSize;
|
||||
SettingValue<int> m_storePieceSize;
|
||||
SettingValue<bool> m_storePrivateTorrent;
|
||||
SettingValue<bool> m_storeStartSeeding;
|
||||
SettingValue<bool> m_storeIgnoreRatio;
|
||||
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||
CachedSettingValue<int> m_storeTorrentFormat;
|
||||
SettingValue<int> m_storeTorrentFormat;
|
||||
#else
|
||||
CachedSettingValue<bool> m_storeOptimizeAlignment;
|
||||
CachedSettingValue<int> m_paddedFileSizeLimit;
|
||||
SettingValue<bool> m_storeOptimizeAlignment;
|
||||
SettingValue<int> m_paddedFileSizeLimit;
|
||||
#endif
|
||||
CachedSettingValue<QString> m_storeLastAddPath;
|
||||
CachedSettingValue<QString> m_storeTrackerList;
|
||||
CachedSettingValue<QString> m_storeWebSeedList;
|
||||
CachedSettingValue<QString> m_storeComments;
|
||||
CachedSettingValue<QString> m_storeLastSavePath;
|
||||
CachedSettingValue<QString> m_storeSource;
|
||||
SettingValue<QString> m_storeLastAddPath;
|
||||
SettingValue<QString> m_storeTrackerList;
|
||||
SettingValue<QString> m_storeWebSeedList;
|
||||
SettingValue<QString> m_storeComments;
|
||||
SettingValue<QString> m_storeLastSavePath;
|
||||
SettingValue<QString> m_storeSource;
|
||||
};
|
||||
|
|
|
@ -60,5 +60,5 @@ private:
|
|||
void loadSettings();
|
||||
|
||||
Ui::TrackerEntriesDialog *m_ui;
|
||||
CachedSettingValue<QSize> m_storeDialogSize;
|
||||
SettingValue<QSize> m_storeDialogSize;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue