From 0c6f9831489840bdb3e74f1cdaa1e6f970d8d428 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Mon, 23 Oct 2017 16:11:38 -0500 Subject: Fix up tutorial scripts * Patches for QtQuick 2.x * Fix up tab refs, names, and other out-of-date info --- src/tutorials/TooltipArea.qml | 2 +- src/tutorials/tutorial_conflictresolution_main.js | 20 +++---- src/tutorials/tutorial_firststeps_settings.js | 2 +- src/tutorials/tutorial_primer_main.js | 65 +++++++++++++---------- 4 files changed, 50 insertions(+), 39 deletions(-) (limited to 'src/tutorials') diff --git a/src/tutorials/TooltipArea.qml b/src/tutorials/TooltipArea.qml index b6b3d073..8d404beb 100644 --- a/src/tutorials/TooltipArea.qml +++ b/src/tutorials/TooltipArea.qml @@ -17,7 +17,7 @@ Rectangle { anchors.fill: parent hoverEnabled: true - onMousePositionChanged: { + onPositionChanged: { if (parent.parent.width - (parent.x + mouseX) < tooltip.width + 50) { tooltip.x = parent.x + mouseX - 15 - tooltip.width } else { diff --git a/src/tutorials/tutorial_conflictresolution_main.js b/src/tutorials/tutorial_conflictresolution_main.js index 00ca8d67..a60a5c8d 100644 --- a/src/tutorials/tutorial_conflictresolution_main.js +++ b/src/tutorials/tutorial_conflictresolution_main.js @@ -44,19 +44,19 @@ function getTutorialSteps() { }, function() { unhighlight() - tutorial.text = qsTr(" indicates that the mod overwrites files that are also available in another mod.") + tutorial.text = qsTr(" indicates that the mod overwrites files that are also available in another mod.") waitForClick() }, function() { - tutorial.text = qsTr(" indicates that the mod is partially overwritten by another.") + tutorial.text = qsTr(" indicates that the mod is partially overwritten by another.") waitForClick() }, function() { - tutorial.text = qsTr(" indicates that both of the above is true.") + tutorial.text = qsTr(" indicates that both of the above is true.") waitForClick() }, function() { - tutorial.text = qsTr(" indicates that the mod is completely overwrtten by another. You could as well disable it."); + tutorial.text = qsTr(" indicates that the mod is completely overwrtten 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", 1)) { highlightItem("tabWidget", false) waitForClick() } else { @@ -105,7 +105,7 @@ function getTutorialSteps() { waitForClick() }, function() { - tutorial.text = qsTr("Please open the \"ESPs\"-tab...") + tutorial.text = qsTr("Please open the \"Plugins\"-tab...") highlightItem("tabWidget", true) if (!tutorialControl.waitForTabOpen("tabWidget", 0)) { nextStep() @@ -120,17 +120,17 @@ function getTutorialSteps() { function() { unhighlight() tutorial.text = qsTr("Unlike with file conflicts, MO does not provide help on finding conflicts. The good news is, there " - +"already is a perfect tool for that called BOSS. BOSS is available on the Nexus and integrates " - +"neatly with MO. Basically, if you don't have BOSS yet, install it once this tutorial is over.") + +"already is a perfect tool for that called LOOT. LOOT is available on the Nexus and integrates " + +"neatly with MO. Basically, if you don't have LOOT yet, install it once this tutorial is over.") waitForClick() }, function() { - tutorial.text = qsTr("After you installed BOSS in the default location (follow its instructions), start MO again and BOSS should automatically appear as an Executable...") + tutorial.text = qsTr("After you installed LOOT in the default location (follow its instructions), start MO again and LOOT should automatically appear as an Executable...") highlightItem("startGroup", false) waitForClick() }, function() { - tutorial.text = qsTr("When you run BOSS, it will automatically re-organize plugins for best compatibility (overwriting your manual changes). " + tutorial.text = qsTr("When you run LOOT, it will automatically re-organize plugins for best compatibility (overwriting your manual changes). " +"It will also open a report in your browser that warns about incompatibilities. You should read the report, at least " +"for new mods.") waitForClick() diff --git a/src/tutorials/tutorial_firststeps_settings.js b/src/tutorials/tutorial_firststeps_settings.js index dd5c6e9c..1dd77d2e 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", 1) + tutorialControl.waitForTabOpen("tabWidget", 2) }, function() { diff --git a/src/tutorials/tutorial_primer_main.js b/src/tutorials/tutorial_primer_main.js index 7ef65df9..5d5597c1 100644 --- a/src/tutorials/tutorial_primer_main.js +++ b/src/tutorials/tutorial_primer_main.js @@ -4,29 +4,40 @@ var tooltips = [] function tooltipWidget(widgetName, explanation, maxheight, clickable) { - var rect = tutorialControl.getRect(widgetName) - var component = Qt.createComponent("TooltipArea.qml") - if (component.status === Component.Error) { - console.log("b" + component.errorString()) - } - if (typeof clickable === 'undefined') { - clickable = false - } - if ((typeof maxheight === 'undefined') || maxheight === 0) { - maxheight = rect.height - } - - var obj = component.createObject(tutToplevel, - { "x" : rect.x, - "y" : rect.y, - "width" : rect.width, - "height" : maxheight - }) - obj.tooltipText = explanation - obj.clickable = clickable - obj.visible = true + var component = Qt.createComponent("TooltipArea.qml") + if (component.status === Component.Ready) + finishCreation(component, widgetName, explanation, maxheight, clickable); + else + component.statusChanged.connect(function() { + finishCreation(component, widgetName, explanation, maxheight, clickable); + }); +} - tooltips.push(obj) +function finishCreation(component, widgetName, explanation, maxheight, clickable) { + if (component.status === Component.Ready) { + var rect = tutorialControl.getRect(widgetName) + if (typeof clickable === 'undefined') { + clickable = false + } + if ((typeof maxheight === 'undefined') || maxheight === 0) { + maxheight = rect.height + } + + var obj = component.createObject(tutToplevel, + { + "x": rect.x, + "y": rect.y, + "width": rect.width, + "height": maxheight + }) + obj.tooltipText = explanation + obj.clickable = clickable + obj.visible = true + + tooltips.push(obj) + } else if (component.status === Component.Error) { + console.log("Error loading component: " + component.errorString()) + } } function tooltipAction(actionName, explanation, maxheight, clickable) { @@ -79,16 +90,16 @@ function setupTooptips() { tooltipWidget("bossButton", qsTr("Automatically sort plugins using the bundled LOOT application.")) 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("bsaList", qsTr("All the asset archives (.bsa files) for all active mods.")) - break - case 2: tooltipWidget("dataTree", qsTr("The directory tree and all files that the program will see.")) break - case 3: + 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.")) break - case 4: + case 3: tooltipWidget("downloadView", qsTr("Shows the mods that have been downloaded and if they’ve been installed.")) break } -- cgit v1.3.1