3236 Commits
Author SHA1 Message Date
Oliver Hamlet b4dc6e2f3a Set version number and changelogs for v0.16.0 0.16.0 2020-07-12 20:19:31 +01:00
Oliver Hamlet 2c029364fd Add missing docs for Filename class 2020-07-12 20:19:13 +01:00
Oliver Hamlet 3a8875b307 Fix doc comments for File and Group 2020-07-12 10:00:42 +01:00
Oliver Hamlet b2fcc16b3b Update spdlog to 1.7.0 2020-07-12 09:03:48 +01:00
Oliver Hamlet c74f2f4978 Remove PluginMetadata::operator== and != for PluginMetadata
Unlike the other metadata classes, they were only comparing plugin names
not full object equality. Checking full object equality isn't very
useful, so instead the operators have been replaced by a new
NameMatches() method that takes a non-regex plugin name string.
2020-07-11 19:14:06 +01:00
Oliver Hamlet c9ce0f96d0 Remove PluginMetadata::operator== and != for std::string 2020-07-11 19:14:06 +01:00
Oliver Hamlet 84286e0d5f Remove unnecessary Plugin::operator< overload 2020-07-11 19:14:06 +01:00
Oliver Hamlet 062ab24139 Make File::GetName() return a Filename 2020-07-11 19:14:05 +01:00
Oliver Hamlet 15d98c9c20 Add a new Filename class to the API
It'll be used to represent filenames that get compared
case-insensitively.
2020-07-11 19:14:05 +01:00
Oliver Hamlet 14bdbe1fdf Make PluginMetadata::GetLocations() return a std::vector
The collection is only ever iterated over, and the uniqueness and
ordering don't matter.
2020-07-11 19:14:05 +01:00
Oliver Hamlet d5881047cc Make PluginMetadata::GetCleanInfo() return a std::vector
The collection is only ever iterated over, and the uniqueness and
ordering don't matter.
2020-07-11 19:14:04 +01:00
Oliver Hamlet 88a1c6f6d1 Make PluginMetadata::GetDirtyInfo() return a std::vector
The collection is only ever iterated over, and the uniqueness and
ordering don't matter.
2020-07-11 19:14:04 +01:00
Oliver Hamlet eeff7a9283 Make PluginMetadata::GetTags() return a std::vector
The collection is only ever iterated over, and the uniqueness and
ordering don't matter.
2020-07-11 19:14:04 +01:00
Oliver Hamlet 8dbbb55ecc Make PluginMetadata::GetIncompatibilities() return a std::vector
The collection is only ever iterated over, and the uniqueness and
ordering don't matter.
2020-07-11 19:14:04 +01:00
Oliver Hamlet 2bfc38358b Make PluginMetadata::GetRequirements() return a std::vector
The collection is only ever iterated over, and the uniqueness and
ordering don't matter.
2020-07-11 19:14:03 +01:00
Oliver Hamlet 998b70d698 Make PluginMetadata::GetLoadAfterFiles() return a std::vector
The collection is only ever iterated over, and the uniqueness and
ordering don't matter.
2020-07-11 19:14:03 +01:00
Oliver Hamlet 547a49d454 Make GameInterface::GetLoadedPlugins() return a std::vector
The plugin set is only ever iterated over, and the ordering of elements
is meaningless.
2020-07-11 19:14:01 +01:00
Oliver Hamlet d2a33d436e Make DatabaseInterface::GetKnownBashTags() return a std::vector
Instead of a std::set. The tags are only iterated over, and uniqueness
and ordering are more of a concern for the UI.

Part of #68.
2020-07-11 19:13:14 +01:00
Oliver Hamlet 4e48d085cc Make PluginInterface::GetBashTags() return a std::vector
Instead of a std::set. The tags are only iterated over, and uniqueness
and ordering are more of a concern for the UI.

Part of #68.
2020-07-11 19:13:13 +01:00
Oliver Hamlet e85ec7b1ce Overhaul Group APIs
- Group equality now compares all fields
- All other comparison operators are now overridden for Group
- Group "after" metadata is now stored as a vector of strings instead of
  an unordered set, to preserve source metadata ordering and simplify
  implementing the comparison operator  overloads
- std::hash is no longer specialised for Group
- DatabaseInterface::GetGroups() and DatabaseInterface::GetUserGroups()
  now return vectors of Groups instead of unordered sets.
- DatabaseInterface::SetUserGroups() now takes a vector of Groups
  instead of an unordered set.
2020-07-11 19:13:13 +01:00
Oliver Hamlet 83ba085a6d Add missing comparison operators for plugin metadata classes
This does not include the Group class, as that still needs its existing operator implementations updated.
2020-07-11 19:13:13 +01:00
Oliver Hamlet d9788b70fc Remove enabled field from PluginMetadata
It doesn't actually do anything, and fixing that turns out to be
very complicated. Since nobody appears to have noticed, just remove
the field entirely.
2020-07-11 19:13:13 +01:00
Oliver Hamlet 15076a6d26 Overhaul plugin metadata types' comparison operators
Change their implementations to check full object equality, with case insensitivity for filename strings.

The filename case insensitivity doesn't extend to filenames in condition strings, as conditions are compared as strings, but the risk of duplicates due to that is much less than the risk of treating non-duplicate objects as duplicates.
2020-07-11 19:13:07 +01:00
Oliver Hamlet 8188806286 Fix Plugin::LoadsArchive() for Skyrim SE and VR
Skyrim SE matches exact plugin filenames, and also archives that have a " - Textures" suffix. I assume Skyrim VR has the same behaviour.
2020-07-11 18:33:18 +01:00
Oliver Hamlet 402564c396 Fix lack of mutex locking in some GameCache methods 2020-07-11 18:33:04 +01:00