3240 Commits
Author SHA1 Message Date
Oliver Hamlet d8c9b9839a Set version number and changelogs for v0.16.1 0.16.1 2020-08-22 12:46:19 +01:00
Oliver Hamlet 5c2dd2167d Migrate Windows CI to GitHub Actions
AppVeyor is breaking my builds because I can't create any more artifacts
because I've hit the limit, but there's no way to have it not store
artifacts or to manually delete artifacts...

This also updates Boost from 1.67.0 to 1.69.0 due to differences between
the AppVeyor and GitHub Actions build environments.
2020-08-14 23:39:59 +01:00
Oliver Hamlet 6e43be662f Clarify GitHub Flavored Markdown strings in metadata docs 2020-07-28 19:40:42 +01:00
Oliver Hamlet 36d90ee72b Fix File::GetDisplayName() not escaping special chars
When display_ is an empty string, GetDisplayName() returns name_, but
name_'s value might contain Markdown special characters, and
GetDisplayName() is supposed to return a Markdown string, though this
was poorly documented.
2020-07-27 22:18:54 +01:00
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