diff --git a/src/api/api_database.cpp b/src/api/api_database.cpp index b15529cc..06c87a75 100644 --- a/src/api/api_database.cpp +++ b/src/api/api_database.cpp @@ -191,7 +191,7 @@ PluginCleanliness ApiDatabase::GetPluginCleanliness(const std::string& plugin) { // This isn't a very reliable system, because if the lists have been evaluated in some language // other than English, the strings will be in different languages (and the API can't tell what they'd be) // and the strings may be non-standard and begin with something other than "Do not clean." anyway. - std::list messages(game_.GetMasterlist().FindPlugin(PluginMetadata(plugin)).Messages()); + std::vector messages(game_.GetMasterlist().FindPlugin(PluginMetadata(plugin)).Messages()); for (const auto& message : messages) { if (boost::starts_with(message.GetContent(LanguageCode::english).GetText(), "Do not clean")) { diff --git a/src/backend/metadata/plugin_metadata.cpp b/src/backend/metadata/plugin_metadata.cpp index 3cd11c07..cb160f67 100644 --- a/src/backend/metadata/plugin_metadata.cpp +++ b/src/backend/metadata/plugin_metadata.cpp @@ -37,10 +37,10 @@ #include "backend/helpers/helpers.h" using std::inserter; -using std::list; using std::regex; using std::regex_match; using std::set; +using std::vector; namespace loot { PluginMetadata::PluginMetadata() : enabled_(true) {} @@ -128,11 +128,11 @@ PluginMetadata PluginMetadata::DiffMetadata(const PluginMetadata& plugin) const inserter(filesDiff, begin(filesDiff))); p.Incs(filesDiff); - list msgs1 = plugin.Messages(); - list msgs2 = messages_; - msgs1.sort(); - msgs2.sort(); - list mDiff; + vector msgs1 = plugin.Messages(); + vector msgs2 = messages_; + std::sort(begin(msgs1), end(msgs1)); + std::sort(begin(msgs2), end(msgs2)); + vector mDiff; set_symmetric_difference(begin(msgs2), end(msgs2), begin(msgs1), @@ -206,11 +206,11 @@ PluginMetadata PluginMetadata::NewMetadata(const PluginMetadata& plugin) const { inserter(filesDiff, begin(filesDiff))); p.Incs(filesDiff); - list msgs1 = plugin.Messages(); - list msgs2 = messages_; - msgs1.sort(); - msgs2.sort(); - list mDiff; + vector msgs1 = plugin.Messages(); + vector msgs2 = messages_; + std::sort(begin(msgs1), end(msgs1)); + std::sort(begin(msgs2), end(msgs2)); + vector mDiff; set_difference(begin(msgs2), end(msgs2), begin(msgs1), @@ -281,7 +281,7 @@ std::set PluginMetadata::Incs() const { return incompatibilities_; } -std::list PluginMetadata::Messages() const { +std::vector PluginMetadata::Messages() const { return messages_; } @@ -301,8 +301,8 @@ std::set PluginMetadata::Locations() const { return locations_; } -std::list PluginMetadata::SimpleMessages(const LanguageCode language) const { - std::list simpleMessages(messages_.size()); +std::vector PluginMetadata::SimpleMessages(const LanguageCode language) const { + std::vector simpleMessages(messages_.size()); std::transform(begin(messages_), end(messages_), begin(simpleMessages), [&](const Message& message) { return message.ToSimpleMessage(language); }); @@ -334,7 +334,7 @@ void PluginMetadata::Incs(const std::set& i) { incompatibilities_ = i; } -void PluginMetadata::Messages(const std::list& m) { +void PluginMetadata::Messages(const std::vector& m) { messages_ = m; } diff --git a/src/backend/metadata/plugin_metadata.h b/src/backend/metadata/plugin_metadata.h index 9f7afa60..cd674ae4 100644 --- a/src/backend/metadata/plugin_metadata.h +++ b/src/backend/metadata/plugin_metadata.h @@ -71,13 +71,13 @@ public: std::set LoadAfter() const; std::set Reqs() const; std::set Incs() const; - std::list Messages() const; + std::vector Messages() const; std::set Tags() const; std::set DirtyInfo() const; std::set CleanInfo() const; std::set Locations() const; - std::list SimpleMessages(const LanguageCode language) const; + std::vector SimpleMessages(const LanguageCode language) const; void Enabled(const bool enabled); void LocalPriority(const Priority& priority); @@ -85,7 +85,7 @@ public: void LoadAfter(const std::set& after); void Reqs(const std::set& reqs); void Incs(const std::set& incs); - void Messages(const std::list& messages); + void Messages(const std::vector& messages); void Tags(const std::set& tags); void DirtyInfo(const std::set& info); void CleanInfo(const std::set& info); @@ -103,7 +103,7 @@ public: bool operator == (const std::string& rhs) const; bool operator != (const std::string& rhs) const; protected: - std::list messages_; + std::vector messages_; std::set tags_; private: std::string name_; @@ -201,7 +201,7 @@ struct convert { if (node["inc"]) rhs.Incs(node["inc"].as>()); if (node["msg"]) - rhs.Messages(node["msg"].as>()); + rhs.Messages(node["msg"].as>()); if (node["tag"]) rhs.Tags(node["tag"].as>()); if (node["dirty"]) { diff --git a/src/backend/metadata_list.cpp b/src/backend/metadata_list.cpp index 1551fb88..af26a546 100644 --- a/src/backend/metadata_list.cpp +++ b/src/backend/metadata_list.cpp @@ -31,8 +31,6 @@ #include "loot/error.h" #include "backend/game/game.h" -using std::list; - namespace loot { void MetadataList::Load(const boost::filesystem::path& filepath) { Clear(); @@ -58,7 +56,7 @@ void MetadataList::Load(const boost::filesystem::path& filepath) { } } if (metadataList["globals"]) - messages_ = metadataList["globals"].as>(); + messages_ = metadataList["globals"].as>(); if (metadataList["bash_tags"]) bashTags_ = metadataList["bash_tags"].as>(); @@ -89,14 +87,14 @@ void MetadataList::Clear() { } std::list MetadataList::Plugins() const { - list pluginList(plugins_.begin(), plugins_.end()); + std::list pluginList(plugins_.begin(), plugins_.end()); pluginList.insert(pluginList.end(), regexPlugins_.begin(), regexPlugins_.end()); return pluginList; } -std::list MetadataList::Messages() const { +std::vector MetadataList::Messages() const { return messages_; } diff --git a/src/backend/metadata_list.h b/src/backend/metadata_list.h index ef6a33f0..cba3d175 100644 --- a/src/backend/metadata_list.h +++ b/src/backend/metadata_list.h @@ -43,7 +43,7 @@ public: void Clear(); std::list Plugins() const; - std::list Messages() const; + std::vector Messages() const; std::set BashTags() const; // Merges multiple matching regex entries if any are found. @@ -63,7 +63,7 @@ protected: std::set bashTags_; std::unordered_set plugins_; std::list regexPlugins_; - std::list messages_; + std::vector messages_; }; } diff --git a/src/backend/plugin/plugin_sorter.cpp b/src/backend/plugin/plugin_sorter.cpp index be40abda..b58f162a 100644 --- a/src/backend/plugin/plugin_sorter.cpp +++ b/src/backend/plugin/plugin_sorter.cpp @@ -40,6 +40,7 @@ using std::list; using std::string; +using std::vector; namespace loot { typedef boost::graph_traits::vertex_iterator vertex_it; @@ -99,7 +100,6 @@ private: }; std::vector PluginSorter::Sort(Game& game, const LanguageCode language) { - using std::vector; // Clear existing data. graph_.clear(); indexMap_.clear(); @@ -213,7 +213,7 @@ void PluginSorter::AddPluginVertices(Game& game, const LanguageCode language) { graph_[v].EvalAllConditions(game); } catch (std::exception& e) { BOOST_LOG_TRIVIAL(error) << "\"" << graph_[v].Name() << "\" contains a condition that could not be evaluated. Details: " << e.what(); - list messages(graph_[v].Messages()); + vector messages(graph_[v].Messages()); messages.push_back(Message(MessageType::error, (boost::format(boost::locale::translate("\"%1%\" contains a condition that could not be evaluated. Details: %2%")) % graph_[v].Name() % e.what()).str())); graph_[v].Messages(messages); } diff --git a/src/gui/query_handler.cpp b/src/gui/query_handler.cpp index 80c9e4d8..20c6f1df 100644 --- a/src/gui/query_handler.cpp +++ b/src/gui/query_handler.cpp @@ -454,7 +454,7 @@ std::string QueryHandler::ApplyUserEdits(const YAML::Node& pluginMetadata) { newUserlistEntry.Incs(pluginMetadata["userlist"]["inc"].as>()); if (pluginMetadata["userlist"]["msg"]) - newUserlistEntry.Messages(ToMessages(pluginMetadata["userlist"]["msg"].as>())); + newUserlistEntry.Messages(ToMessages(pluginMetadata["userlist"]["msg"].as>())); if (pluginMetadata["userlist"]["tag"]) newUserlistEntry.Tags(pluginMetadata["userlist"]["tag"].as>()); if (pluginMetadata["userlist"]["dirty"]) @@ -959,7 +959,7 @@ YAML::Node QueryHandler::GenerateDerivedMetadata(const Plugin& file, const Plugi tempPlugin.EvalAllConditions(lootState_.getCurrentGame()); } catch (std::exception& e) { BOOST_LOG_TRIVIAL(error) << "\"" << tempPlugin.Name() << "\" contains a condition that could not be evaluated. Details: " << e.what(); - list messages(tempPlugin.Messages()); + vector messages(tempPlugin.Messages()); messages.push_back(Message(MessageType::error, (format(translate("\"%1%\" contains a condition that could not be evaluated. Details: %2%")) % tempPlugin.Name() % e.what()).str())); tempPlugin.Messages(messages); } @@ -1031,8 +1031,8 @@ void QueryHandler::SendProgressUpdate(CefRefPtr frame, const std::stri frame->ExecuteJavaScript("loot.Dialog.showProgress('" + message + "');", frame->GetURL(), 0); } -std::list QueryHandler::ToEditorMessages(std::list messages, const LanguageCode language) { - std::list list; +std::vector QueryHandler::ToEditorMessages(std::vector messages, const LanguageCode language) { + std::vector list; for (const auto& message : messages) { list.push_back(EditorMessage(message, language)); @@ -1041,8 +1041,8 @@ std::list QueryHandler::ToEditorMessages(std::list messa return list; } -std::list QueryHandler::ToMessages(std::list messages) { - std::list list; +std::vector QueryHandler::ToMessages(std::vector messages) { + std::vector list; for (const auto& message : messages) { list.push_back(Message( diff --git a/src/gui/query_handler.h b/src/gui/query_handler.h index 61e8338d..de555c2e 100644 --- a/src/gui/query_handler.h +++ b/src/gui/query_handler.h @@ -76,8 +76,8 @@ private: void CopyToClipboard(const std::string& text); void SendProgressUpdate(CefRefPtr frame, const std::string& message); - std::list ToEditorMessages(std::list messages, const LanguageCode language); - std::list ToMessages(std::list messages); + std::vector ToEditorMessages(std::vector messages, const LanguageCode language); + std::vector ToMessages(std::vector messages); LootState& lootState_; }; diff --git a/src/tests/backend/metadata/plugin_metadata_test.h b/src/tests/backend/metadata/plugin_metadata_test.h index 9067e574..522f5582 100644 --- a/src/tests/backend/metadata/plugin_metadata_test.h +++ b/src/tests/backend/metadata/plugin_metadata_test.h @@ -241,7 +241,7 @@ TEST_P(PluginMetadataTest, mergeMetadataShouldMergeMessages) { plugin2.Messages({message}); plugin1.MergeMetadata(plugin2); - EXPECT_EQ(std::list({message, message}), plugin1.Messages()); + EXPECT_EQ(std::vector({message, message}), plugin1.Messages()); } TEST_P(PluginMetadataTest, mergeMetadataShouldMergeTags) { @@ -419,7 +419,7 @@ TEST_P(PluginMetadataTest, diffMetadataShouldOutputMessagesThatAreNotCommonToBot plugin2.Messages({message1, message3}); PluginMetadata diff = plugin1.DiffMetadata(plugin2); - EXPECT_EQ(std::list({message2, message3}), diff.Messages()); + EXPECT_EQ(std::vector({message2, message3}), diff.Messages()); } TEST_P(PluginMetadataTest, diffMetadataShouldOutputTagsThatAreNotCommonToBothInputPlugins) { @@ -575,7 +575,7 @@ TEST_P(PluginMetadataTest, newMetadataShouldOutputMessagesThatAreNotCommonToBoth plugin2.Messages({message1, message3}); PluginMetadata newMetadata = plugin1.NewMetadata(plugin2); - EXPECT_EQ(std::list({message2}), newMetadata.Messages()); + EXPECT_EQ(std::vector({message2}), newMetadata.Messages()); } TEST_P(PluginMetadataTest, newMetadataShouldOutputTagsThatAreNotCommonToBothInputPlugins) { @@ -687,7 +687,7 @@ TEST_P(PluginMetadataTest, evalAllConditionsShouldEvaluateAllMetadataConditions) EXPECT_EQ(expectedFiles, plugin.LoadAfter()); EXPECT_EQ(expectedFiles, plugin.Reqs()); EXPECT_EQ(expectedFiles, plugin.Incs()); - EXPECT_EQ(std::list({message1}), plugin.Messages()); + EXPECT_EQ(std::vector({message1}), plugin.Messages()); EXPECT_EQ(std::set({tag1}), plugin.Tags()); EXPECT_EQ(std::set({info1}), plugin.DirtyInfo()); EXPECT_EQ(std::set({info1}), plugin.CleanInfo()); @@ -1073,7 +1073,7 @@ TEST_P(PluginMetadataTest, encodingAsYamlShouldSetMsgFieldIfMessagesExist) { YAML::Node node; node = plugin; - EXPECT_EQ(plugin.Messages(), node["msg"].as>()); + EXPECT_EQ(plugin.Messages(), node["msg"].as>()); } TEST_P(PluginMetadataTest, encodingAsYamlShouldSetTagFieldIfTagsExist) { @@ -1163,7 +1163,7 @@ TEST_P(PluginMetadataTest, decodingFromYamlShouldStoreAllGivenData) { EXPECT_EQ(std::set({ File("Blank.esm") }), plugin.Incs()); - EXPECT_EQ(std::list({ + EXPECT_EQ(std::vector({ Message(MessageType::say, "content") }), plugin.Messages()); EXPECT_EQ(std::set({ diff --git a/src/tests/backend/metadata_list_test.h b/src/tests/backend/metadata_list_test.h index 040fb764..b0dc0a76 100644 --- a/src/tests/backend/metadata_list_test.h +++ b/src/tests/backend/metadata_list_test.h @@ -82,7 +82,7 @@ TEST_P(MetadataListTest, loadShouldLoadGlobalMessages) { MetadataList metadataList; EXPECT_NO_THROW(metadataList.Load(metadataPath)); - EXPECT_EQ(std::list({ + EXPECT_EQ(std::vector({ Message(MessageType::say, "A global message."), }), metadataList.Messages()); } @@ -170,7 +170,7 @@ TEST_P(MetadataListTest, saveShouldWriteTheLoadedMetadataToTheGivenFilePath) { "Relev" }), metadataList.BashTags()); - EXPECT_EQ(std::list({ + EXPECT_EQ(std::vector({ Message(MessageType::say, "A global message."), }), metadataList.Messages()); @@ -290,7 +290,7 @@ TEST_P(MetadataListTest, evalAllConditionsShouldEvaluateTheConditionsForThePlugi ASSERT_NO_THROW(metadataList.Load(metadataPath)); PluginMetadata plugin = metadataList.FindPlugin(PluginMetadata(blankEsm)); - ASSERT_EQ(std::list({ + ASSERT_EQ(std::vector({ Message(MessageType::warn, "This is a warning."), Message(MessageType::say, "This message should be removed when evaluating conditions."), }), plugin.Messages()); @@ -302,7 +302,7 @@ TEST_P(MetadataListTest, evalAllConditionsShouldEvaluateTheConditionsForThePlugi EXPECT_NO_THROW(metadataList.EvalAllConditions(game)); plugin = metadataList.FindPlugin(PluginMetadata(blankEsm)); - EXPECT_EQ(std::list({ + EXPECT_EQ(std::vector({ Message(MessageType::warn, "This is a warning."), }), plugin.Messages()); diff --git a/src/tests/backend/plugin/plugin_test.h b/src/tests/backend/plugin/plugin_test.h index 51a23f71..8d313492 100644 --- a/src/tests/backend/plugin/plugin_test.h +++ b/src/tests/backend/plugin/plugin_test.h @@ -281,7 +281,7 @@ TEST_P(PluginTest, checkInstallValidityShouldCheckThatRequirementsArePresent) { }); plugin.CheckInstallValidity(game_); - EXPECT_EQ(std::list({ + EXPECT_EQ(std::vector({ Message(MessageType::error, "This plugin requires \"" + missingEsp + "\" to be installed, but it is missing."), }), plugin.Messages()); } @@ -294,7 +294,7 @@ TEST_P(PluginTest, checkInstallValidityShouldCheckThatIncompatibilitiesAreAbsent }); plugin.CheckInstallValidity(game_); - EXPECT_EQ(std::list({ + EXPECT_EQ(std::vector({ Message(MessageType::error, "This plugin is incompatible with \"" + masterFile + "\", but both are present."), }), plugin.Messages()); } @@ -311,7 +311,7 @@ TEST_P(PluginTest, checkInstallValidityShouldGenerateMessagesFromDirtyInfo) { }); plugin.CheckInstallValidity(game_); - EXPECT_EQ(std::list({ + EXPECT_EQ(std::vector({ PluginCleaningData(blankEsmCrc, "utility1", info, 0, 1, 2).AsMessage(), PluginCleaningData(0xDEADBEEF, "utility2", info, 0, 5, 10).AsMessage(), }), plugin.Messages()); @@ -321,7 +321,7 @@ TEST_P(PluginTest, checkInstallValidityShouldCheckIfAPluginsMastersAreAllPresent Plugin plugin(game_, blankDifferentMasterDependentEsp, false); plugin.CheckInstallValidity(game_); - EXPECT_EQ(std::list({ + EXPECT_EQ(std::vector({ Message(MessageType::error, "This plugin requires \"" + blankDifferentEsm + "\" to be active, but it is inactive."), }), plugin.Messages()); }