From 0596a7199094cc8d103dfe2cfdcd20046c04e85d Mon Sep 17 00:00:00 2001 From: Silarn Date: Thu, 4 Jul 2019 23:14:15 -0500 Subject: Various fixes and updates to the tutorial system * Fix problem with main tutorial advancing past mod activation * Add various missing overlays for new and updated features * Restore BSA tab * Fix problem with positioning action button overlays (requires uibase) --- src/tutorials/tutorial_primer_main.js | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'src/tutorials/tutorial_primer_main.js') diff --git a/src/tutorials/tutorial_primer_main.js b/src/tutorials/tutorial_primer_main.js index 5af99237..dd305c0c 100644 --- a/src/tutorials/tutorial_primer_main.js +++ b/src/tutorials/tutorial_primer_main.js @@ -42,6 +42,7 @@ function finishCreation(component, widgetName, explanation, maxheight, clickable function tooltipAction(actionName, explanation, maxheight, clickable) { var rect = tutorialControl.getActionRect(actionName) + var offsetRect = tutorialControl.getMenuRect(actionName) var component = Qt.createComponent("TooltipArea.qml") if (typeof clickable === 'undefined') { clickable = false @@ -51,7 +52,7 @@ function tooltipAction(actionName, explanation, maxheight, clickable) { } var obj = component.createObject(tutToplevel, { "x" : rect.x, - "y" : rect.y, + "y" : rect.y + offsetRect.height, "width" : rect.width, "height" : maxheight }) @@ -70,6 +71,11 @@ function setupTooptips() { tooltipWidget("modList", qsTr("This window shows all the mods that are installed. The column headers can be used for sorting. Only checked mods are active in the current profile.")) tooltipWidget("profileBox", qsTr("Each profile is a separate set of enabled mods and ini settings.")) + tooltipWidget("listOptionsBtn", qsTr("Perform various actions on your mod list, such as refreshing data and checking for mod updates.")) + tooltipWidget("openFolderMenu", qsTr("Quick access to various directories, such as your MO2 mods, profiles, saves, and your active game location.")) + tooltipWidget("restoreModsButton", qsTr("Restore a mod list backup.")) + tooltipWidget("saveModsButton", qsTr("Create a backup of your current mod list.")) + tooltipWidget("activeModsCounter", qsTr("Running counter of your active mods. Hover to see a more detailed breakdown.")) tooltipWidget("groupCombo", qsTr("The dropdown allows various ways of grouping the mods shown in the mod list.")) tooltipWidget("displayCategoriesBtn", qsTr("Show/hide the category pane.")) tooltipWidget("modFilterEdit", qsTr("Quickly filter the mod list as you type.")) @@ -79,27 +85,39 @@ function setupTooptips() { tooltipWidget("startButton", qsTr("When this button is clicked, Mod Organizer creates a virtual directory structure then runs the program selected to the left.")) tooltipWidget("linkButton", qsTr("Will create a shortcut for quick access. The shortcut can be placed in the toolbar at the top, in the Start Menu or on the Windows Desktop.")) tooltipWidget("logList", qsTr("Log messages produced by MO. Please note that messages with a light bulb usually don't require your attention.")) - + tooltipWidget("apistats", qsTr("Indicator of your current NexusMods API request limits.")) + + tooltipAction("actionChange_Game", qsTr("Change/manage MO2 instances or switch to portable mode.")) + tooltipAction("actionInstallMod", qsTr("Browse to and manually install a mod from an archive on your computer.")) + tooltipAction("actionNexus", qsTr("Automatically open NexusMods to browse and install mods via the API.")) + tooltipAction("actionAdd_Profile", qsTr("Manage your MO2 profiles.")) + tooltipAction("actionModify_Executables", qsTr("Open the executable editor to add and modify applications you wish to run with MO2.")) + tooltipAction("actionTool", qsTr("Select from a collection of additional tools, such as an INI editor, integrated FNIS updater, and more.")) tooltipAction("actionSettings", qsTr("Configure Mod Organizer.")) + tooltipAction("actionEndorseMO", qsTr("See the status of and/or endorse MO2 on NexusMods.")) tooltipAction("actionNotifications", qsTr("Notifications about the current setup.")) tooltipAction("actionUpdate", qsTr("Activates if there is an update for MO. Please note that if, for any reason, MO can't communicate with NMM, this will not work either.")) + tooltipAction("actionHelp", qsTr("Access more information about MO2, including these tutorials, a link to the development discord, information about the devs and dependencies.")) switch (manager.findControl("tabWidget").currentIndex) { case 0: tooltipWidget("espList", qsTr("Plugins (esp/esm/esl files) of the mods in the current profile. They need to be checked to be loaded.")) tooltipWidget("bossButton", qsTr("Automatically sort plugins using the bundled LOOT application.")) + tooltipWidget("restoreButton", qsTr("Restore a backup of your plugin list order.")) + tooltipWidget("saveButton", qsTr("Save a backup of your plugin list order.")) + tooltipWidget("activePluginsCounter", qsTr("Counter of your total active plugins. Hover to see a breakdown of plugin types.")) tooltipWidget("espFilterEdit", qsTr("Quickly filter plugin list as you type.")) break - // case 1: - // tooltipWidget("bsaList", qsTr("All the asset archives (.bsa files) for all active mods.")) - // break case 1: - tooltipWidget("dataTree", qsTr("The directory tree and all files that the program will see.")) + tooltipWidget("bsaList", qsTr("All the asset archives (.bsa files) for all active mods.")) break case 2: - tooltipWidget("savegameList", qsTr("Save game browser. Shows all the saves for the current profile and whether or not the current mod-load status is correct.")) + tooltipWidget("dataTree", qsTr("The directory tree and all files that the program will see.")) break case 3: + tooltipWidget("savegameList", qsTr("Save game browser. Shows all the saves for the current profile and whether or not the current mod-load status is correct.")) + break + case 4: tooltipWidget("downloadView", qsTr("Shows the mods that have been downloaded and if they’ve been installed.")) break } -- cgit v1.3.1 From 9f4a9c913fc6f79d5a754bc872443c1c057096e7 Mon Sep 17 00:00:00 2001 From: Silarn Date: Fri, 5 Jul 2019 16:19:52 -0500 Subject: Rework methods to detect the current tab to use the object name --- src/organizer_en.ts | 693 +++++++++++---------- src/tutorials/tutorial_conflictresolution_main.js | 4 +- .../tutorial_conflictresolution_modinfo.js | 2 +- src/tutorials/tutorial_firststeps_main.js | 2 +- src/tutorials/tutorial_firststeps_settings.js | 10 +- src/tutorials/tutorial_primer_main.js | 12 +- 6 files changed, 365 insertions(+), 358 deletions(-) (limited to 'src/tutorials/tutorial_primer_main.js') diff --git a/src/organizer_en.ts b/src/organizer_en.ts index 4e6575ea..341bc1be 100644 --- a/src/organizer_en.ts +++ b/src/organizer_en.ts @@ -74,6 +74,11 @@ yohru (Japanese) + + + yohru (Japanese) + + Mordan (Greek) @@ -173,17 +178,17 @@ p, li { white-space: pre-wrap; } AdvancedConflictListModel - + Overwrites - + File - + Overwritten By @@ -201,12 +206,12 @@ p, li { white-space: pre-wrap; } - + new - + failed to start download @@ -289,32 +294,32 @@ p, li { white-space: pre-wrap; } ConflictsTab - + &Hide - + &Unhide - + &Open/Execute - + &Preview - + Open in &Explorer - + &Go to... @@ -845,114 +850,114 @@ File %3: %4 - + file size: invalid download index %1 - + progress: invalid download index %1 - + state: invalid download index %1 - + infocomplete: invalid download index %1 - - + + mod id: invalid download index %1 - + ishidden: invalid download index %1 - + file info: invalid download index %1 - + mark installed: invalid download index %1 - + mark uninstalled: invalid download index %1 - + Memory allocation error (in processing progress event). - + Memory allocation error (in processing downloaded data). - + Information updated - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 - + Warning: Content type is: %1 - + Download header content length: %1 downloaded file size: %2 - + Download failed: %1 (%2) - + We were unable to download the file due to errors after four retries. There may be an issue with the Nexus servers. - + failed to re-open %1 - + Unable to write download to drive (return %1). Check the drive's available storage. @@ -1661,7 +1666,7 @@ p, li { white-space: pre-wrap; } - + Create Backup @@ -1837,8 +1842,8 @@ p, li { white-space: pre-wrap; } - - + + Refresh @@ -2117,7 +2122,7 @@ p, li { white-space: pre-wrap; } - + Endorse Mod Organizer @@ -2207,869 +2212,869 @@ p, li { white-space: pre-wrap; } - + Toolbar and Menu - + Desktop - + Start Menu - + There is no supported sort mechanism for this game. You will probably have to use a third-party tool. - + Crash on exit - + MO crashed while exiting. Some settings may not be saved. Error: %1 - + There are notifications to read - + There are no notifications - - - + + + Endorse - + Won't Endorse - + Help on UI - + Documentation - + Chat on Discord - + Report Issue - + Tutorials - + About - + About Qt - + Name - + Please enter a name for the new profile - + failed to create profile: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress - + There are still downloads in progress, do you really want to quit? - + Plugin "%1" failed: %2 - + Plugin "%1" failed - + Browse Mod Page - + Also in: <br> - + No conflict - + <Edit...> - + This bsa is enabled in the ini file so it may be required! - + Activating Network Proxy - + 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 spawn notepad.exe: %1 - + failed to change origin name: %1 - + failed to move "%1" from mod "%2" to "%3": %4 - + <Contains %1> - + <Checked> - + <Unchecked> - + <Update> - + <Mod Backup> - + <Managed by MO> - + <Managed outside MO> - + <No category> - + <Conflicted> - + <Not Endorsed> - + 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 - + 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? - + <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. - - + + Are you sure? - + 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 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... - - + + 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... - + Un-Endorse - + Won't endorse - + Endorsement state unknown - + Start tracking - + Stop tracking - + Tracked state unknown - + Ignore missing data - + Mark as converted/working - + Visit on Nexus - + Visit on %1 - + Information... - - + + Exception: - - + + Unknown exception - + <All> - + <Multiple> - + %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. @@ -3077,12 +3082,12 @@ You can also use online editors and converters instead. - + Enable Mods... - + Delete %n save(s) @@ -3090,22 +3095,22 @@ You can also use online editors and converters instead. - + failed to remove %1 - + failed to create %1 - + Restarting MO - + Changing the managed game directory requires restarting MO. Any pending downloads will be paused. @@ -3113,348 +3118,348 @@ Click OK to restart MO now. - + Can't change download directory while downloads are in progress! - + failed to write to file %1 - + %1 written - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - - + + Set Priority - + Set the priority of the selected plugins - + Update available - + Open/Execute - + Add as Executable - + Preview - + Un-Hide - + Hide - + Write To File... - + 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! - + Okay. - + This mod will not be endorsed and will no longer ask you to endorse. - + 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? - + Edit Categories... - + Deselect filter - + Remove '%1' from the toolbar - + Enable all - + Disable all - + Unlock load order - + Lock load order - + Open Origin in Explorer - + Open Origin Info... - + depends on missing "%1" - + incompatible with "%1" - + Please wait while LOOT is running - + loot failed. Exit code was: %1 - + failed to start loot - + failed to run loot: %1 - + Errors occurred - + 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 @@ -4306,12 +4311,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites - + not implemented @@ -4469,7 +4474,7 @@ p, li { white-space: pre-wrap; } NoConflictListModel - + File @@ -4747,12 +4752,12 @@ Continue? OverwriteConflictListModel - + File - + Overwritten Mods @@ -4775,63 +4780,63 @@ Continue? - + &Delete - + &Rename - + &Open - + &New Folder - + mod not found: %1 - + Failed to delete "%1" - - - - + + + + Confirm - - + + Are you sure you want to delete "%1"? - - + + Are you sure you want to delete the selected files? - - + + New Folder - + Failed to create "%1" @@ -4839,12 +4844,12 @@ Continue? OverwrittenConflictListModel - + File - + Providing Mod @@ -5838,34 +5843,34 @@ If the folder was still in use, restart MO and try again. - + Mod Organizer - + An instance of Mod Organizer is already running - + Failed to set up instance - + Please use "Help" from the toolbar to get usage instructions to all elements - - + + <Manage...> - + failed to parse profile %1: %2 diff --git a/src/tutorials/tutorial_conflictresolution_main.js b/src/tutorials/tutorial_conflictresolution_main.js index 404afe5d..a2aa278d 100644 --- a/src/tutorials/tutorial_conflictresolution_main.js +++ b/src/tutorials/tutorial_conflictresolution_main.js @@ -65,7 +65,7 @@ function getTutorialSteps() { }, function() { tutorial.text = qsTr("Option A: Switch to the \"Data\"-tab if necessary") - if (!tutorialControl.waitForTabOpen("tabWidget", 2)) { + if (!tutorialControl.waitForTabOpen("tabWidget", "dataTab")) { highlightItem("tabWidget", false) waitForClick() } else { @@ -107,7 +107,7 @@ function getTutorialSteps() { function() { tutorial.text = qsTr("Please open the \"Plugins\"-tab...") highlightItem("tabWidget", true) - if (!tutorialControl.waitForTabOpen("tabWidget", 0)) { + if (!tutorialControl.waitForTabOpen("tabWidget", "espTab")) { nextStep() } }, diff --git a/src/tutorials/tutorial_conflictresolution_modinfo.js b/src/tutorials/tutorial_conflictresolution_modinfo.js index b5ef461e..04691ef6 100644 --- a/src/tutorials/tutorial_conflictresolution_modinfo.js +++ b/src/tutorials/tutorial_conflictresolution_modinfo.js @@ -3,7 +3,7 @@ function getTutorialSteps() { function() { tutorial.text = qsTr("Please switch to the \"Conflicts\"-Tab.") highlightItem("tabWidget", true) - if (!tutorialControl.waitForTabOpen("tabWidget", 4)) { + if (!tutorialControl.waitForTabOpen("tabWidget", "tabConflicts")) { nextStep() } }, diff --git a/src/tutorials/tutorial_firststeps_main.js b/src/tutorials/tutorial_firststeps_main.js index 45e7e649..47545d24 100644 --- a/src/tutorials/tutorial_firststeps_main.js +++ b/src/tutorials/tutorial_firststeps_main.js @@ -122,7 +122,7 @@ function getTutorialSteps() tutorial.text = qsTr("...but most contain plugins. These are plugins for the game and are required " +"to add stuff to the game (new weapons, armors, quests, areas, ...). " +"Please open the \"Plugins\"-tab to get a list of plugins.") - if (tutorialControl.waitForTabOpen("tabWidget", 0)) { + if (tutorialControl.waitForTabOpen("tabWidget", "espTab")) { highlightItem("tabWidget", true) } else { waitForClick() diff --git a/src/tutorials/tutorial_firststeps_settings.js b/src/tutorials/tutorial_firststeps_settings.js index 1dd77d2e..ed49d97f 100644 --- a/src/tutorials/tutorial_firststeps_settings.js +++ b/src/tutorials/tutorial_firststeps_settings.js @@ -4,7 +4,7 @@ function getTutorialSteps() function() { highlightItem("tabWidget", true) tutorial.text = qsTr("You can use your regular browser to download from Nexus.\nPlease open the \"Nexus\"-tab") - tutorialControl.waitForTabOpen("tabWidget", 2) + tutorialControl.waitForTabOpen("tabWidget", "tabNexus") }, function() { @@ -16,9 +16,11 @@ function getTutorialSteps() function() { highlightItem("nexusBox", false) - tutorial.text = qsTr("You can also store your Nexus-credentials " - +"here for automatic login. The password is " - +"stored unencrypted on your disk!") + tutorial.text = qsTr("Use this interface to obtain an API key from NexusMods." + +"This is used for all API connections - downloads, updates" + +"etc. MO2 uses the Windows Credential Manager to store" + +"this data securely. If the SSO page on Nexus is failing," + +"use the manual entry and copy the API key from your profile.") waitForClick() } ] diff --git a/src/tutorials/tutorial_primer_main.js b/src/tutorials/tutorial_primer_main.js index dd305c0c..7972cca4 100644 --- a/src/tutorials/tutorial_primer_main.js +++ b/src/tutorials/tutorial_primer_main.js @@ -99,8 +99,8 @@ function setupTooptips() { tooltipAction("actionUpdate", qsTr("Activates if there is an update for MO. Please note that if, for any reason, MO can't communicate with NMM, this will not work either.")) tooltipAction("actionHelp", qsTr("Access more information about MO2, including these tutorials, a link to the development discord, information about the devs and dependencies.")) - switch (manager.findControl("tabWidget").currentIndex) { - case 0: + switch (tutorialControl.getTabName("tabWidget")) { + case "espTab": tooltipWidget("espList", qsTr("Plugins (esp/esm/esl files) of the mods in the current profile. They need to be checked to be loaded.")) tooltipWidget("bossButton", qsTr("Automatically sort plugins using the bundled LOOT application.")) tooltipWidget("restoreButton", qsTr("Restore a backup of your plugin list order.")) @@ -108,16 +108,16 @@ function setupTooptips() { tooltipWidget("activePluginsCounter", qsTr("Counter of your total active plugins. Hover to see a breakdown of plugin types.")) tooltipWidget("espFilterEdit", qsTr("Quickly filter plugin list as you type.")) break - case 1: + case "bsaTab": tooltipWidget("bsaList", qsTr("All the asset archives (.bsa files) for all active mods.")) break - case 2: + case "dataTab": tooltipWidget("dataTree", qsTr("The directory tree and all files that the program will see.")) break - case 3: + case "savesTab": tooltipWidget("savegameList", qsTr("Save game browser. Shows all the saves for the current profile and whether or not the current mod-load status is correct.")) break - case 4: + case "downloadTab": tooltipWidget("downloadView", qsTr("Shows the mods that have been downloaded and if they’ve been installed.")) break } -- cgit v1.3.1