From a899823fff90728e6bd7d7b7ee8fb6d2f3be1568 Mon Sep 17 00:00:00 2001 From: Al12rs Date: Fri, 21 Dec 2018 02:15:02 +0100 Subject: Fixed Description not loading when InfoDialog opens on Nexus tab. --- src/modinfodialog.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/modinfodialog.cpp') diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 416eca58..6d894237 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -115,7 +115,7 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo ui->commentsEdit->setText(modInfo->comments()); ui->notesEdit->setText(modInfo->notes()); - ui->descriptionView->setPage(new DescriptionPage); + ui->descriptionView->setPage(new DescriptionPage()); connect(&m_ThumbnailMapper, SIGNAL(mapped(const QString&)), this, SIGNAL(thumbnailClickedSignal(const QString&))); connect(this, SIGNAL(thumbnailClickedSignal(const QString&)), this, SLOT(thumbnailClicked(const QString&))); @@ -171,9 +171,7 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo ui->tabWidget->setTabEnabled(TAB_CONFLICTS, m_Origin != nullptr); - if (ui->tabWidget->currentIndex() == TAB_NEXUS) { - activateNexusTab(); - } + ui->endorseBtn->setEnabled((m_ModInfo->endorsedState() == ModInfo::ENDORSED_FALSE) || (m_ModInfo->endorsedState() == ModInfo::ENDORSED_NEVER)); @@ -185,6 +183,10 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo break; } } + + if (ui->tabWidget->currentIndex() == TAB_NEXUS) { + activateNexusTab(); + } } @@ -923,7 +925,7 @@ void ModInfoDialog::activateNexusTab() void ModInfoDialog::on_tabWidget_currentChanged(int index) { - if (m_RealTabPos[index] == TAB_NEXUS) { + if (index == TAB_NEXUS || m_RealTabPos[index] == TAB_NEXUS) { activateNexusTab(); } } -- cgit v1.3.1 From 40a3e93c4698f31494df6483ff964a535342e177 Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Mon, 24 Dec 2018 21:43:57 -0600 Subject: Add an option to disable endorsements --- src/mainwindow.cpp | 7 +++--- src/modinfodialog.cpp | 2 +- src/modinforegular.cpp | 5 +++- src/settings.cpp | 8 +++++++ src/settings.h | 6 +++++ src/settingsdialog.ui | 64 ++++++++++++++++++++++++++++++-------------------- 6 files changed, 61 insertions(+), 31 deletions(-) (limited to 'src/modinfodialog.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 47fe4308..10b91c7c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4270,7 +4270,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) menu->addSeparator(); - if (info->getNexusID() > 0) { + if (info->getNexusID() > 0 && Settings::instance().endorsementIntegration()) { switch (info->endorsedState()) { case ModInfo::ENDORSED_TRUE: { menu->addAction(tr("Un-Endorse"), this, SLOT(unendorse_clicked())); @@ -5143,7 +5143,7 @@ void MainWindow::nxmUpdatesAvailable(const std::vector &modIDs, QVariant us if (game && result["id"].toInt() == game->nexusModOrganizerID() && result["game_id"].toInt() == game->nexusGameID()) { - if (!result["voted_by_user"].toBool()) { + if (!result["voted_by_user"].toBool() && Settings::instance().endorsementIntegration()) { ui->actionEndorseMO->setVisible(true); } } else { @@ -5167,7 +5167,8 @@ void MainWindow::nxmUpdatesAvailable(const std::vector &modIDs, QVariant us (*iter)->setNewestVersion(result["version"].toString()); (*iter)->setNexusDescription(result["description"].toString()); if (NexusInterface::instance(&m_PluginContainer)->getAccessManager()->loggedIn() && - result.contains("voted_by_user")) { + result.contains("voted_by_user") && + Settings::instance().endorsementIntegration()) { // don't use endorsement info if we're not logged in or if the response doesn't contain it (*iter)->setIsEndorsed(result["voted_by_user"].toBool()); } diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 6d894237..c8e0fb9e 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -171,8 +171,8 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo ui->tabWidget->setTabEnabled(TAB_CONFLICTS, m_Origin != nullptr); - + ui->endorseBtn->setVisible(Settings::instance().endorsementIntegration()); ui->endorseBtn->setEnabled((m_ModInfo->endorsedState() == ModInfo::ENDORSED_FALSE) || (m_ModInfo->endorsedState() == ModInfo::ENDORSED_NEVER)); diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index 6a52d3df..548e3178 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -4,6 +4,7 @@ #include "messagedialog.h" #include "report.h" #include "scriptextender.h" +#include "settings.h" #include #include @@ -466,7 +467,9 @@ void ModInfoRegular::ignoreUpdate(bool ignore) std::vector ModInfoRegular::getFlags() const { std::vector result = ModInfoWithConflictInfo::getFlags(); - if ((m_NexusID > 0) && (endorsedState() == ENDORSED_FALSE)) { + if ((m_NexusID > 0) && + (endorsedState() == ENDORSED_FALSE) && + Settings::instance().endorsementIntegration()) { result.push_back(ModInfo::FLAG_NOTENDORSED); } if (!isValid() && !m_Validated) { diff --git a/src/settings.cpp b/src/settings.cpp index 18e893cb..42bf1357 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -459,6 +459,11 @@ bool Settings::useProxy() const return m_Settings.value("Settings/use_proxy", false).toBool(); } +bool Settings::endorsementIntegration() const +{ + return m_Settings.value("Settings/endorsement_integration", true).toBool(); +} + bool Settings::displayForeign() const { return m_Settings.value("Settings/display_foreign", true).toBool(); @@ -941,6 +946,7 @@ Settings::NexusTab::NexusTab(Settings *parent, SettingsDialog &dialog) , m_knownServersList(dialog.findChild("knownServersList")) , m_preferredServersList( dialog.findChild("preferredServersList")) + , m_endorsementBox(dialog.findChild("endorsementBox")) { if (parent->automaticLoginEnabled()) { m_loginCheckBox->setChecked(true); @@ -950,6 +956,7 @@ Settings::NexusTab::NexusTab(Settings *parent, SettingsDialog &dialog) m_offlineBox->setChecked(parent->offlineMode()); m_proxyBox->setChecked(parent->useProxy()); + m_endorsementBox->setChecked(parent->endorsementIntegration()); // display server preferences m_Settings.beginGroup("Servers"); @@ -991,6 +998,7 @@ void Settings::NexusTab::update() } m_Settings.setValue("Settings/offline_mode", m_offlineBox->isChecked()); m_Settings.setValue("Settings/use_proxy", m_proxyBox->isChecked()); + m_Settings.setValue("Settings/endorsement_integration", m_endorsementBox->isChecked()); // store server preference m_Settings.beginGroup("Servers"); diff --git a/src/settings.h b/src/settings.h index 912864e2..25f22911 100644 --- a/src/settings.h +++ b/src/settings.h @@ -270,6 +270,11 @@ public: */ bool useProxy() const; + /** + * @return true if endorsement integration is enabled + */ + bool endorsementIntegration() const; + /** * @return true if the user wants to see non-official plugins installed outside MO in his mod list */ @@ -470,6 +475,7 @@ private: QCheckBox *m_proxyBox; QListWidget *m_knownServersList; QListWidget *m_preferredServersList; + QCheckBox *m_endorsementBox; }; /** Display/store the configuration in the 'steam' tab of the settings dialogue */ diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index 0412fc10..d9fa92d8 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -537,30 +537,44 @@ p, li { white-space: pre-wrap; } - - - Disable automatic internet features - - - 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) - - - Offline Mode - - - - - - - Use a proxy for network connections. - - - 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. - - - Use HTTP Proxy (Uses System Settings) - - + + + + + Disable automatic internet features + + + 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) + + + Offline Mode + + + + + + + Use a proxy for network connections. + + + 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. + + + Use HTTP Proxy (Uses System Settings) + + + + + + + Endorsement Integration + + + true + + + + @@ -1347,8 +1361,6 @@ programs you are intentionally running. usernameEdit passwordEdit clearCacheButton - offlineBox - proxyBox associateButton knownServersList preferredServersList -- cgit v1.3.1