diff options
| author | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2026-05-03 03:04:49 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-03 03:04:49 -0500 |
| commit | ef7499aade74a148416b5fde7e8c03a75ea381c3 (patch) | |
| tree | 28b596b09fd5849392d963684e38303ed6ab9b0f | |
| parent | 2e393aa3cc9adba5a5e82ecc0006b11bf024d3e0 (diff) | |
Extended MODL / direct download handling (#2384)
* Extended MODL / direct download handling
- name, modname, version, and source options added to download command
- nxmhandler init adds schemas and MODL entry with default launch args
- Add MODL register button to general tab
- On window display, call meta function to trigger both registrations
| -rw-r--r-- | src/commandline.cpp | 31 | ||||
| -rw-r--r-- | src/commandline.h | 1 | ||||
| -rw-r--r-- | src/downloadmanager.cpp | 16 | ||||
| -rw-r--r-- | src/downloadmanager.h | 3 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 2 | ||||
| -rw-r--r-- | src/settings.cpp | 32 | ||||
| -rw-r--r-- | src/settings.h | 14 | ||||
| -rw-r--r-- | src/settingsdialog.ui | 109 | ||||
| -rw-r--r-- | src/settingsdialoggeneral.cpp | 5 | ||||
| -rw-r--r-- | src/settingsdialognexus.cpp | 7 | ||||
| -rw-r--r-- | src/settingsdialognexus.h | 1 |
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(); |
