X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgraph.C;h=93533274320245531a83823130879494b04840c7;hb=b9aa557b359463dfb0a2132b665570c8d1e5d605;hp=782944222ec5383e6f00a00ee7a34c62c7f708a8;hpb=566e084f63fb82a2f27e442e21539896f46e7dc6;p=lyx.git diff --git a/src/graph.C b/src/graph.C index 782944222e..9353327432 100644 --- a/src/graph.C +++ b/src/graph.C @@ -5,19 +5,22 @@ * * \author Dekel Tsur * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ -#include "config.h" +#include + #include "graph.h" #include "format.h" -#include -#include #include -using std::queue; + +namespace lyx { + using std::vector; +using std::reverse; +using std::fill; int Graph::bfs_init(int s, bool clear_visited) @@ -78,11 +81,14 @@ Graph::getReachable(int from, bool only_viewable, int const i = Q_.front(); Q_.pop(); Format const & format = formats.get(i); - if (format.name() == "lyx") - continue; - if (!only_viewable || !format.viewer().empty() || - format.isChildFormat()) + if (!only_viewable || !format.viewer().empty()) result.push_back(i); + else if (format.isChildFormat()) { + Format const * const parent = + formats.getFormat(format.parentFormat()); + if (parent && !parent->viewer().empty()) + result.push_back(i); + } vector::const_iterator cit = vertices_[i].out_vertices.begin(); @@ -194,3 +200,6 @@ void Graph::addEdge(int s, int t) } vector Graph::vertices_; + + +} // namespace lyx