diff --git a/cockatrice/src/dialogs/dlg_settings.cpp b/cockatrice/src/dialogs/dlg_settings.cpp index cef4ceaee..4f00b9450 100644 --- a/cockatrice/src/dialogs/dlg_settings.cpp +++ b/cockatrice/src/dialogs/dlg_settings.cpp @@ -588,8 +588,8 @@ DeckEditorSettingsPage::DeckEditorSettingsPage() connect(urlList->model(), SIGNAL(rowsMoved(const QModelIndex, int, int, const QModelIndex, int)), this, SLOT(urlListChanged(const QModelIndex, int, int, const QModelIndex, int))); - for (int i = 0; i < SettingsCache::instance().downloads().getCount(); i++) - urlList->addItem(SettingsCache::instance().downloads().getDownloadUrlAt(i)); + foreach (QString url, SettingsCache::instance().downloads().getAllURLs()) + urlList->addItem(url); auto aAdd = new QAction(this); aAdd->setIcon(QPixmap("theme:icons/increment")); @@ -694,7 +694,7 @@ DeckEditorSettingsPage::DeckEditorSettingsPage() void DeckEditorSettingsPage::resetDownloadedURLsButtonClicked() { - SettingsCache::instance().downloads().clear(); + SettingsCache::instance().downloads().resetToDefaultURLs(); urlList->clear(); urlList->addItems(SettingsCache::instance().downloads().getAllURLs()); QMessageBox::information(this, tr("Success"), tr("Download URLs have been reset.")); @@ -774,11 +774,13 @@ void DeckEditorSettingsPage::actEditURL() void DeckEditorSettingsPage::storeSettings() { qInfo() << "URL Priority Reset"; - SettingsCache::instance().downloads().clear(); + + QStringList downloadUrls; for (int i = 0; i < urlList->count(); i++) { qInfo() << "Priority" << i << ":" << urlList->item(i)->text(); - SettingsCache::instance().downloads().setDownloadUrlAt(i, urlList->item(i)->text()); + downloadUrls << urlList->item(i)->text(); } + SettingsCache::instance().downloads().setDownloadUrls(downloadUrls); } void DeckEditorSettingsPage::urlListChanged(const QModelIndex &, int, int, const QModelIndex &, int) diff --git a/cockatrice/src/settings/download_settings.cpp b/cockatrice/src/settings/download_settings.cpp index 1af9d4f71..636bdfbad 100644 --- a/cockatrice/src/settings/download_settings.cpp +++ b/cockatrice/src/settings/download_settings.cpp @@ -5,12 +5,10 @@ DownloadSettings::DownloadSettings(const QString &settingPath, QObject *parent = nullptr) : SettingsManager(settingPath + "downloads.ini", parent) { - downloadURLs = getValue("urls", "downloads").value(); } -void DownloadSettings::setDownloadUrlAt(int index, const QString &url) +void DownloadSettings::setDownloadUrls(const QStringList &downloadURLs) { - downloadURLs.insert(index, url); setValue(QVariant::fromValue(downloadURLs), "urls", "downloads"); } @@ -19,39 +17,22 @@ void DownloadSettings::setDownloadUrlAt(int index, const QString &url) */ QStringList DownloadSettings::getAllURLs() { + auto downloadURLs = getValue("urls", "downloads").toStringList(); + // First run, these will be empty if (downloadURLs.count() == 0) { - populateDefaultURLs(); + resetToDefaultURLs(); } return downloadURLs; } -void DownloadSettings::populateDefaultURLs() +void DownloadSettings::resetToDefaultURLs() { - downloadURLs.clear(); + auto downloadURLs = QStringList(); downloadURLs.append("https://api.scryfall.com/cards/!set:uuid!?format=image&face=!prop:side!"); downloadURLs.append("https://api.scryfall.com/cards/multiverse/!set:muid!?format=image"); downloadURLs.append("https://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!set:muid!&type=card"); downloadURLs.append("https://gatherer.wizards.com/Handlers/Image.ashx?name=!name!&type=card"); setValue(QVariant::fromValue(downloadURLs), "urls", "downloads"); } - -QString DownloadSettings::getDownloadUrlAt(int index) -{ - if (0 <= index && index < downloadURLs.size()) { - return downloadURLs[index]; - } - - return ""; -} - -int DownloadSettings::getCount() -{ - return downloadURLs.size(); -} - -void DownloadSettings::clear() -{ - downloadURLs.clear(); -} \ No newline at end of file diff --git a/cockatrice/src/settings/download_settings.h b/cockatrice/src/settings/download_settings.h index 5916b0083..fdc75abf2 100644 --- a/cockatrice/src/settings/download_settings.h +++ b/cockatrice/src/settings/download_settings.h @@ -14,16 +14,8 @@ public: explicit DownloadSettings(const QString &, QObject *); QStringList getAllURLs(); - QString getDownloadUrlAt(int); - void setDownloadUrlAt(int, const QString &); - int getCount(); - void clear(); - -private: - QStringList downloadURLs; - -private: - void populateDefaultURLs(); + void setDownloadUrls(const QStringList &downloadURLs); + void resetToDefaultURLs(); }; #endif // COCKATRICE_DOWNLOADSETTINGS_H