From 02c2329857718174b86c3cb2a2246e902fad67e0 Mon Sep 17 00:00:00 2001 From: Qudix <17361645+Qudix@users.noreply.github.com> Date: Wed, 11 Nov 2020 02:03:17 -0600 Subject: Add a toggle for tracking --- src/mainwindow.cpp | 2 +- src/modinfodialognexus.cpp | 1 + src/modinforegular.cpp | 9 ++++++--- src/settings.cpp | 10 ++++++++++ src/settings.h | 5 +++++ src/settingsdialog.ui | 34 +++++++++++++++++++++------------- src/settingsdialognexus.cpp | 2 ++ 7 files changed, 46 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 94bc5800..d7549a4d 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4872,7 +4872,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) } } - if (info->nexusId() > 0) { + if (info->nexusId() > 0 && Settings::instance().nexus().trackedIntegration()) { switch (info->trackedState()) { case TrackedState::TRACKED_FALSE: { menu.addAction(tr("Start tracking"), this, SLOT(track_clicked())); diff --git a/src/modinfodialognexus.cpp b/src/modinfodialognexus.cpp index b4099a8d..1ee3cefc 100644 --- a/src/modinfodialognexus.cpp +++ b/src/modinfodialognexus.cpp @@ -20,6 +20,7 @@ NexusTab::NexusTab(ModInfoDialogTabContext cx) : { ui->modID->setValidator(new QIntValidator(ui->modID)); ui->endorse->setVisible(core().settings().nexus().endorsementIntegration()); + ui->track->setVisible(core().settings().nexus().trackedIntegration()); connect(ui->modID, &QLineEdit::editingFinished, [&]{ onModIDChanged(); }); connect( diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index 3f5fc7fc..c712adb1 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -251,8 +251,10 @@ void ModInfoRegular::saveMeta() if (m_EndorsedState != EndorsedState::ENDORSED_UNKNOWN) { metaFile.setValue("endorsed", static_cast>(m_EndorsedState)); } - metaFile.setValue("tracked", static_cast>(m_TrackedState)); - + if (m_TrackedState != TrackedState::TRACKED_UNKNOWN) { + metaFile.setValue("tracked", static_cast>(m_TrackedState)); + } + metaFile.remove("installedFiles"); metaFile.beginWriteArray("installedFiles"); int idx = 0; @@ -658,7 +660,8 @@ std::vector ModInfoRegular::getFlags() const result.push_back(ModInfo::FLAG_NOTENDORSED); } if ((m_NexusID > 0) && - (trackedState() == TrackedState::TRACKED_TRUE)) { + (trackedState() == TrackedState::TRACKED_TRUE) && + Settings::instance().nexus().trackedIntegration()) { result.push_back(ModInfo::FLAG_TRACKED); } if (!isValid() && !m_Validated) { diff --git a/src/settings.cpp b/src/settings.cpp index 54d32786..75e2fd83 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1850,6 +1850,16 @@ void NexusSettings::setEndorsementState(EndorsementState s) } } +bool NexusSettings::trackedIntegration() const +{ + return get(m_Settings, "Settings", "tracked_integration", true); +} + +void NexusSettings::setTrackedIntegration(bool b) const +{ + set(m_Settings, "Settings", "tracked_integration", b); +} + void NexusSettings::registerAsNXMHandler(bool force) { const auto nxmPath = QCoreApplication::applicationDirPath() + "/nxmhandler.exe"; diff --git a/src/settings.h b/src/settings.h index 689067d7..122eb729 100644 --- a/src/settings.h +++ b/src/settings.h @@ -513,6 +513,11 @@ public: EndorsementState endorsementState() const; void setEndorsementState(EndorsementState s); + // returns whether tracked integration is enabled + // + bool trackedIntegration() const; + void setTrackedIntegration(bool b) const; + // registers MO as the handler for nxm links // // if 'force' is true, the registration dialog will be shown even if the user diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index 85c5a4e4..e4d5571c 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -837,29 +837,29 @@ - - + + - Disable automatic internet features + Use a proxy for network connections. - Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - Offline Mode + Use HTTP Proxy (Uses System Settings) - - + + - Use a proxy for network connections. + Disable automatic internet features - Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - Use HTTP Proxy (Uses System Settings) + Offline Mode @@ -873,7 +873,7 @@ - + <html><head/><body><p>By default, a counter is displayed in the bottom right corner. This informs the user of their remaining API requests. The Nexus API becomes unusable once these API requests run out. Checking this option will hide that counter.</p></body></html> @@ -886,6 +886,16 @@ + + + + Tracked Integration + + + true + + + @@ -1684,8 +1694,6 @@ programs you are intentionally running. nexusLog offlineBox endorsementBox - proxyBox - hideAPICounterBox associateButton clearCacheButton knownServersList diff --git a/src/settingsdialognexus.cpp b/src/settingsdialognexus.cpp index 90e0dff1..461ff8d6 100644 --- a/src/settingsdialognexus.cpp +++ b/src/settingsdialognexus.cpp @@ -298,6 +298,7 @@ NexusSettingsTab::NexusSettingsTab(Settings& s, SettingsDialog& d) ui->offlineBox->setChecked(settings().network().offlineMode()); ui->proxyBox->setChecked(settings().network().useProxy()); ui->endorsementBox->setChecked(settings().nexus().endorsementIntegration()); + ui->trackedBox->setChecked(settings().nexus().trackedIntegration()); ui->hideAPICounterBox->setChecked(settings().interface().hideAPICounter()); // display server preferences @@ -355,6 +356,7 @@ void NexusSettingsTab::update() settings().network().setOfflineMode(ui->offlineBox->isChecked()); settings().network().setUseProxy(ui->proxyBox->isChecked()); settings().nexus().setEndorsementIntegration(ui->endorsementBox->isChecked()); + settings().nexus().setTrackedIntegration(ui->trackedBox->isChecked()); settings().interface().setHideAPICounter(ui->hideAPICounterBox->isChecked()); auto servers = settings().network().servers(); -- cgit v1.3.1 From b9ec979b4c884b35981d0d6fe0abe914e00daa54 Mon Sep 17 00:00:00 2001 From: Qudix <17361645+Qudix@users.noreply.github.com> Date: Wed, 11 Nov 2020 02:13:54 -0600 Subject: tabstop --- src/settingsdialog.ui | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index e4d5571c..754a275f 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -1694,6 +1694,9 @@ programs you are intentionally running. nexusLog offlineBox endorsementBox + trackedBox + proxyBox + hideAPICounterBox associateButton clearCacheButton knownServersList -- cgit v1.3.1