From a2c630af240e3aaa49af5228702c851c33c9a926 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 14:50:46 -0400 Subject: added names to the about dialog --- src/aboutdialog.ui | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/aboutdialog.ui b/src/aboutdialog.ui index ec2b754d..0296d9b7 100644 --- a/src/aboutdialog.ui +++ b/src/aboutdialog.ui @@ -217,7 +217,7 @@ - isanae + isa @@ -256,6 +256,11 @@ przester + + + Holt59 + + @@ -429,6 +434,11 @@ DoubleYou + + + Drew Warwick + + deathneko11 @@ -474,6 +484,11 @@ outdatedtv + + + PurpleFez + + reedts -- cgit v1.3.1 From b0fb2037428e6186cea26805d469943b5ef73ba9 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 14:50:56 -0400 Subject: typo --- src/env.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/env.cpp b/src/env.cpp index 4c0aeb86..2862aa95 100644 --- a/src/env.cpp +++ b/src/env.cpp @@ -1083,7 +1083,7 @@ bool coredump(CoreDumpTypes type) bool coredumpOther(CoreDumpTypes type) { - std::wclog << L"creating minidump for an running process\n"; + std::wclog << L"creating minidump for a running process\n"; const auto pid = findOtherPid(); if (pid == 0) { -- cgit v1.3.1 From 97dd16a87a3b398028c1408d24209ade329c78d2 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 14:54:02 -0400 Subject: don't log old nexus username and password they're not supposed to be in the INI anymore, but the migration code looks broken and some users still have them --- src/settings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/settings.cpp b/src/settings.cpp index 55283486..b1385c05 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -463,7 +463,7 @@ QSettings::Status Settings::sync() const void Settings::dump() const { static const QStringList ignore({ - "username", "password", "nexus_api_key" + "username", "password", "nexus_api_key", "nexus_username", "nexus_password" }); log::debug("settings:"); -- cgit v1.3.1 From e0db7177b49ad73ab5296bc90a359d63a5503cbe Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 15:04:54 -0400 Subject: added hidden validation_timeouts setting --- src/nxmaccessmanager.cpp | 6 ++++-- src/settings.cpp | 34 ++++++++++++++++++++++++++++++++++ src/settings.h | 2 ++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp index 0064f888..2fe676ba 100644 --- a/src/nxmaccessmanager.cpp +++ b/src/nxmaccessmanager.cpp @@ -611,17 +611,19 @@ void NexusKeyValidator::start(const QString& key, Behaviour b) m_key = key; + const auto timeouts = Settings::instance().nexus().validationTimeouts(); + switch (b) { case OneShot: { - createAttempts({10s}); + createAttempts({timeouts[0]}); break; } case Retry: { - createAttempts({10s, 15s, 20s}); + createAttempts(timeouts); break; } } diff --git a/src/settings.cpp b/src/settings.cpp index b1385c05..534e67c8 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1868,6 +1868,40 @@ void NexusSettings::registerAsNXMHandler(bool force) } } +std::vector NexusSettings::validationTimeouts() const +{ + using namespace std::chrono_literals; + + const auto s = get( + m_Settings, "Settings", "validation_timeouts", ""); + + const auto numbers = s.split(" "); + std::vector v; + + for (auto ns : numbers) + { + ns = ns.trimmed(); + if (ns.isEmpty()) + continue; + + bool ok = false; + const auto n = ns.toInt(&ok); + + if (!ok || n < 0 || n > 100) + { + log::error("bad validation_timeouts number '{}'", ns); + continue; + } + + v.push_back(std::chrono::seconds(n)); + } + + if (v.empty()) + v = {10s, 15s, 20s}; + + return v; +} + SteamSettings::SteamSettings(Settings& parent, QSettings& settings) : m_Parent(parent), m_Settings(settings) diff --git a/src/settings.h b/src/settings.h index 9d788664..636719bb 100644 --- a/src/settings.h +++ b/src/settings.h @@ -521,6 +521,8 @@ public: // void registerAsNXMHandler(bool force); + std::vector validationTimeouts() const; + private: Settings& m_Parent; QSettings& m_Settings; -- cgit v1.3.1 From cf01fa955c72e0c159557e972d1f5a7005fc2121 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 15:20:01 -0400 Subject: resize data tab columns when migrating from < 2.3 so the new columns are visible --- src/mainwindow.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b2907db9..dfe0fbde 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2146,7 +2146,7 @@ void MainWindow::activateProxy(bool activate) busyDialog.setWindowFlags(busyDialog.windowFlags() & ~Qt::WindowContextHelpButtonHint); busyDialog.setWindowModality(Qt::WindowModal); busyDialog.show(); - + QFutureWatcher futureWatcher; QEventLoop loop; connect(&futureWatcher, &QFutureWatcher::finished, @@ -2156,7 +2156,7 @@ void MainWindow::activateProxy(bool activate) futureWatcher.setFuture( QtConcurrent::run(MainWindow::setupNetworkProxy, activate) ); - + // wait for setupNetworkProxy while keeping ui responsive loop.exec(); @@ -2226,6 +2226,11 @@ void MainWindow::processUpdates() { ui->downloadView->header()->hideSection(i); } } + + if (lastVersion < QVersionNumber(2, 3)) { + for (int i=1; idataTree->header()->count(); ++i) + ui->dataTree->setColumnWidth(i, 150); + } } if (currentVersion < lastVersion) { @@ -5794,7 +5799,7 @@ void MainWindow::nxmRequestFailed(QString gameName, int modID, int, QVariant, in { if (error == QNetworkReply::ContentAccessDenied || error == QNetworkReply::ContentNotFoundError) { log::debug("{}", tr("Mod ID %1 no longer seems to be available on Nexus.").arg(modID)); - + // update last checked timestamp on orphaned mods as well to avoid repeating requests QString gameNameReal; for (IPluginGame* game : m_PluginContainer.plugins()) { -- cgit v1.3.1 From 55451956c45a1df75e6ba52367bcf3551c66d886 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 15:31:08 -0400 Subject: added VT_UI1 for productState --- src/envsecurity.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/envsecurity.cpp b/src/envsecurity.cpp index 8b1d25b2..fd65b483 100644 --- a/src/envsecurity.cpp +++ b/src/envsecurity.cpp @@ -298,6 +298,8 @@ std::optional handleProduct(IWbemClassObject* o) state = prop.lVal; } else if (prop.vt == VT_UI4) { state = prop.ulVal; + } else if (prop.vt == VT_UI1) { + state = prop.bVal; } else if (prop.vt == VT_NULL) { log::warn("productState is null"); } else { -- cgit v1.3.1 From 285d0bfc7975fff756dd037dbaf4b10cb3ba2209 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 15:33:00 -0400 Subject: loot exit code in hex --- src/loot.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/loot.cpp b/src/loot.cpp index 485afa7a..d41fd77b 100644 --- a/src/loot.cpp +++ b/src/loot.cpp @@ -629,7 +629,7 @@ bool Loot::waitForCompletion() } if (exitCode != 0UL) { - emit log(log::Levels::Error, tr("Loot failed. Exit code was: %1").arg(exitCode)); + emit log(log::Levels::Error, tr("Loot failed. Exit code was: 0x%1").arg(exitCode, 0, 16)); return false; } -- cgit v1.3.1 From 287e285afae3d2318d06116a5320efa3dace7a42 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 15:47:44 -0400 Subject: added a bunch more osd checks added warnings for paths in documents and downloads --- src/sanitychecks.cpp | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/sanitychecks.cpp b/src/sanitychecks.cpp index 3794aa57..7afce7bd 100644 --- a/src/sanitychecks.cpp +++ b/src/sanitychecks.cpp @@ -225,15 +225,22 @@ int checkBadOSDs(const env::Module& m) // is loaded into this process const char* nahimic = - "Nahimic (also known as SonicSuite, SonicRadar, SteelSeries, etc.)"; + "Nahimic (also known as SonicSuite, SonicRadar, SteelSeries, A-Volute, etc.)"; static const std::map names = { - {"NahimicOSD.dll", nahimic}, - {"nahimicmsiosd.dll", nahimic}, - {"RTSSHooks64.dll", "RivaTuner Statistics Server"}, - {"SSAudioOSD.dll", "SteelSeries Audio"}, - {"SS3DevProps.dll", "Sonic Suite 3"}, - {"specialk64.dll", "SpecialK"} + {"NahimicOSD.dll", nahimic}, + {"nahimicmsiosd.dll", nahimic}, + {"cassinimlkosd.dll", nahimic}, + {"SS3DevProps.dll", nahimic}, + {"ss2devprops.dll", nahimic}, + {"ss2osd.dll", nahimic}, + {"RTSSHooks64.dll", "RivaTuner Statistics Server"}, + {"SSAudioOSD.dll", "SteelSeries Audio"}, + {"specialk64.dll", "SpecialK"}, + {"corsairosdhook.x64.dll", "Corsair Utility Engine"}, + {"gtii-osd64-vk.dll", "ASUS GPU Tweak 2"}, + {"easyhook64.dll", "Razer Cortex"}, + {"k_fps64.dll", "Razer Cortex"} }; const QFileInfo file(m.path()); @@ -242,7 +249,7 @@ int checkBadOSDs(const env::Module& m) for (auto&& p : names) { if (file.fileName().compare(p.first, Qt::CaseInsensitive) == 0) { log::warn("{}", QObject::tr( - "%1 is loaded. This program is known to cause issues with " + "%1 is loaded.\nThis program is known to cause issues with " "Mod Organizer, such as freezing or blank windows. Consider " "uninstalling it.") .arg(p.second)); @@ -311,10 +318,12 @@ std::vector> getSystemDirectories() { // folder ids and display names for logging const std::vector> systemFolderIDs = { - {FOLDERID_ProgramFiles, "in program files"}, - {FOLDERID_ProgramFilesX86, "in program files"}, + {FOLDERID_ProgramFiles, "in Program Files"}, + {FOLDERID_ProgramFilesX86, "in Program Files"}, {FOLDERID_Desktop, "on the desktop"}, - {FOLDERID_OneDrive, "in OneDrive"} + {FOLDERID_OneDrive, "in OneDrive"}, + {FOLDERID_Documents, "in Documents"}, + {FOLDERID_Downloads, "in Downloads"} }; std::vector> systemDirs; -- cgit v1.3.1 From 315776799fe38b09b4c0684bd4c1236bdf2e329e Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Fri, 10 Jul 2020 15:51:06 -0400 Subject: don't translate new names --- src/aboutdialog.ui | 6 +- src/organizer_en.ts | 473 ++++++++++++++++++++++++++-------------------------- 2 files changed, 240 insertions(+), 239 deletions(-) diff --git a/src/aboutdialog.ui b/src/aboutdialog.ui index 0296d9b7..e34d36f9 100644 --- a/src/aboutdialog.ui +++ b/src/aboutdialog.ui @@ -258,7 +258,7 @@ - Holt59 + Holt59 @@ -436,7 +436,7 @@ - Drew Warwick + Drew Warwick @@ -486,7 +486,7 @@ - PurpleFez + PurpleFez diff --git a/src/organizer_en.ts b/src/organizer_en.ts index c5726013..bb52e8fa 100644 --- a/src/organizer_en.ts +++ b/src/organizer_en.ts @@ -50,82 +50,82 @@ - + Translators - + Cyb3r (Dutch) - + fruttyx (French) - + Yoplala (French) - + Faron (German) - + yohru (Japanese) - + Mordan (Greek) - + Yoosk (Polish) - + Brgodfx (Portuguese) - + zDas (Portuguese) - + Jax (Swedish) - + Nubbie (Swedish) - + ...and all other contributors! - + Other Supporters && Contributors - + Tannin (Original Creator) - + Close @@ -1954,7 +1954,7 @@ This is likely due to a corrupted or incompatible download or unrecognized archi - Loot failed. Exit code was: %1 + Loot failed. Exit code was: 0x%1 @@ -2199,7 +2199,7 @@ p, li { white-space: pre-wrap; } - + Create Backup @@ -2353,7 +2353,7 @@ p, li { white-space: pre-wrap; } - + Refresh @@ -2677,7 +2677,7 @@ p, li { white-space: pre-wrap; } - + Endorse Mod Organizer @@ -2798,8 +2798,8 @@ Error: %1 - - + + Endorse @@ -2914,675 +2914,675 @@ Error: %1 - + Notice: Your current MO version (%1) is lower than the previously used one (%2). The GUI may not downgrade gracefully, so you may experience oddities. However, there should be no serious issues. - + Choose Mod - + Mod Archive - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - + failed to change origin name: %1 - + failed to move "%1" from mod "%2" to "%3": %4 - + failed to rename mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - + failed to rename "%1" to "%2" - - - - - + + + + + Confirm - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - - + + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - + Failed to create backup. - + Endorsing multiple mods will take a while. Please wait... - + Unendorsing multiple mods will take a while. Please wait... - + Failed to display overwrite dialog: %1 - + Restore all hidden files in the following mods?<br><ul>%1</ul> - - - + + + Are you sure? - + About to restore all hidden files in: - + Opening Nexus Links - + You are trying to open %1 links to Nexus Mods. Are you sure you want to do this? - + Nexus ID for this mod is unknown - - + + Opening Web Pages - - + + You are trying to open %1 Web Pages. Are you sure you want to do this? - + No valid Web Page for this mod - + <table cellspacing="5"><tr><th>Type</th><th>All</th><th>Visible</th><tr><td>Enabled mods:&emsp;</td><td align=right>%1 / %2</td><td align=right>%3 / %4</td></tr><tr><td>Unmanaged/DLCs:&emsp;</td><td align=right>%5</td><td align=right>%6</td></tr><tr><td>Mod backups:&emsp;</td><td align=right>%7</td><td align=right>%8</td></tr><tr><td>Separators:&emsp;</td><td align=right>%9</td><td align=right>%10</td></tr></table> - + <table cellspacing="6"><tr><th>Type</th><th>Active </th><th>Total</th></tr><tr><td>All plugins:</td><td align=right>%1 </td><td align=right>%2</td></tr><tr><td>ESMs:</td><td align=right>%3 </td><td align=right>%4</td></tr><tr><td>ESPs:</td><td align=right>%7 </td><td align=right>%8</td></tr><tr><td>ESMs+ESPs:</td><td align=right>%9 </td><td align=right>%10</td></tr><tr><td>ESLs:</td><td align=right>%5 </td><td align=right>%6</td></tr></table> - - - + + + Create Mod... - + This will create an empty mod. Please enter a name: - - + + A mod with this name already exists - + Create Separator... - + This will create a new separator. Please enter a name: - + A separator with this name already exists - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Move successful. - + About to recursively delete: - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? - + Really disable all visible mods? - + Export to csv - + CSV (Comma Separated Values) is a format that can be imported in programs like Excel to create a spreadsheet. You can also use online editors and converters instead. - + Select what mods you want export: - + All installed mods - + Only active (checked) mods from your current profile - + All currently visible mods in the mod list - + Choose what Columns to export: - + Mod_Priority - + Mod_Name - + Notes_column - + Mod_Status - + Primary_Category - + Nexus_ID - + Mod_Nexus_URL - + Mod_Version - + Install_Date - + Download_File_Name - + export failed: %1 - + Open Game folder - + Open MyGames folder - + Open INIs folder - + Open Instance folder - + Open Mods folder - + Open Profile folder - + Open Downloads folder - + Open MO2 Install folder - + Open MO2 Plugins folder - + Open MO2 Stylesheets folder - + Open MO2 Logs folder - + Install Mod... - + Create empty mod - + Create Separator - + Enable all visible - + Disable all visible - + Check for updates - + Export to csv... - - + + Send to - - + + Top - - + + Bottom - - + + Priority... - + Separator... - + All Mods - + Sync to Mods... - + Move content to Mod... - + Clear Overwrite... - - - + + + Open in Explorer - + Restore Backup - + Remove Backup... - - + + Ignore missing data - - + + Mark as converted/working - - + + Visit on Nexus - - + + Visit on %1 - - + + Change Categories - - + + Primary Category - + Rename Separator... - + Remove Separator... - - + + Select Color... - - + + Reset Color - + Change versioning scheme - + Force-check updates - + Un-ignore update - + Ignore update - - + + Enable selected - - + + Disable selected - + Rename Mod... - + Reinstall Mod - + Remove Mod... - + Restore hidden files - + Un-Endorse - + Won't endorse - + Endorsement state unknown - + Start tracking - + Stop tracking - + Tracked state unknown - + Information... - - + + Exception: - - + + Unknown exception - + %1 more - + Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin. @@ -3590,12 +3590,12 @@ You can also use online editors and converters instead. - + Enable Mods... - + Delete %n save(s) @@ -3603,232 +3603,232 @@ You can also use online editors and converters instead. - + Restart Mod Organizer - + Mod Organizer must restart to finish configuration changes - + Restart - + Continue - + Some things might be weird. - + Can't change download directory while downloads are in progress! - - + + Set Priority - + Set the priority of the selected plugins - + Update available - + Do you want to endorse Mod Organizer on %1 now? - + Abstain from Endorsing Mod Organizer - + Are you sure you want to abstain from endorsing Mod Organizer 2? You will have to visit the mod page on the %1 Nexus site to change your mind. - + Thank you for endorsing MO2! :) - + Please reconsider endorsing MO2 on Nexus! - + Thank you! - + Thank you for your endorsement! - + Mod ID %1 no longer seems to be available on Nexus. - + Request to Nexus failed: %1 - - + + failed to read %1: %2 - + Error - + failed to extract %1 (errorcode %2) - + Extract BSA - + This archive contains invalid hashes. Some files may be broken. - + Extract... - + This will restart MO, continue? - + <Multiple> - + Remove '%1' from the toolbar - + Enable all - + Disable all - + Unlock load order - + Lock load order - + Open Origin in Explorer - + Open Origin Info... - + Backup of load order created - + Choose backup to restore - + No Backups - + There are no backups to restore - - + + Restore failed - - + + Failed to restore the backup. Errorcode: %1 - + Backup of mod list created - + A file with the same name has already been downloaded. What would you like to do? - + Overwrite - + Rename new file - + Ignore file - + Set the priority of the selected mods @@ -6289,7 +6289,7 @@ If the folder was still in use, restart MO and try again. - + <Manage...> @@ -6382,7 +6382,7 @@ If the folder was still in use, restart MO and try again. - + Cancelled @@ -6475,12 +6475,13 @@ If the folder was still in use, restart MO and try again. - - %1 is loaded. This program is known to cause issues with Mod Organizer, such as freezing or blank windows. Consider uninstalling it. + + %1 is loaded. +This program is known to cause issues with Mod Organizer, such as freezing or blank windows. Consider uninstalling it. - + %1 is loaded. This program is known to cause issues with Mod Organizer and its virtual filesystem, such script extenders refusing to run. Consider uninstalling it. -- cgit v1.3.1