* Parse unmanaged file location when creating ModInfoForeign
- Fixes issues with secondaryDataDirectories
* Revert SF memory address changes
- CCC implementation prevents the need to determine core plugin LO by dependency chains
* The light flag wins over the medium flag
- I had expected the opposite, but apparently the light flag still wins if both are set. This shouldn't really happen but it's possible, even with the CK
* Update display to account for multi-flagged plugins
- Show both icons, warn if both set
* Use new Skip File & Skip Directory in usvfs.
# Motivations
https://github.com/ModOrganizer2/usvfs/pull/61 Highlights some reasons why the ability to skip files & directories would be beneficial
# Modifications
- Add two new settings, `skip_file_suffixes` and `skip_directories`
- Wire the two new settings up to usvfs
- Add two new buttons to the `Workarounds` dialog, one to adjust Skip File Suffixes and another for Skip Directories, both buttons act nearly identical to the Executable Blacklist button
- Add a new grouping in the `Workarounds` dialog box that contains the usvfs buttons to keep the dialog a tad organized
* Add medium plugin support (Starfield)
- Coopt the overlay support for the new 'medium' / ESH plugin flag
- Update various displays to include ESH info
* Rework address display for SF weirdness
* Fix core ESH display
* Use `displayGameName()` in create instance dialogs & the main window, this doesn't cover all places `gameName()` was being used for purely display reasons, but it covers the bulk.
* Use `lootGameName()` instead of `gameShortName()` for LOOT cli initiation.
* Use game display name in status bar.
---------
Co-authored-by: Twinki <Twinki@users.noreply.github.com>
* Remove uneeded "Fix" text
* Don't set Qt::WA_OpaquePaintEvent when imagesThumbnails has transparent base
---------
Co-authored-by: Liderate <Liderate@users.noreply.github.com>
* Convert the priority index to a string as Windows appears to be converting these to localized numerals
* Skip separators when assigning categories
* Update the context menu requirements for displaying the auto-assign option
* Bump to RC 2
- Add enabledPlugins for core plugins which are enabled but NOT auto-loaded (may need to be written to plugins.txt or have an ambiguous load order position)
- General Starfield updates
- Add enabledPlugins for "BlueprintShips-Starfield.esm"
- Disable plugin management if sTestFile is in use (also applies to FO4)
- Write the enabledPlugins to plugins.txt to enforce base game load order
- Allow for LOOT sorting (dynamic based on settings)
- Incorporate enabledPlugins into force enabled plugins in plugin list
- Update various interface layers
TODO: Fix sort button to dynamically update if status changes
TODO: Auto refresh lists if the INI Editor is closed
- Remove plugins class
- Route signals to run Nexus API call from MainWindow
- Pass Dialog instance to route response data
- Revert CategoryFactory::instance to return reference
* No longer cause an error when deleting a category that's being used
* Add a dialog when installing a mod with no Nexus mapping (if not disabled)
* Allow disabling Nexus category mapping in Settings (Nexus tab)
* Add context option to remove nexus mappings in the category editor
* Some clang style fixes
* Display checkboxes for all plugins
* Disable checkboxes for force enabled/disabled plugins
* Display tooltip data for all plugins regardless of force status
Before now, MO2 only looked at the ESM flag of a plugin and didn't
look for an .esm extension. This is incorrect and an .esm file
should be treated as implicitly having the ESM flag.
This also removes some apparently unused functions.
The old code was just looking at the last three letters of the filename instead of looking for any kind of proper extension. This led to something like "alice.__esp" being considered a plugin which is just wrong.
This fixes clicking the "select" button in the profiles dialog when a newly created profile is selected. This was broken as the profile was being selected before the profile was added to the list of selections.
Fixes#1489
Windows 11 reports itself as Windows 10 using the methods normally employed. Microsoft seems to want people to use the BuildId to identify the version of Windows but I'm going to refuse to do that because it's stupid.
This change also prefers DisplayVersion over ReleaseId as somehow I have both and DisplayVersion is more correct (21H2 vs 2009). /shrug.
Fixes#1607
Previously, when clicking the "select" button in the profiles
dialog (when the dialog was launched in the menu or toolbar),
everything would be refreshed without checking the selected
profile in the dialog.
Now, the selected profile is set with some signal blocking to
help prevent redundant refreshes from occurring.
If a game plugin supports more than one Nexus site for downloads,
the "Visit Nexus" button will be turned into a drop-down that
lets you select each site.
These two messages (along with their glaring red X icons) are cluttering up the log on linux/wine systems, misleading people who are trying to diagnose real problems. Let's reduce their log priority to make it clear that they're harmless.
As mentioned here:
https://github.com/ModOrganizer2/modorganizer/issues/372#issuecomment-575231673
The previous minimum size was around 450 x 560px. At a DPI scaling
of 200%, this means 900 x 1120px which extends off the typical 1080p
screen. Why is someone using 200% scaling on a 1080p screen? I have
no clue.
Now, the minimum size is around 450 x 410px for 900 x 820 px at 200%
scaling. Which works for anything short of a 1376 x 768 screen at
200% scaling which I just don't really care about.
the problem is that an empty instance name means the portable instance, but MO clears the name when it needs instance selection, which can create a loop if the portable instance can't be used
- better errors when running incorrect shortcuts
- fixed shortcuts being created with moshortcut://Portable:exe instead of an empty instance name for portable instances
Notify all the mods that have had their info checked, not just the ones that have been found with an update. This is because Mo2 also shows mods that have had their files deleted or moved to Old as updateAvailable, in which case there is no update but the filter still needs to be notified to include the mod.
labels:'additional games support, Feature Request, area:mo2 game plugins'
labels:'Feature Request, additional games support, area:mo2 game plugins'
assignees:''
---
@@ -18,7 +18,7 @@ assignees: ''
- **Nexus ID [optional]:** ID of the game on Nexus (you can usually find this in Nexus URL).
- **Executable:** Name of the main executable for the game (relative to the game folder).
- **Launcher [optional]:** Name of the game launcher (relative to the game folder).
- **Data path:** Path to the data folder of the game (relative to the game folder).
- **Data path:** Path to the data folder of the game (relative to the game folder). Please note that the Virtual Files System often does not work for top level dlls or exe files.
- **Documents path:** Path to folder containing INI files, etc., for the game (usually under "My Games", or the game folder itself).
- **Saves directory [optional]:** Path to the folder containing save games (this default to the path above).
- **Save extension [optional]:** Extension of the saves
Briefly describe the issue you are experiencing. Tell us what you were trying to do and what happened instead. Remember, this is _not_ a place to ask questions. For that, go to our [discord channel](https://discord.gg/5tCqt6V)
Briefly describe the issue you are experiencing. Tell us what you were trying to do and what happened instead. Remember, this is _not_ a place to ask questions. For that, go to our [Discord server](https://discord.gg/ewUVAqyrQX).
@@ -12,7 +12,7 @@ The project took up speed again after a few more coders showed up in late 2017,
## Help Wanted!
Mod Organizer 2 is an open project in the hands of the community, there are problems that need to be solved and things that could be added. MO2 really needs developers and if you have the programming skills and some free time you can really improve the experience of the modding community.
To have more information, please join the open MO2 Development discord server: [Mod Organizer 2](https://discord.gg/vD2ZbfX)
To have more information, please join the open MO2 Development discord server: [Mod Organizer 2](https://discord.gg/ewUVAqyrQX)
If you want to help translate MO2 to your language you should join the discord server too and head to the #translation channel.
To setup a development environment on your machine, there is the [mob project](https://github.com/modorganizer2/mob) that handles that.
If you want to submit your code changes, please use a good formatting style like the default one in Visual Studio.
@@ -20,7 +20,7 @@ If you want to submit your code changes, please use a good formatting style like
Through the work of a few people of the community MO2 has come quite far, now it needs some more of those people to go further.
## Reporting Issues:
Issues should be reported to the GitHub page or on the open discord server: [Mod Organizer 2](https://discord.gg/vD2ZbfX). Here is also where dev builds are tested, bugs are reported and investigated, suggestions are discussed and a lot more.
Issues should be reported to the GitHub page or on the open discord server: [Mod Organizer 2](https://discord.gg/ewUVAqyrQX). Here is also where dev builds are tested, bugs are reported and investigated, suggestions are discussed and a lot more.
Credits to Tannin, LePresidente, Silarn, erasmux, AL12, LostDragonist, AnyOldName3, isa, Holt59 and many others for the development.
* @brief get a list of mods that the user chose to activate
*
* @note This can of ocurse only be called after the dialog has been displayed
*
* @return set< QString > the mods to activate
**/
std::set<QString>getModsToActivate();
/**
* @brief get a list of plugins that should be activated
*
* @return set< QString > the plugins to activate. This contains only plugins that become available after enabling the mods retrieved with getModsToActivate
**/
std::set<QString>getESPsToActivate();
privateslots:
private:
Ui::ActivateModsDialog*ui;
};
#endif // ACTIVATEMODSDIALOG_H
/*
Copyright (C) 2012 Sebastian Herbord. All rights reserved.
This file is part of Mod Organizer.
Mod Organizer is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Mod Organizer is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef ACTIVATEMODSDIALOG_H
#define ACTIVATEMODSDIALOG_H
#include"savegameinfo.h"
#include"tutorabledialog.h"
#include<QObject>
#include<QString>
#include<QWidget>
#include<set>
namespaceUi
{
classActivateModsDialog;
}
/**
* @brief Dialog that is used to batch activate/deactivate mods and plugins
* represents a user account on the mod provider website
*/
* represents a user account on the mod provider website
*/
classAPIUserAccount
{
public:
@@ -62,79 +59,76 @@ public:
APIUserAccount();
/**
* whether the user is logged in
*/
boolisValid()const;
/**
* api key
*/
* api key
*/
constQString&apiKey()const;
/**
* user id
*/
* user id
*/
constQString&id()const;
/**
* user name
*/
* user name
*/
constQString&name()const;
/**
* account type
*/
* account type
*/
APIUserAccountTypestype()const;
/**
* current API limits
*/
* current API limits
*/
constAPILimits&limits()const;
/**
* sets the api key
*/
APIUserAccount&apiKey(constQString&key);
/**
* sets the user id
*/
* sets the user id
*/
APIUserAccount&id(constQString&id);
/**
* sets the user name
**/
* sets the user name
**/
APIUserAccount&name(constQString&name);
/**
* sets the account type
*/
* sets the account type
*/
APIUserAccount&type(APIUserAccountTypestype);
/**
* sets the current limits
*/
* sets the current limits
*/
APIUserAccount&limits(constAPILimits&limits);
/**
* returns the number of remaining requests
*/
* returns the number of remaining requests
*/
intremainingRequests()const;
/**
* whether the number of remaining requests is low enough that further
* requests should be throttled
*/
* whether the number of remaining requests is low enough that further
* requests should be throttled
*/
boolshouldThrottle()const;
/**
* true if all the remaining requests have been used and the API will refuse
* further requests
*/
* true if all the remaining requests have been used and the API will refuse
* further requests
*/
boolexhausted()const;
private:
@@ -143,4 +137,4 @@ private:
APILimitsm_limits;
};
#endif // APIUSERACCOUNT_H
#endif // APIUSERACCOUNT_H
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.