]> git.lyx.org Git - lyx.git/blobdiff - src/graph.C
minimal effort implementation of:
[lyx.git] / src / graph.C
index c31861588af569f882e4ca5cddb73e407bd28ca1..87c67fc0758f989088f24fcd50a8f622c6bb425d 100644 (file)
@@ -5,19 +5,18 @@
  *
  * \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 <config.h>
+
 #include "graph.h"
 #include "format.h"
 
-#include <queue>
-#include <vector>
+#include <algorithm>
 
-using std::queue;
 using std::vector;
-
+using std::reverse;
 
 
 int Graph::bfs_init(int s, bool clear_visited)
@@ -78,11 +77,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<int>::const_iterator cit =
                        vertices_[i].out_vertices.begin();
@@ -194,5 +196,3 @@ void Graph::addEdge(int s, int t)
 }
 
 vector<Graph::Vertex> Graph::vertices_;
-
-