diff options
Diffstat (limited to 'src/tutorials')
| -rw-r--r-- | src/tutorials/tutorial_conflictresolution_main.js | 6 | ||||
| -rw-r--r-- | src/tutorials/tutorial_conflictresolution_modinfo.js | 2 | ||||
| -rw-r--r-- | src/tutorials/tutorial_firststeps_main.js | 13 | ||||
| -rw-r--r-- | src/tutorials/tutorial_firststeps_modinfo.js | 2 | ||||
| -rw-r--r-- | src/tutorials/tutorial_firststeps_settings.js | 10 | ||||
| -rw-r--r-- | src/tutorials/tutorial_primer_main.js | 36 | ||||
| -rw-r--r-- | src/tutorials/tutorials.js | 3 |
7 files changed, 47 insertions, 25 deletions
diff --git a/src/tutorials/tutorial_conflictresolution_main.js b/src/tutorials/tutorial_conflictresolution_main.js index 3c782af2..a2aa278d 100644 --- a/src/tutorials/tutorial_conflictresolution_main.js +++ b/src/tutorials/tutorial_conflictresolution_main.js @@ -56,7 +56,7 @@ function getTutorialSteps() { waitForClick()
},
function() {
- tutorial.text = qsTr("<img src=\"qrc:///MO/gui/emblem_conflict_redundant\" /> indicates that the mod is completely overwrtten by another. You could as well disable it.");
+ tutorial.text = qsTr("<img src=\"qrc:///MO/gui/emblem_conflict_redundant\" /> indicates that the mod is completely overwritten by another. You could as well disable it.");
waitForClick()
},
function() {
@@ -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 ee97766b..96bfd0e7 100644 --- a/src/tutorials/tutorial_firststeps_main.js +++ b/src/tutorials/tutorial_firststeps_main.js @@ -27,8 +27,8 @@ function getTutorialSteps() function() {
console.log("next")
tutorial.text = qsTr("This button provides multiple sources of information and further tutorials.")
- if (tutorialControl.waitForButton("actionHelp")) {
- highlightItem("actionHelp", true)
+ if (tutorialControl.waitForAction("actionHelp")) {
+ highlightAction("actionHelp", true)
} else {
console.error("help button broken")
waitForClick()
@@ -36,6 +36,7 @@ function getTutorialSteps() },
function() {
+ unhighlight()
tutorial.text = qsTr("Finally there are tooltips on almost every part of Mod Organizer. If there is a control "
+ "in MO you don't understand, please try hovering over it to get a short description or "
+ "use \"Help on UI\" from the help menu to get a longer explanation")
@@ -108,11 +109,11 @@ function getTutorialSteps() tutorial.text = qsTr("Install a few more mods if you want, then enable mods by checking them in the left pane. "
+ "Mods that aren't enabled have no effect on the game whatsoever. ")
highlightItem("modList", true)
- modList.modlist_changed.connect(nextStep)
+ modList.tutorialModlistUpdate.connect(nextStep)
},
function() {
- modList.modlist_changed.disconnect(nextStep)
+ modList.tutorialModlistUpdate.disconnect(nextStep)
unhighlight()
tutorial.text = qsTr("For some mods, enabling it on the left pane is all you have to do...")
waitForClick()
@@ -122,7 +123,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()
@@ -137,7 +138,7 @@ function getTutorialSteps() function() {
tutorial.text = qsTr("A single mod may contain zero, one or multiple esps. Some or all may be optional. "
- + "If in doubt, please consult the documentation of the indiviual mod. "
+ + "If in doubt, please consult the documentation of the individual mod. "
+ "To do so, right-click the mod and select \"Information\".")
highlightItem("modList", true)
manager.activateTutorial("ModInfoDialog", "tutorial_firststeps_modinfo.js")
diff --git a/src/tutorials/tutorial_firststeps_modinfo.js b/src/tutorials/tutorial_firststeps_modinfo.js index 50c38345..1ed0dab7 100644 --- a/src/tutorials/tutorial_firststeps_modinfo.js +++ b/src/tutorials/tutorial_firststeps_modinfo.js @@ -16,7 +16,7 @@ function getTutorialSteps() },
function() {
unhighlight()
- tutorial.text = qsTr("We may re-visit this screen in later tutorials.")
+ tutorial.text = qsTr("We may revisit this screen in later tutorials.")
waitForClick()
}
]
diff --git a/src/tutorials/tutorial_firststeps_settings.js b/src/tutorials/tutorial_firststeps_settings.js index 1dd77d2e..b0e0c3c3 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", "nexusTab")
},
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 5af99237..7972cca4 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:
+ 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."))
+ 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:
+ case "bsaTab":
+ tooltipWidget("bsaList", qsTr("All the asset archives (.bsa files) for all active mods."))
+ break
+ case "dataTab":
tooltipWidget("dataTree", qsTr("The directory tree and all files that the program will see."))
break
- case 2:
+ 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 3:
+ case "downloadTab":
tooltipWidget("downloadView", qsTr("Shows the mods that have been downloaded and if they’ve been installed."))
break
}
diff --git a/src/tutorials/tutorials.js b/src/tutorials/tutorials.js index eb23eab7..cdb16d59 100644 --- a/src/tutorials/tutorials.js +++ b/src/tutorials/tutorials.js @@ -18,8 +18,9 @@ function highlightItem(widgetName, click) { function highlightAction(actionName, click) {
var rect = tutorialControl.getActionRect(actionName)
+ var offsetRect = tutorialControl.getMenuRect(actionName)
highlight.x = rect.x - 1
- highlight.y = rect.y - 1
+ highlight.y = rect.y + offsetRect.height
highlight.width = rect.width + 2
highlight.height = rect.height + 2
if (click) {
|
