summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/commandline.cpp31
-rw-r--r--src/commandline.h1
-rw-r--r--src/downloadmanager.cpp16
-rw-r--r--src/downloadmanager.h3
-rw-r--r--src/mainwindow.cpp2
-rw-r--r--src/settings.cpp32
-rw-r--r--src/settings.h14
-rw-r--r--src/settingsdialog.ui109
-rw-r--r--src/settingsdialoggeneral.cpp5
-rw-r--r--src/settingsdialognexus.cpp7
-rw-r--r--src/settingsdialognexus.h1
11 files changed, 162 insertions, 59 deletions
diff --git a/src/commandline.cpp b/src/commandline.cpp
index aaa31c8a..3aa4b1ca 100644
--- a/src/commandline.cpp
+++ b/src/commandline.cpp
@@ -853,6 +853,18 @@ Command::Meta DownloadFileCommand::meta() const
return {"download", "downloads a file", "URL", ""};
}
+po::options_description DownloadFileCommand::getVisibleOptions() const
+{
+ po::options_description d;
+
+ d.add_options()("name,n", po::value<std::string>(), "(optional) the download name")(
+ "modname,m", po::value<std::string>(), "(optional) the mod name")(
+ "version,v", po::value<std::string>(), "(optional) the download / mod version")(
+ "source,s", po::value<std::string>(), "(optional) the download source");
+
+ return d;
+}
+
po::options_description DownloadFileCommand::getInternalOptions() const
{
po::options_description d;
@@ -879,16 +891,33 @@ bool DownloadFileCommand::canForwardToPrimary() const
std::optional<int> DownloadFileCommand::runPostOrganizer(OrganizerCore& core)
{
const QString url = QString::fromStdString(vm()["URL"].as<std::string>());
+ QString name, modName, version, source;
if (!url.startsWith("https://")) {
reportError(QObject::tr("Download URL must start with https://"));
return 1;
}
+ if (vm().count("name")) {
+ name = QString::fromStdString(vm()["name"].as<std::string>());
+ }
+
+ if (vm().count("modname")) {
+ modName = QString::fromStdString(vm()["modname"].as<std::string>());
+ }
+
+ if (vm().count("version")) {
+ version = QString::fromStdString(vm()["version"].as<std::string>());
+ }
+
+ if (vm().count("source")) {
+ source = QString::fromStdString(vm()["source"].as<std::string>());
+ }
+
log::debug("starting direct download from command line: {}", url.toStdString());
MessageDialog::showMessage(QObject::tr("Download started"), qApp->activeWindow(),
false);
- core.downloadManager()->startDownloadURLs(QStringList() << url);
+ core.downloadManager()->startDownloadURLWithMeta(url, name, modName, version, source);
return {};
}
diff --git a/src/commandline.h b/src/commandline.h
index 3d782105..c67a0716 100644
--- a/src/commandline.h
+++ b/src/commandline.h
@@ -212,6 +212,7 @@ class DownloadFileCommand : public Command
protected:
Meta meta() const override;
+ po::options_description getVisibleOptions() const override;
po::options_description getInternalOptions() const override;
po::positional_options_description getPositional() const override;
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index 60347762..c5d4c13e 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -1986,6 +1986,22 @@ int DownloadManager::startDownloadURLs(const QStringList& urls)
return m_ActiveDownloads.size() - 1;
}
+int DownloadManager::startDownloadURLWithMeta(const QString& url, const QString& name,
+ const QString& modName,
+ const QString& version,
+ const QString& source)
+{
+ ModRepositoryFileInfo info;
+ info.name = name;
+ info.modName = modName;
+ info.version = version;
+ info.repository = source;
+ if (!addDownload(QStringList(url), "", -1, -1, &info)) {
+ return 0;
+ }
+ return m_ActiveDownloads.size() - 1;
+}
+
int DownloadManager::startDownloadNexusFile(const QString& gameName, int modID,
int fileID)
{
diff --git a/src/downloadmanager.h b/src/downloadmanager.h
index abf909c8..ad93b87d 100644
--- a/src/downloadmanager.h
+++ b/src/downloadmanager.h
@@ -410,6 +410,9 @@ public:
public: // IDownloadManager interface:
int startDownloadURLs(const QStringList& urls);
+ int startDownloadURLWithMeta(const QString& url, const QString& name,
+ const QString& modName, const QString& version,
+ const QString& source);
int startDownloadNexusFile(const QString& gameName, int modID, int fileID);
QString downloadPath(int id);
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index a651c2d7..0bc7edf8 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -1356,7 +1356,7 @@ void MainWindow::showEvent(QShowEvent* event)
m_OrganizerCore.settings().widgets().restoreIndex(ui->groupCombo);
- m_OrganizerCore.settings().nexus().registerAsNXMHandler(false);
+ m_OrganizerCore.settings().registerDownloadHandlers(false);
m_WasVisible = true;
updateProblemsButton();
diff --git a/src/settings.cpp b/src/settings.cpp
index ef1785b1..4f484590 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -417,6 +417,35 @@ void Settings::setKeepBackupOnInstall(bool b)
set(m_Settings, "General", "backup_install", b);
}
+void Settings::registerDownloadHandlers(bool force)
+{
+ m_Nexus.registerAsNXMHandler(force);
+ registerAsMODLHandler(force);
+}
+
+void Settings::registerAsMODLHandler(bool force)
+{
+ const auto nxmPath = QCoreApplication::applicationDirPath() + "/" +
+ QString::fromStdWString(AppConfig::nxmHandlerExe());
+
+ const auto executable = QCoreApplication::applicationFilePath();
+
+ QString mode = force ? "forcereg" : "reg";
+ QString parameters = mode + " modl " + m_Game.plugin()->gameShortName();
+ for (const QString& altGame : m_Game.plugin()->validShortNames()) {
+ parameters += "," + altGame;
+ }
+ parameters +=
+ " \"" + executable + "\" \"-n %name% -m %modname% -v %version% -s %source%\"";
+
+ const auto r = shell::Execute(nxmPath, parameters);
+ if (!r.success()) {
+ QMessageBox::critical(
+ nullptr, QObject::tr("Failed"),
+ QObject::tr("Failed to start the helper application: %1").arg(r.toString()));
+ }
+}
+
GameSettings& Settings::game()
{
return m_Game;
@@ -1992,14 +2021,13 @@ void NexusSettings::registerAsNXMHandler(bool force)
const auto executable = QCoreApplication::applicationFilePath();
QString mode = force ? "forcereg" : "reg";
- QString parameters = mode + " " + m_Parent.game().plugin()->gameShortName();
+ QString parameters = mode + " nxm " + m_Parent.game().plugin()->gameShortName();
for (const QString& altGame : m_Parent.game().plugin()->validShortNames()) {
parameters += "," + altGame;
}
parameters += " \"" + executable + "\"";
const auto r = shell::Execute(nxmPath, parameters);
-
if (!r.success()) {
QMessageBox::critical(
nullptr, QObject::tr("Failed"),
diff --git a/src/settings.h b/src/settings.h
index edc1d644..b4185e86 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -809,6 +809,20 @@ public:
unsigned int motdHash() const;
void setMotdHash(unsigned int hash);
+ // registers MO as the handler for download links
+ //
+ // if 'force' is true, the registration dialog will be shown even if the user
+ // said earlier not to
+ //
+ void registerDownloadHandlers(bool force);
+
+ // registers MO as the handler for modl links
+ //
+ // if 'force' is true, the registration dialog will be shown even if the user
+ // said earlier not to
+ //
+ void registerAsMODLHandler(bool force);
+
// whether archives should be parsed to show conflicts and contents
//
bool archiveParsing() const;
diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui
index 6011b158..983d25a4 100644
--- a/src/settingsdialog.ui
+++ b/src/settingsdialog.ui
@@ -31,10 +31,10 @@
#generalScrollAreaWidgetContents { background-color: transparent; }</string>
</property>
<property name="frameShape">
- <enum>QFrame::NoFrame</enum>
+ <enum>QFrame::Shape::NoFrame</enum>
</property>
<property name="frameShadow">
- <enum>QFrame::Plain</enum>
+ <enum>QFrame::Shadow::Plain</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
@@ -85,7 +85,7 @@
<item row="0" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -166,6 +166,19 @@
</property>
</widget>
</item>
+ <item alignment="Qt::AlignmentFlag::AlignLeft">
+ <widget class="QPushButton" name="associateModlButton">
+ <property name="maximumSize">
+ <size>
+ <width>300</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Associate MODL Download Links</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
@@ -348,7 +361,7 @@
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -364,7 +377,7 @@
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -391,7 +404,7 @@
<string>Style</string>
</property>
<property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_13">
<item>
@@ -414,7 +427,7 @@
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -438,16 +451,16 @@
<item>
<widget class="ColorTable" name="colorTable">
<property name="editTriggers">
- <set>QAbstractItemView::NoEditTriggers</set>
+ <set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
</property>
<property name="selectionMode">
- <enum>QAbstractItemView::SingleSelection</enum>
+ <enum>QAbstractItemView::SelectionMode::SingleSelection</enum>
</property>
<property name="selectionBehavior">
- <enum>QAbstractItemView::SelectRows</enum>
+ <enum>QAbstractItemView::SelectionBehavior::SelectRows</enum>
</property>
<property name="verticalScrollMode">
- <enum>QAbstractItemView::ScrollPerPixel</enum>
+ <enum>QAbstractItemView::ScrollMode::ScrollPerPixel</enum>
</property>
<property name="cornerButtonEnabled">
<bool>false</bool>
@@ -610,10 +623,10 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeType">
- <enum>QSizePolicy::Fixed</enum>
+ <enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -771,7 +784,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -805,7 +818,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<spacer name="verticalSpacer_13">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -895,7 +908,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item row="1" column="1">
<spacer name="verticalSpacer_8">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -965,7 +978,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item row="10" column="1">
<spacer name="verticalSpacer_7">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -1008,7 +1021,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<spacer name="verticalSpacer_6">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -1039,10 +1052,10 @@ If you disable this feature, MO will only display official DLCs this way. Please
#nexusScrollAreaWidgetContents { background-color: transparent; }</string>
</property>
<property name="frameShape">
- <enum>QFrame::NoFrame</enum>
+ <enum>QFrame::Shape::NoFrame</enum>
</property>
<property name="frameShadow">
- <enum>QFrame::Plain</enum>
+ <enum>QFrame::Shadow::Plain</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
@@ -1089,7 +1102,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<string>User ID:</string>
</property>
<property name="textInteractionFlags">
- <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ <set>Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse</set>
</property>
</widget>
</item>
@@ -1228,7 +1241,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -1259,7 +1272,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<widget class="QListWidget" name="nexusLog">
<property name="sizeAdjustPolicy">
- <enum>QAbstractScrollArea::AdjustToContents</enum>
+ <enum>QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents</enum>
</property>
</widget>
</item>
@@ -1437,10 +1450,10 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<widget class="QListWidget" name="knownServersList">
<property name="dragDropMode">
- <enum>QAbstractItemView::DragDrop</enum>
+ <enum>QAbstractItemView::DragDropMode::DragDrop</enum>
</property>
<property name="defaultDropAction">
- <enum>Qt::MoveAction</enum>
+ <enum>Qt::DropAction::MoveAction</enum>
</property>
</widget>
</item>
@@ -1458,10 +1471,10 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<widget class="QListWidget" name="preferredServersList">
<property name="dragDropMode">
- <enum>QAbstractItemView::DragDrop</enum>
+ <enum>QAbstractItemView::DragDropMode::DragDrop</enum>
</property>
<property name="defaultDropAction">
- <enum>Qt::MoveAction</enum>
+ <enum>Qt::DropAction::MoveAction</enum>
</property>
</widget>
</item>
@@ -1484,7 +1497,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<item>
<widget class="QSplitter" name="splitter">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<widget class="QWidget" name="widget" native="true">
<property name="sizePolicy">
@@ -1515,7 +1528,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
</sizepolicy>
</property>
<property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Orientation::Horizontal</enum>
</property>
<widget class="QWidget" name="widget1" native="true">
<layout class="QVBoxLayout" name="verticalLayout_15">
@@ -1571,7 +1584,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<widget class="QWidget" name="pluginDescription" native="true">
<layout class="QFormLayout" name="pluginDescriptionLayout">
<property name="labelAlignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
</property>
<property name="leftMargin">
<number>6</number>
@@ -1582,7 +1595,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<string>Author:</string>
</property>
<property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
</property>
</widget>
</item>
@@ -1592,7 +1605,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
</property>
</widget>
</item>
@@ -1602,7 +1615,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<string>Version:</string>
</property>
<property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
</property>
</widget>
</item>
@@ -1612,7 +1625,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
</property>
</widget>
</item>
@@ -1622,7 +1635,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<string>Description:</string>
</property>
<property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
</property>
</widget>
</item>
@@ -1632,7 +1645,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -1687,7 +1700,7 @@ If you disable this feature, MO will only display official DLCs this way. Please
<string>No plugin found.</string>
</property>
<property name="alignment">
- <set>Qt::AlignCenter</set>
+ <set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
@@ -1729,10 +1742,10 @@ If you disable this feature, MO will only display official DLCs this way. Please
#workaroundScrollAreaWidgetContents { background-color: transparent; }</string>
</property>
<property name="frameShape">
- <enum>QFrame::NoFrame</enum>
+ <enum>QFrame::Shape::NoFrame</enum>
</property>
<property name="frameShadow">
- <enum>QFrame::Plain</enum>
+ <enum>QFrame::Shadow::Plain</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
@@ -1851,7 +1864,7 @@ Uncheck this if you want to use Mod Organizer with total conversions (like Nehri
<item row="1" column="3">
<widget class="QLineEdit" name="steamPassEdit">
<property name="echoMode">
- <enum>QLineEdit::Password</enum>
+ <enum>QLineEdit::EchoMode::Password</enum>
</property>
</widget>
</item>
@@ -2125,7 +2138,7 @@ programs you are intentionally running.</string>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -2141,7 +2154,7 @@ programs you are intentionally running.</string>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -2182,7 +2195,7 @@ programs you are intentionally running.</string>
</property>
<layout class="QFormLayout" name="formLayout_4">
<property name="fieldGrowthPolicy">
- <enum>QFormLayout::FieldsStayAtSizeHint</enum>
+ <enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_12">
@@ -2257,7 +2270,7 @@ programs you are intentionally running.</string>
</property>
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
- <enum>QFormLayout::FieldsStayAtSizeHint</enum>
+ <enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_32">
@@ -2296,10 +2309,10 @@ programs you are intentionally running.</string>
<item>
<spacer name="verticalSpacer_10">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeType">
- <enum>QSizePolicy::Expanding</enum>
+ <enum>QSizePolicy::Policy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@@ -2316,10 +2329,10 @@ programs you are intentionally running.</string>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
</property>
</widget>
</item>
diff --git a/src/settingsdialoggeneral.cpp b/src/settingsdialoggeneral.cpp
index 265c9db9..374eb621 100644
--- a/src/settingsdialoggeneral.cpp
+++ b/src/settingsdialoggeneral.cpp
@@ -21,6 +21,11 @@ GeneralSettingsTab::GeneralSettingsTab(Settings& s, SettingsDialog& d)
ui->hideDownloadInstallBox->setChecked(
settings().interface().hideDownloadsAfterInstallation());
+ // connect MODL button
+ QObject::connect(ui->associateModlButton, &QPushButton::clicked, [&] {
+ Settings::instance().registerAsMODLHandler(true);
+ });
+
// updates
ui->checkForUpdates->setChecked(settings().checkForUpdates());
ui->usePrereleaseBox->setChecked(settings().usePrereleases());
diff --git a/src/settingsdialognexus.cpp b/src/settingsdialognexus.cpp
index abd487f1..29873d23 100644
--- a/src/settingsdialognexus.cpp
+++ b/src/settingsdialognexus.cpp
@@ -343,7 +343,7 @@ NexusSettingsTab::NexusSettingsTab(Settings& s, SettingsDialog& d) : SettingsTab
clearCache();
});
QObject::connect(ui->associateButton, &QPushButton::clicked, [&] {
- associate();
+ Settings::instance().nexus().registerAsNXMHandler(true);
});
QObject::connect(ui->useCustomBrowser, &QCheckBox::clicked, [&] {
updateCustomBrowser();
@@ -417,11 +417,6 @@ void NexusSettingsTab::clearCache()
NexusInterface::instance().clearCache();
}
-void NexusSettingsTab::associate()
-{
- Settings::instance().nexus().registerAsNXMHandler(true);
-}
-
void NexusSettingsTab::updateNexusData()
{
const auto user = NexusInterface::instance().getAPIUserAccount();
diff --git a/src/settingsdialognexus.h b/src/settingsdialognexus.h
index 41ab207a..0c14ebf7 100644
--- a/src/settingsdialognexus.h
+++ b/src/settingsdialognexus.h
@@ -60,7 +60,6 @@ private:
std::unique_ptr<NexusConnectionUI> m_connectionUI;
void clearCache();
- void associate();
void updateNexusData();
void updateCustomBrowser();