summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Munro <brian.alexander.munro@gmail.com>2017-10-24 06:18:00 +0200
committerGitHub <noreply@github.com>2017-10-24 06:18:00 +0200
commit126f8deb55b64a17ba3acb677fd4283532855551 (patch)
tree8b6cb71a669fdb8dc7546e46863f12cb8216fdb7 /src
parent03608230acd0faa7d5fefdc11c75713a0b6c733e (diff)
parentf0f2112c1562ae123b0cd1f0b2f4f542322f2937 (diff)
Merge pull request #106 from Silarn/mainline_dev
Updates for tutorials and nexus description links
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/descriptionpage.h28
-rw-r--r--src/modinfodialog.cpp14
-rw-r--r--src/organizer_en.ts147
-rw-r--r--src/tutorials/Highlight.qml2
-rw-r--r--src/tutorials/Tooltip.qml2
-rw-r--r--src/tutorials/TooltipArea.qml4
-rw-r--r--src/tutorials/TutorialDescription.qml2
-rw-r--r--src/tutorials/TutorialOverlay.qml2
-rw-r--r--src/tutorials/tutorial_conflictresolution_main.js20
-rw-r--r--src/tutorials/tutorial_firststeps_settings.js2
-rw-r--r--src/tutorials/tutorial_primer_main.js63
-rw-r--r--src/tutorials/tutorials_installdialog.qml2
-rw-r--r--src/tutorials/tutorials_mainwindow.qml2
-rw-r--r--src/tutorials/tutorials_modinfodialog.qml2
-rw-r--r--src/tutorials/tutorials_nexusdialog.qml2
-rw-r--r--src/tutorials/tutorials_settingsdialog.qml2
17 files changed, 176 insertions, 121 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 833f7504..d5ebf6ae 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -171,6 +171,7 @@ SET(organizer_HDRS
instancemanager.h
usvfsconnector.h
eventfilter.h
+ descriptionpage.h
shared/windows_error.h
shared/error_report.h
diff --git a/src/descriptionpage.h b/src/descriptionpage.h
new file mode 100644
index 00000000..f6158ee0
--- /dev/null
+++ b/src/descriptionpage.h
@@ -0,0 +1,28 @@
+#include <QWebEnginePage>
+
+#ifndef DESCRIPTIONPAGE_H
+#define DESCRIPTIONPAGE_H
+
+class DescriptionPage : public QWebEnginePage
+{
+ Q_OBJECT
+
+public:
+ DescriptionPage(QObject* parent = 0) : QWebEnginePage(parent){}
+
+ bool acceptNavigationRequest(const QUrl & url, QWebEnginePage::NavigationType type, bool isMainFrame)
+ {
+ if (type == QWebEnginePage::NavigationTypeLinkClicked)
+ {
+ emit linkClicked(url);
+ return false;
+ }
+ return true;
+ }
+
+signals:
+ void linkClicked(const QUrl&);
+
+};
+
+#endif //DESCRIPTIONPAGE_H
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index c96c2b4a..c586c6b6 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -19,6 +19,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "modinfodialog.h"
#include "ui_modinfodialog.h"
+#include "descriptionpage.h"
#include "iplugingame.h"
#include "nexusinterface.h"
@@ -38,6 +39,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include <QMenu>
#include <QFileSystemModel>
#include <QInputDialog>
+#include <QPointer>
#include <Shlwapi.h>
@@ -85,10 +87,12 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo
ui->notesEdit->setText(modInfo->notes());
+ 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&)));
connect(m_ModInfo.data(), SIGNAL(modDetailsUpdated(bool)), this, SLOT(modDetailsUpdated(bool)));
- connect(ui->descriptionView, SIGNAL(linkClicked(QUrl)), this, SLOT(linkClicked(QUrl)));
+ connect(ui->descriptionView->page(), SIGNAL(linkClicked(QUrl)), this, SLOT(linkClicked(QUrl)));
//TODO: No easy way to delegate links
//ui->descriptionView->page()->acceptNavigationRequest(QWebEnginePage::DelegateAllLinks);
@@ -826,11 +830,13 @@ void ModInfoDialog::modDetailsUpdated(bool success)
"<body>%1</body>"
"</html>").arg(BBCode::convertToHTML(nexusDescription));
+ ui->descriptionView->page()->setHtml(descriptionAsHTML);
+
// QString descriptionAsHTML = BBCode::convertToHTML(result["description"].toString());
- ui->descriptionView->setHtml(descriptionAsHTML);
+ // ui->descriptionView->setHtml(descriptionAsHTML);
} else {
// ui->descriptionView->setHtml(result["summary"].toString().append(QString("\r\n") + tr("(description incomplete, please visit nexus)")));
- ui->descriptionView->setHtml(tr("(description incomplete, please visit nexus)"));
+ ui->descriptionView->page()->setHtml(tr("(description incomplete, please visit nexus)"));
}
updateVersionColor();
@@ -876,7 +882,7 @@ void ModInfoDialog::on_modIDEdit_editingFinished()
if (oldID != modID){
m_ModInfo->setNexusID(modID);
- ui->descriptionView->setHtml("");
+ ui->descriptionView->page()->setHtml("");
if (modID != 0) {
m_RequestStarted = false;
refreshNexusData(modID);
diff --git a/src/organizer_en.ts b/src/organizer_en.ts
index 535c16a5..15785d1f 100644
--- a/src/organizer_en.ts
+++ b/src/organizer_en.ts
@@ -2989,227 +2989,227 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="176"/>
+ <location filename="modinfodialog.cpp" line="178"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="177"/>
+ <location filename="modinfodialog.cpp" line="179"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="178"/>
+ <location filename="modinfodialog.cpp" line="180"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="179"/>
+ <location filename="modinfodialog.cpp" line="181"/>
<source>&amp;Unhide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="180"/>
+ <location filename="modinfodialog.cpp" line="182"/>
<source>&amp;Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="181"/>
+ <location filename="modinfodialog.cpp" line="183"/>
<source>&amp;New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="431"/>
- <location filename="modinfodialog.cpp" line="446"/>
+ <location filename="modinfodialog.cpp" line="433"/>
+ <location filename="modinfodialog.cpp" line="448"/>
<source>Save changes?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="431"/>
- <location filename="modinfodialog.cpp" line="446"/>
+ <location filename="modinfodialog.cpp" line="433"/>
+ <location filename="modinfodialog.cpp" line="448"/>
<source>Save changes to &quot;%1&quot;?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="636"/>
+ <location filename="modinfodialog.cpp" line="638"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="636"/>
+ <location filename="modinfodialog.cpp" line="638"/>
<source>A file with that name exists, please enter a new one</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="653"/>
+ <location filename="modinfodialog.cpp" line="655"/>
<source>failed to move file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="678"/>
+ <location filename="modinfodialog.cpp" line="680"/>
<source>failed to create directory &quot;optional&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="718"/>
- <location filename="modinfodialog.cpp" line="1222"/>
+ <location filename="modinfodialog.cpp" line="720"/>
+ <location filename="modinfodialog.cpp" line="1230"/>
<source>Info requested, please wait</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="772"/>
+ <location filename="modinfodialog.cpp" line="774"/>
<source>Main</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="773"/>
+ <location filename="modinfodialog.cpp" line="775"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="774"/>
+ <location filename="modinfodialog.cpp" line="776"/>
<source>Optional</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="775"/>
+ <location filename="modinfodialog.cpp" line="777"/>
<source>Old</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="776"/>
+ <location filename="modinfodialog.cpp" line="778"/>
<source>Misc</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="777"/>
+ <location filename="modinfodialog.cpp" line="779"/>
<source>Unknown</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="788"/>
+ <location filename="modinfodialog.cpp" line="790"/>
<source>Current Version: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="792"/>
+ <location filename="modinfodialog.cpp" line="794"/>
<source>No update available</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="833"/>
+ <location filename="modinfodialog.cpp" line="841"/>
<source>(description incomplete, please visit nexus)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="848"/>
+ <location filename="modinfodialog.cpp" line="856"/>
<source>&lt;a href=&quot;%1&quot;&gt;Visit on Nexus&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="926"/>
+ <location filename="modinfodialog.cpp" line="934"/>
<source>Failed to delete %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="937"/>
- <location filename="modinfodialog.cpp" line="942"/>
+ <location filename="modinfodialog.cpp" line="945"/>
+ <location filename="modinfodialog.cpp" line="950"/>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="937"/>
+ <location filename="modinfodialog.cpp" line="945"/>
<source>Are sure you want to delete &quot;%1&quot;?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="942"/>
+ <location filename="modinfodialog.cpp" line="950"/>
<source>Are sure you want to delete the selected files?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1016"/>
- <location filename="modinfodialog.cpp" line="1022"/>
+ <location filename="modinfodialog.cpp" line="1024"/>
+ <location filename="modinfodialog.cpp" line="1030"/>
<source>New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1028"/>
+ <location filename="modinfodialog.cpp" line="1036"/>
<source>Failed to create &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1132"/>
- <location filename="modinfodialog.cpp" line="1156"/>
+ <location filename="modinfodialog.cpp" line="1140"/>
+ <location filename="modinfodialog.cpp" line="1164"/>
<source>Replace file?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1132"/>
+ <location filename="modinfodialog.cpp" line="1140"/>
<source>There already is a hidden version of this file. Replace it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1135"/>
- <location filename="modinfodialog.cpp" line="1159"/>
+ <location filename="modinfodialog.cpp" line="1143"/>
+ <location filename="modinfodialog.cpp" line="1167"/>
<source>File operation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1135"/>
- <location filename="modinfodialog.cpp" line="1159"/>
+ <location filename="modinfodialog.cpp" line="1143"/>
+ <location filename="modinfodialog.cpp" line="1167"/>
<source>Failed to remove &quot;%1&quot;. Maybe you lack the required file permissions?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1146"/>
- <location filename="modinfodialog.cpp" line="1169"/>
+ <location filename="modinfodialog.cpp" line="1154"/>
+ <location filename="modinfodialog.cpp" line="1177"/>
<source>failed to rename %1 to %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1156"/>
+ <location filename="modinfodialog.cpp" line="1164"/>
<source>There already is a visible version of this file. Replace it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1202"/>
+ <location filename="modinfodialog.cpp" line="1210"/>
<source>Un-Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1204"/>
+ <location filename="modinfodialog.cpp" line="1212"/>
<source>Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1245"/>
+ <location filename="modinfodialog.cpp" line="1253"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1245"/>
+ <location filename="modinfodialog.cpp" line="1253"/>
<source>Please enter a name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1249"/>
- <location filename="modinfodialog.cpp" line="1252"/>
+ <location filename="modinfodialog.cpp" line="1257"/>
+ <location filename="modinfodialog.cpp" line="1260"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1249"/>
+ <location filename="modinfodialog.cpp" line="1257"/>
<source>Invalid name. Must be a valid file name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1252"/>
+ <location filename="modinfodialog.cpp" line="1260"/>
<source>A tweak by that name exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1266"/>
+ <location filename="modinfodialog.cpp" line="1274"/>
<source>Create Tweak</source>
<translation type="unfinished"></translation>
</message>
@@ -3870,7 +3870,8 @@ Continue?</source>
</message>
<message>
<location filename="pluginlist.cpp" line="105"/>
- <source>The modindex determins the formids of objects originating from this mods.</source>
+ <source>The modindex determines the formids of objects originating from this mods.</source>
+ <oldsource>The modindex determins the formids of objects originating from this mods.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
@@ -3905,37 +3906,37 @@ Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="pluginlist.cpp" line="769"/>
+ <location filename="pluginlist.cpp" line="783"/>
<source>This plugin can&apos;t be disabled (enforced by the game)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="pluginlist.cpp" line="771"/>
+ <location filename="pluginlist.cpp" line="785"/>
<source>&lt;b&gt;Origin&lt;/b&gt;: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="pluginlist.cpp" line="773"/>
+ <location filename="pluginlist.cpp" line="787"/>
<source>Author</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="pluginlist.cpp" line="776"/>
+ <location filename="pluginlist.cpp" line="790"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="pluginlist.cpp" line="779"/>
+ <location filename="pluginlist.cpp" line="793"/>
<source>Missing Masters</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="pluginlist.cpp" line="786"/>
+ <location filename="pluginlist.cpp" line="800"/>
<source>Enabled Masters</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="pluginlist.cpp" line="957"/>
+ <location filename="pluginlist.cpp" line="971"/>
<source>failed to restore load order for %1</source>
<translation type="unfinished"></translation>
</message>
@@ -5628,22 +5629,26 @@ On Windows XP:
</message>
<message>
<location filename="tutorials/tutorial_conflictresolution_main.js" line="47"/>
- <source>&lt;img src=&quot;:/MO/gui/emblem_conflict_overwrite&quot; /&gt; indicates that the mod overwrites files that are also available in another mod.</source>
+ <source>&lt;img src=&quot;qrc:///MO/gui/emblem_conflict_overwrite&quot; /&gt; indicates that the mod overwrites files that are also available in another mod.</source>
+ <oldsource>&lt;img src=&quot;:/MO/gui/emblem_conflict_overwrite&quot; /&gt; indicates that the mod overwrites files that are also available in another mod.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="tutorials/tutorial_conflictresolution_main.js" line="51"/>
- <source>&lt;img src=&quot;:/MO/gui/emblem_conflict_overwritten&quot; /&gt; indicates that the mod is &lt;b&gt;partially&lt;/b&gt; overwritten by another.</source>
+ <source>&lt;img src=&quot;qrc:///MO/gui/emblem_conflict_overwritten&quot; /&gt; indicates that the mod is &lt;b&gt;partially&lt;/b&gt; overwritten by another.</source>
+ <oldsource>&lt;img src=&quot;:/MO/gui/emblem_conflict_overwritten&quot; /&gt; indicates that the mod is &lt;b&gt;partially&lt;/b&gt; overwritten by another.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="tutorials/tutorial_conflictresolution_main.js" line="55"/>
- <source>&lt;img src=&quot;:/MO/gui/emblem_conflict_mixed&quot; /&gt; indicates that both of the above is true.</source>
+ <source>&lt;img src=&quot;qrc:///MO/gui/emblem_conflict_mixed&quot; /&gt; indicates that both of the above is true.</source>
+ <oldsource>&lt;img src=&quot;:/MO/gui/emblem_conflict_mixed&quot; /&gt; indicates that both of the above is true.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="tutorials/tutorial_conflictresolution_main.js" line="59"/>
- <source>&lt;img src=&quot;:/MO/gui/emblem_conflict_redundant&quot; /&gt; indicates that the mod is completely overwrtten by another. You could as well disable it.</source>
+ <source>&lt;img src=&quot;qrc:///MO/gui/emblem_conflict_redundant&quot; /&gt; indicates that the mod is completely overwrtten by another. You could as well disable it.</source>
+ <oldsource>&lt;img src=&quot;:/MO/gui/emblem_conflict_redundant&quot; /&gt; indicates that the mod is completely overwrtten by another. You could as well disable it.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
@@ -5684,7 +5689,8 @@ On Windows XP:
</message>
<message>
<location filename="tutorials/tutorial_conflictresolution_main.js" line="108"/>
- <source>Please open the &quot;ESPs&quot;-tab...</source>
+ <source>Please open the &quot;Plugins&quot;-tab...</source>
+ <oldsource>Please open the &quot;ESPs&quot;-tab...</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
@@ -5694,17 +5700,20 @@ On Windows XP:
</message>
<message>
<location filename="tutorials/tutorial_conflictresolution_main.js" line="122"/>
- <source>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&apos;t have BOSS yet, install it once this tutorial is over.</source>
+ <source>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 LOOT. LOOT is available on the Nexus and integrates neatly with MO. Basically, if you don&apos;t have LOOT yet, install it once this tutorial is over.</source>
+ <oldsource>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&apos;t have BOSS yet, install it once this tutorial is over.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="tutorials/tutorial_conflictresolution_main.js" line="128"/>
- <source>After you installed BOSS in the default location (follow its instructions), start MO again and BOSS should automatically appear as an Executable...</source>
+ <source>After you installed LOOT in the default location (follow its instructions), start MO again and LOOT should automatically appear as an Executable...</source>
+ <oldsource>After you installed BOSS in the default location (follow its instructions), start MO again and BOSS should automatically appear as an Executable...</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="tutorials/tutorial_conflictresolution_main.js" line="133"/>
- <source>When you run BOSS, 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.</source>
+ <source>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.</source>
+ <oldsource>When you run BOSS, 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.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/src/tutorials/Highlight.qml b/src/tutorials/Highlight.qml
index 55474c91..b6fb7676 100644
--- a/src/tutorials/Highlight.qml
+++ b/src/tutorials/Highlight.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
Rectangle {
radius: 10
diff --git a/src/tutorials/Tooltip.qml b/src/tutorials/Tooltip.qml
index 6424d9ab..cca71efa 100644
--- a/src/tutorials/Tooltip.qml
+++ b/src/tutorials/Tooltip.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
Rectangle {
diff --git a/src/tutorials/TooltipArea.qml b/src/tutorials/TooltipArea.qml
index 48a50f76..8d404beb 100644
--- a/src/tutorials/TooltipArea.qml
+++ b/src/tutorials/TooltipArea.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
Rectangle {
radius: 2
@@ -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/TutorialDescription.qml b/src/tutorials/TutorialDescription.qml
index 498573d2..4079b70d 100644
--- a/src/tutorials/TutorialDescription.qml
+++ b/src/tutorials/TutorialDescription.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
// rectangle for description texts
Rectangle {
diff --git a/src/tutorials/TutorialOverlay.qml b/src/tutorials/TutorialOverlay.qml
index 15fe9603..47e5065d 100644
--- a/src/tutorials/TutorialOverlay.qml
+++ b/src/tutorials/TutorialOverlay.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
import "tutorials.js" as Logic
Rectangle {
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("<img src=\":/MO/gui/emblem_conflict_overwrite\" /> indicates that the mod overwrites files that are also available in another mod.")
+ tutorial.text = qsTr("<img src=\"qrc:///MO/gui/emblem_conflict_overwrite\" /> indicates that the mod overwrites files that are also available in another mod.")
waitForClick()
},
function() {
- tutorial.text = qsTr("<img src=\":/MO/gui/emblem_conflict_overwritten\" /> indicates that the mod is <b>partially</b> overwritten by another.")
+ tutorial.text = qsTr("<img src=\"qrc:///MO/gui/emblem_conflict_overwritten\" /> indicates that the mod is <b>partially</b> overwritten by another.")
waitForClick()
},
function() {
- tutorial.text = qsTr("<img src=\":/MO/gui/emblem_conflict_mixed\" /> indicates that both of the above is true.")
+ tutorial.text = qsTr("<img src=\"qrc:///MO/gui/emblem_conflict_mixed\" /> indicates that both of the above is true.")
waitForClick()
},
function() {
- tutorial.text = qsTr("<img src=\":/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 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 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);
+ });
+}
- 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
+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
+ }
- tooltips.push(obj)
+ 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
}
diff --git a/src/tutorials/tutorials_installdialog.qml b/src/tutorials/tutorials_installdialog.qml
index 33f0a660..9cc21097 100644
--- a/src/tutorials/tutorials_installdialog.qml
+++ b/src/tutorials/tutorials_installdialog.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
TutorialOverlay {
id: tutorial
diff --git a/src/tutorials/tutorials_mainwindow.qml b/src/tutorials/tutorials_mainwindow.qml
index 0012b686..0d660a29 100644
--- a/src/tutorials/tutorials_mainwindow.qml
+++ b/src/tutorials/tutorials_mainwindow.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
TutorialOverlay {
id: tutorial
diff --git a/src/tutorials/tutorials_modinfodialog.qml b/src/tutorials/tutorials_modinfodialog.qml
index e9a56cb3..74f6adfa 100644
--- a/src/tutorials/tutorials_modinfodialog.qml
+++ b/src/tutorials/tutorials_modinfodialog.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
TutorialOverlay {
id: tutorial
diff --git a/src/tutorials/tutorials_nexusdialog.qml b/src/tutorials/tutorials_nexusdialog.qml
index 6a7af6d6..9fb9aafd 100644
--- a/src/tutorials/tutorials_nexusdialog.qml
+++ b/src/tutorials/tutorials_nexusdialog.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
TutorialOverlay {
id: tutorial
diff --git a/src/tutorials/tutorials_settingsdialog.qml b/src/tutorials/tutorials_settingsdialog.qml
index e9a56cb3..74f6adfa 100644
--- a/src/tutorials/tutorials_settingsdialog.qml
+++ b/src/tutorials/tutorials_settingsdialog.qml
@@ -1,4 +1,4 @@
-import QtQuick 1.1
+import QtQuick 2.7
TutorialOverlay {
id: tutorial