From 495846534d560f825819b7ee391e8c461ce76e4f Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 7 Dec 2015 20:09:34 +0100 Subject: - no longer displaying "not logged in". This was too confusing for some - fixed files missing from vfs if parent directory exists in real destination dir - implemented plugin api to access current profile - steam game detection now also works for 64-bit games - removed reference to archive tab from tutorial - usvfs log level is now taken from config - some cleanup --- src/tutorials/tutorial_firststeps_main.js | 36 ------------------------------- 1 file changed, 36 deletions(-) (limited to 'src/tutorials') diff --git a/src/tutorials/tutorial_firststeps_main.js b/src/tutorials/tutorial_firststeps_main.js index 2bc270d7..c47b5c0d 100644 --- a/src/tutorials/tutorial_firststeps_main.js +++ b/src/tutorials/tutorial_firststeps_main.js @@ -144,42 +144,6 @@ function getTutorialSteps() applicationWindow.modInfoDisplayed.connect(nextStep) }, - function() { - tutorial.text = qsTr("Another special type of files are BSAs. These are bundles of game resources. " - + "Please open the \"Archives\"-tab.") - if (tutorialControl.waitForTabOpen("tabWidget", 1)) { - highlightItem("tabWidget", true) - } else { - waitForClick() - } - }, - - function() { - tutorial.text = qsTr("These archives can be a real headache because the way bsas interact " - + "with non-bundled resources is complicated. The game can even crash if required " - + "archives are not loaded or ordered incorrectly.") - waitForClick() - }, - - function() { - tutorial.text = qsTr("MO applies some \"magic\" to make all BSAs that are checked in this list load in " - + "the correct order interleaved with the non-bundled resources.") - waitForClick() - }, - - function() { - tutorial.text = qsTr("You can disable this magic to make MO behave more like other tools. In this case " - + "their load order follows that of the corresponding plugin (.esp).") - highlightItem("managedArchiveLabel", false) - waitForClick() - }, - - function() { - tutorial.text = qsTr("Many BSAs will appear grayed out and enabled. These mods are loaded by the game engine " - + "automatically so they can't be disabled here.") - waitForClick() - }, - function() { tutorial.text = qsTr("Now you know how to download, install and enable mods.\n" + "It's important you always start the game from inside MO, otherwise " -- cgit v1.3.1 From a611c355ce732961c2a9ba1a8909f0c144afa860 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Fri, 20 Oct 2017 20:27:06 -0500 Subject: Basic ESL updates --- src/activatemodsdialog.ui | 4 +- src/mainwindow.ui | 2 +- src/modinfodialog.cpp | 3 +- src/modinfodialog.ui | 4 +- src/modinforegular.cpp | 4 +- src/modlist.cpp | 4 +- src/organizer_en.ts | 691 +++++++++++----------- src/organizer_en_US.ts | 14 +- src/organizercore.cpp | 18 +- src/pluginlist.cpp | 2 +- src/settingsdialog.ui | 2 +- src/tutorials/tutorial_conflictresolution_main.js | 2 +- src/tutorials/tutorial_primer_main.js | 2 +- 13 files changed, 384 insertions(+), 368 deletions(-) (limited to 'src/tutorials') diff --git a/src/activatemodsdialog.ui b/src/activatemodsdialog.ui index f6124bbc..cd8b0eec 100644 --- a/src/activatemodsdialog.ui +++ b/src/activatemodsdialog.ui @@ -17,14 +17,14 @@ - This is a list of esps and esms that were active when the save game was created. + This is a list of esps, esms, and esls that were active when the save game was created. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps, esms, and esls that were active when the save game was created.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html> diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 4b5467ed..743ce012 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -846,7 +846,7 @@ p, li { white-space: pre-wrap; } <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps and esms contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps, esms, and esls contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> true diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 0e77859a..c96c2b4a 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -314,7 +314,8 @@ void ModInfoDialog::refreshLists() ui->iniFileList->addItem(namePart); } } else if (fileName.endsWith(".esp", Qt::CaseInsensitive) || - fileName.endsWith(".esm", Qt::CaseInsensitive)) { + fileName.endsWith(".esm", Qt::CaseInsensitive) || + fileName.endsWith(".esl", Qt::CaseInsensitive)) { QString relativePath = fileName.mid(m_RootPath.length() + 1); if (relativePath.contains('/')) { QFileInfo fileInfo(fileName); diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui index a452bc59..25822fd0 100644 --- a/src/modinfodialog.ui +++ b/src/modinfodialog.ui @@ -279,10 +279,10 @@ - List of esps and esms that can not be loaded by the game. + List of esps, esms, and esls that can not be loaded by the game. - List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. + List of esps, esms, and esls contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. Most mods do not have optional esps, so chances are good you are looking at an empty list. diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index 231e5497..bacc21f7 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -430,7 +430,7 @@ std::vector ModInfoRegular::getContents() const if (m_LastContentCheck.isNull() || (m_LastContentCheck.secsTo(now) > 60)) { m_CachedContent.clear(); QDir dir(absolutePath()); - if (dir.entryList(QStringList() << "*.esp" << "*.esm").size() > 0) { + if (dir.entryList(QStringList() << "*.esp" << "*.esm" << "*.esl").size() > 0) { m_CachedContent.push_back(CONTENT_PLUGIN); } if (dir.entryList(QStringList() << "*.bsa" << "*.ba2").size() > 0) { @@ -476,7 +476,7 @@ int ModInfoRegular::getHighlight() const QString ModInfoRegular::getDescription() const { if (!isValid()) { - return tr("%1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory").arg(name()); + return tr("%1 contains no esp/esm/esl and no asset (textures, meshes, interface, ...) directory").arg(name()); } else { const std::set &categories = getCategories(); std::wostringstream categoryString; diff --git a/src/modlist.cpp b/src/modlist.cpp index fca98aac..0aea7a98 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -60,7 +60,7 @@ ModList::ModList(QObject *parent) , m_FontMetrics(QFont()) , m_DropOnItems(false) { - m_ContentIcons[ModInfo::CONTENT_PLUGIN] = std::make_tuple(":/MO/gui/content/plugin", tr("Game plugins (esp/esm)")); + m_ContentIcons[ModInfo::CONTENT_PLUGIN] = std::make_tuple(":/MO/gui/content/plugin", tr("Game plugins (esp/esm/esl)")); m_ContentIcons[ModInfo::CONTENT_INTERFACE] = std::make_tuple(":/MO/gui/content/interface", tr("Interface")); m_ContentIcons[ModInfo::CONTENT_MESH] = std::make_tuple(":/MO/gui/content/mesh", tr("Meshes")); m_ContentIcons[ModInfo::CONTENT_BSA] = std::make_tuple(":/MO/gui/content/bsa", tr("BSA")); @@ -1026,7 +1026,7 @@ QString ModList::getColumnToolTip(int column) case COL_FLAGS: return tr("Emblemes to highlight things that might require attention."); case COL_CONTENT: return tr("Depicts the content of the mod:
" "" - "" + "" "" "" "" diff --git a/src/organizer_en.ts b/src/organizer_en.ts index da3a3c6e..f73717f2 100644 --- a/src/organizer_en.ts +++ b/src/organizer_en.ts @@ -64,7 +64,7 @@ - This is a list of esps and esms that were active when the save game was created. + This is a list of esps, esms, and esls that were active when the save game was created. @@ -73,7 +73,7 @@ <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps, esms, and esls that were active when the save game was created.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html> @@ -1325,13 +1325,13 @@ p, li { white-space: pre-wrap; } - + Restore Backup... - + Create Backup @@ -1362,8 +1362,8 @@ p, li { white-space: pre-wrap; } - - + + Namefilter @@ -1431,74 +1431,74 @@ p, li { white-space: pre-wrap; } - + List of available esp/esm files - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps and esms contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps, esms, and esls contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> - + Data - + refresh data-directory overview - + Refresh the overview. This may take a moment. - - - + + + Refresh - + This is an overview of your data directory as visible to the game (and tools). - + File - + Mod - + Filter the above list so that only conflicts are displayed. - + Show only conflicts - + Saves - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1509,155 +1509,155 @@ p, li { white-space: pre-wrap; } - + Downloads - + This is a list of mods you downloaded from Nexus. Double click one to install it. You can also drag an archive into here. - + Show Hidden - + Tool Bar - + Install Mod - + Install &Mod - + Install a new mod from an archive - + Ctrl+M - + Profiles - + &Profiles - + Configure Profiles - + Ctrl+P - + Executables - + &Executables - + Configure the executables that can be started through Mod Organizer - + Ctrl+E - - + + Tools - + &Tools - + Ctrl+I - + Settings - + &Settings - + Configure settings and workarounds - + Ctrl+S - + Nexus - + Search nexus network for more mods - + Ctrl+N - - + + Update - + Mod Organizer is up-to-date - + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1665,44 +1665,44 @@ Right now this has very limited functionality - + Help - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Copy Log to Clipboard - + Ctrl+C - + Change Game - + Open the game selection dialog @@ -1817,469 +1817,469 @@ Right now this has very limited functionality - + Also in: <br> - + No conflict - + <Edit...> - + Activating Network Proxy - + 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 open %1 - + failed to change origin name: %1 - + failed to move "%1" from mod "%2" to "%3": %4 - + <Contains %1> - + <Checked> - + <Unchecked> - + <Update> - + <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. - + You need to be logged in with Nexus to resume a download - - + + You need to be logged in with Nexus to endorse - + Failed to display overwrite dialog: %1 - + Nexus ID for this Mod is unknown - + Web page for this mod is unknown - - - + + + Create Mod... - + This will create an empty mod. Please enter a name: - - + + A mod with this name already exists - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Not logged in, endorsement information will be wrong - + 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? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... - + Create empty mod - + Enable all visible - + Disable all visible - + Check all for update - + Export to csv... - + All Mods - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Add/Remove Categories - + Replace Categories - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... - + Remove Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Visit web page - + Open in explorer - + 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. @@ -2287,12 +2287,12 @@ This function will guess the versioning scheme under the assumption that the ins - + Enable Mods... - + Delete %n save(s) @@ -2300,319 +2300,319 @@ This function will guess the versioning scheme under the assumption that the ins - + failed to remove %1 - + failed to create %1 - + Can't change download directory while downloads are in progress! - + failed to write to file %1 - + %1 written - + Select binary - + Binary - + 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? - + file not found: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available - + Open/Execute - + Add as Executable - + Preview - + Un-Hide - + Hide - + Write To File... - + Do you want to endorse Mod Organizer on %1 now? - + Thank you! - + Thank you for your endorsement! - + 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. - + Are you sure? - + This will restart MO, continue? - + Edit Categories... - + Deselect filter - + Remove - + Enable all - + Disable all - + Unlock load order - + Lock load order - + 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 occured - + 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 modlist created - + A file with the same name has already been downloaded. What would you like to do? - + Overwrite - + Rename new file - + Ignore file @@ -2793,12 +2793,12 @@ This function will guess the versioning scheme under the assumption that the ins - List of esps and esms that can not be loaded by the game. + List of esps, esms, and esls that can not be loaded by the game. - List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. + List of esps, esms, and esls contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. Most mods do not have optional esps, so chances are good you are looking at an empty list. @@ -2989,227 +2989,227 @@ p, li { white-space: pre-wrap; } - + &Delete - + &Rename - + &Hide - + &Unhide - + &Open - + &New Folder - - + + Save changes? - - + + Save changes to "%1"? - + File Exists - + A file with that name exists, please enter a new one - + failed to move file - + failed to create directory "optional" - - + + Info requested, please wait - + Main - + Update - + Optional - + Old - + Misc - + Unknown - + Current Version: %1 - + No update available - + (description incomplete, please visit nexus) - + <a href="%1">Visit on Nexus</a> - + Failed to delete %1 - - + + Confirm - + Are sure you want to delete "%1"? - + Are sure you want to delete the selected files? - - + + New Folder - + Failed to create "%1" - - + + 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? - - + + failed to rename %1 to %2 - + There already is a visible version of this file. Replace it? - + Un-Hide - + Hide - + Name - + Please enter a name - - + + Error - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak @@ -3593,147 +3593,147 @@ p, li { white-space: pre-wrap; } - - + + Installation successful - - + + Configure Mod - - + + This mod contains ini tweaks. Do you want to configure them now? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Executable "%1" not found - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Error - + No profile set - + Failed to refresh list of esps: %1 - + Multiple esps activated, please check that they don't conflict. - + Download? - + A download has been started but no installed page plugin recognizes it. If you download anyway no information (i.e. version) will be associated with the download. Continue? - + failed to update mod list: %1 - - + + login successful - + Login failed - + Login failed, try again? - + login failed: %1. Download will not be associated with an account - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - - Too many esps and esms enabled + + Too many esps, esms, and esls enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + failed to save load order: %1 - + The designated write target "%1" is not enabled. @@ -4338,7 +4338,7 @@ p, li { white-space: pre-wrap; } - + invalid game type %1 @@ -4509,7 +4509,8 @@ p, li { white-space: pre-wrap; } - ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to modorganizer@gmail.com, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened @@ -4570,13 +4571,13 @@ p, li { white-space: pre-wrap; } - - + + <Manage...> - + failed to parse profile %1: %2 @@ -4764,52 +4765,52 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + New update available (%1) - + Install - + Download failed - + Failed to find correct download, please try again later. - + Update - + Download in progress - + Download failed: %1 - + Failed to install update: %1 - + Failed to start %1: %2 - + Error @@ -5318,7 +5319,7 @@ Uncheck this if you want to use Mod Organizer with total conversions (like Nehri By default Mod Organizer will display esp+bsa bundles installed with foreign tools as mods (left pane). This allows you to control their priority in relation to other mods. This is particularly useful if you also use Steam Workshop to install mods. However, if you installed loose file mods outside MO which conflict with BSAs also installed outside MO those conflicts can't be resolved correctly. -If you disable this feature, MO will only display official DLCs this way. Please note that plugins (esps and esms) displayed in the right pane are completely unaffected by this feature. +If you disable this feature, MO will only display official DLCs this way. Please note that plugins (esps, esms, and esls) displayed in the right pane are completely unaffected by this feature. diff --git a/src/organizer_en_US.ts b/src/organizer_en_US.ts index 075132c2..4e657785 100644 --- a/src/organizer_en_US.ts +++ b/src/organizer_en_US.ts @@ -54,7 +54,7 @@ - This is a list of esps and esms that were active when the save game was created. + This is a list of esps, esms, and esls that were active when the save game was created. @@ -63,7 +63,7 @@ <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps, esms, and esls that were active when the save game was created.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html> @@ -1467,7 +1467,7 @@ p, li { white-space: pre-wrap; } <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps and esms contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps, esms, and esls contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> @@ -1993,7 +1993,7 @@ Continue? - Too many esps and esms enabled + Too many esps, esms, and esls enabled @@ -2937,12 +2937,12 @@ This function will guess the versioning scheme under the assumption that the ins - List of esps and esms that can not be loaded by the game. + List of esps, esms, and esls that can not be loaded by the game. - List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. + List of esps, esms, and esls contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. Most mods do not have optional esps, so chances are good you are looking at an empty list. @@ -5177,7 +5177,7 @@ Uncheck this if you want to use Mod Organizer with total conversions (like Nehri By default Mod Organizer will display esp+bsa bundles installed with foreign tools as mods (left pane). This allows you to control their priority in relation to other mods. This is particularly useful if you also use Steam Workshop to install mods. However, if you installed loose file mods outside MO which conflict with BSAs also installed outside MO those conflicts can't be resolved correctly. -If you disable this feature, MO will only display official DLCs this way. Please note that plugins (esps and esms) displayed in the right pane are completely unaffected by this feature. +If you disable this feature, MO will only display official DLCs this way. Please note that plugins (esps, esms, and esls) displayed in the right pane are completely unaffected by this feature. diff --git a/src/organizercore.cpp b/src/organizercore.cpp index d9ed6ab6..c55504a8 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -1413,6 +1413,20 @@ void OrganizerCore::updateModActiveState(int index, bool active) m_PluginList.enableESP(esm, active); } int enabled = 0; + for (const QString &esl : + dir.entryList(QStringList() << "*.esl", QDir::Files)) { + const FileEntry::Ptr file = m_DirectoryStructure->findFile(ToWString(esl)); + if (file.get() == nullptr) { + qWarning("failed to activate %s", qPrintable(esl)); + continue; + } + + if (active != m_PluginList.isEnabled(esl) + && file->getAlternatives().empty()) { + m_PluginList.enableESP(esl, active); + ++enabled; + } + } QStringList esps = dir.entryList(QStringList() << "*.esp", QDir::Files); for (const QString &esp : esps) { const FileEntry::Ptr file = m_DirectoryStructure->findFile(ToWString(esp)); @@ -1429,7 +1443,7 @@ void OrganizerCore::updateModActiveState(int index, bool active) } if (active && (enabled > 1)) { MessageDialog::showMessage( - tr("Multiple esps activated, please check that they don't conflict."), + tr("Multiple esps/esls activated, please check that they don't conflict."), qApp->activeWindow()); } m_PluginList.refreshLoadOrder(); @@ -1723,7 +1737,7 @@ QString OrganizerCore::shortDescription(unsigned int key) const { switch (key) { case PROBLEM_TOOMANYPLUGINS: { - return tr("Too many esps and esms enabled"); + return tr("Too many esps, esms, and esls enabled"); } break; default: { return tr("Description missing"); diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index a4d8561c..f2c52d5b 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -135,7 +135,7 @@ void PluginList::refresh(const QString &profileName QString extension = filename.right(3).toLower(); - if ((extension == "esp") || (extension == "esm")) { + if ((extension == "esp") || (extension == "esm") || (extension == "esl")) { bool forceEnabled = Settings::instance().forceEnableCoreFiles() && std::find(primaryPlugins.begin(), primaryPlugins.end(), filename.toLower()) != primaryPlugins.end(); diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index a38530da..f5e37ea6 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -970,7 +970,7 @@ Uncheck this if you want to use Mod Organizer with total conversions (like Nehri By default Mod Organizer will display esp+bsa bundles installed with foreign tools as mods (left pane). This allows you to control their priority in relation to other mods. This is particularly useful if you also use Steam Workshop to install mods. However, if you installed loose file mods outside MO which conflict with BSAs also installed outside MO those conflicts can't be resolved correctly. -If you disable this feature, MO will only display official DLCs this way. Please note that plugins (esps and esms) displayed in the right pane are completely unaffected by this feature. +If you disable this feature, MO will only display official DLCs this way. Please note that plugins (esps, esms, and esls) displayed in the right pane are completely unaffected by this feature. Display mods installed outside MO diff --git a/src/tutorials/tutorial_conflictresolution_main.js b/src/tutorials/tutorial_conflictresolution_main.js index 3a7160c6..00ca8d67 100644 --- a/src/tutorials/tutorial_conflictresolution_main.js +++ b/src/tutorials/tutorial_conflictresolution_main.js @@ -93,7 +93,7 @@ function getTutorialSteps() { waitForClick() }, function() { - tutorial.text = qsTr("I told you in the \"First Steps\" tutorial how the esp/esm plugins contain changes to the game world " + tutorial.text = qsTr("I told you in the \"First Steps\" tutorial how the esp/esm/esl plugins contain changes to the game world " +"like modifications to the terrain or existing NPCs. Each change like this is stored in a record, hence the " +"name \"record conflict\". For example when two mods try to change the same location, only one change can become active.") waitForClick() diff --git a/src/tutorials/tutorial_primer_main.js b/src/tutorials/tutorial_primer_main.js index 12df2c86..7ef65df9 100644 --- a/src/tutorials/tutorial_primer_main.js +++ b/src/tutorials/tutorial_primer_main.js @@ -75,7 +75,7 @@ function setupTooptips() { switch (manager.findControl("tabWidget").currentIndex) { case 0: - tooltipWidget("espList", qsTr("Plugins (esp/esm files) of the mods in the current profile. They need to be checked to be loaded.")) + 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("espFilterEdit", qsTr("Quickly filter plugin list as you type.")) break -- cgit v1.3.1 From fe44deb765775107da3e4fbd52d5e04574753566 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Mon, 23 Oct 2017 02:31:22 -0500 Subject: Update QtQuick import to 2.7 (for Qt 5.7) - works with 5.9 Requires update to uibase --- src/tutorials/Highlight.qml | 2 +- src/tutorials/Tooltip.qml | 2 +- src/tutorials/TooltipArea.qml | 2 +- src/tutorials/TutorialDescription.qml | 2 +- src/tutorials/TutorialOverlay.qml | 2 +- src/tutorials/tutorials_installdialog.qml | 2 +- src/tutorials/tutorials_mainwindow.qml | 2 +- src/tutorials/tutorials_modinfodialog.qml | 2 +- src/tutorials/tutorials_nexusdialog.qml | 2 +- src/tutorials/tutorials_settingsdialog.qml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) (limited to 'src/tutorials') 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..b6b3d073 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 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/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 -- cgit v1.3.1 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
Game plugins (esp/esm)
Game plugins (esp/esm/esl)
Interface
Meshes
BSA