diff options
| author | Mikaƫl Capelle <capelle.mikael@gmail.com> | 2020-11-16 12:43:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-16 12:43:47 +0100 |
| commit | 3de7e93a95420a3a6b88ebae03472a4224c71674 (patch) | |
| tree | dcdba817595063fb617ec12770b5ab51aa10ae67 /src | |
| parent | 5f7e2988cd91b5debef57c72e12d5a9c1050bce5 (diff) | |
| parent | 67188a39cb6aa9d1cad172aec6aac9977af8e79a (diff) | |
Merge pull request #1291 from Qudix/tracking_integration
Add a toggle for tracking
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 2 | ||||
| -rw-r--r-- | src/modinfodialognexus.cpp | 1 | ||||
| -rw-r--r-- | src/modinforegular.cpp | 9 | ||||
| -rw-r--r-- | src/settings.cpp | 10 | ||||
| -rw-r--r-- | src/settings.h | 5 | ||||
| -rw-r--r-- | src/settingsdialog.ui | 33 | ||||
| -rw-r--r-- | src/settingsdialognexus.cpp | 2 |
7 files changed, 47 insertions, 15 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b09e3dcc..4e78f5dd 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4875,7 +4875,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<std::underlying_type_t<EndorsedState>>(m_EndorsedState)); } - metaFile.setValue("tracked", static_cast<std::underlying_type_t<TrackedState>>(m_TrackedState)); - + if (m_TrackedState != TrackedState::TRACKED_UNKNOWN) { + metaFile.setValue("tracked", static_cast<std::underlying_type_t<TrackedState>>(m_TrackedState)); + } + metaFile.remove("installedFiles"); metaFile.beginWriteArray("installedFiles"); int idx = 0; @@ -658,7 +660,8 @@ std::vector<ModInfo::EFlag> 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<bool>(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..754a275f 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -837,29 +837,29 @@ </item> <item> <layout class="QGridLayout" name="gridLayout_8"> - <item row="0" column="0"> - <widget class="QCheckBox" name="offlineBox"> + <item row="1" column="0"> + <widget class="QCheckBox" name="proxyBox"> <property name="statusTip"> - <string>Disable automatic internet features</string> + <string>Use a proxy for network connections.</string> </property> <property name="whatsThis"> - <string>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)</string> + <string>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.</string> </property> <property name="text"> - <string>Offline Mode</string> + <string>Use HTTP Proxy (Uses System Settings)</string> </property> </widget> </item> - <item row="1" column="0"> - <widget class="QCheckBox" name="proxyBox"> + <item row="0" column="0"> + <widget class="QCheckBox" name="offlineBox"> <property name="statusTip"> - <string>Use a proxy for network connections.</string> + <string>Disable automatic internet features</string> </property> <property name="whatsThis"> - <string>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.</string> + <string>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)</string> </property> <property name="text"> - <string>Use HTTP Proxy (Uses System Settings)</string> + <string>Offline Mode</string> </property> </widget> </item> @@ -873,7 +873,7 @@ </property> </widget> </item> - <item row="1" column="1"> + <item row="2" column="0"> <widget class="QCheckBox" name="hideAPICounterBox"> <property name="toolTip"> <string><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></string> @@ -886,6 +886,16 @@ </property> </widget> </item> + <item row="1" column="1"> + <widget class="QCheckBox" name="trackedBox"> + <property name="text"> + <string>Tracked Integration</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> </layout> </item> <item> @@ -1684,6 +1694,7 @@ programs you are intentionally running.</string> <tabstop>nexusLog</tabstop> <tabstop>offlineBox</tabstop> <tabstop>endorsementBox</tabstop> + <tabstop>trackedBox</tabstop> <tabstop>proxyBox</tabstop> <tabstop>hideAPICounterBox</tabstop> <tabstop>associateButton</tabstop> 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(); |
