diff --git a/src/backend/generators.h b/src/backend/generators.h index e3a6555b..bd9321bb 100644 --- a/src/backend/generators.h +++ b/src/backend/generators.h @@ -158,6 +158,12 @@ namespace boss { div.append_attribute("data-section").set_value("plugins"); div.text().set("Details"); + div = nav.append_child(); + div.set_name("div"); + div.append_attribute("class").set_value("button"); + div.append_attribute("data-section").set_value("graph"); + div.text().set("Graph"); + div = nav.append_child(); div.set_name("div"); div.append_attribute("class").set_value("button"); @@ -347,6 +353,7 @@ namespace boss { inline void AppendMain(pugi::xml_node& body, const std::string& oldDetails, const std::string& masterlistVersion, + const std::string& graphPath, bool masterlistUpdateEnabled, const std::list& messages, const std::list& plugins, @@ -370,6 +377,17 @@ namespace boss { pluginMessageNo = messageNo; AppendSummary(main, hasChanged, masterlistVersion, masterlistUpdateEnabled, messageNo, warnNo, errorNo, messages); + + //Append graph tag. + pugi::xml_node graph = main.append_child(); + graph.set_name("div"); + graph.append_attribute("id").set_value("graph"); + graph.append_attribute("class").set_value("hidden"); + + pugi::xml_node img = graph.append_child(); + img.set_name("img"); + img.append_attribute("src").set_value(ToFileURL(graphPath).c_str()); + img.append_attribute("alt").set_value("Plugin interactions graph."); } inline void AppendFilters(pugi::xml_node& body, int messageNo, int pluginNo) { @@ -474,7 +492,8 @@ namespace boss { const std::list& plugins, const std::string& oldDetails, const std::string& masterlistVersion, - const bool masterlistUpdateEnabled) { + const bool masterlistUpdateEnabled, + const std::string& graphPath) { pugi::xml_document doc; @@ -486,7 +505,7 @@ namespace boss { AppendNav(body); int messageNo=0; - AppendMain(body, oldDetails, masterlistVersion, masterlistUpdateEnabled, messages, plugins, messageNo); + AppendMain(body, oldDetails, masterlistVersion, graphPath, masterlistUpdateEnabled, messages, plugins, messageNo); AppendFilters(body, messageNo, plugins.size()); diff --git a/src/gui/main.cpp b/src/gui/main.cpp index 0344d943..9f26c2d9 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -858,7 +858,8 @@ void Launcher::OnSortPlugins(wxCommandEvent& event) { plugins, oldDetails, revision, - _settings["Update Masterlist"].as()); + _settings["Update Masterlist"].as(), + _game.GraphPath().string()); } catch (boss::error& e) { wxMessageBox( FromUTF8(format(loc::translate("Error: %1%")) % e.what()),