]> git.lyx.org Git - lyx.git/blobdiff - src/graph.C
Fix encoding of converters path and arguments
[lyx.git] / src / graph.C
index 782944222ec5383e6f00a00ee7a34c62c7f708a8..93533274320245531a83823130879494b04840c7 100644 (file)
@@ -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 <config.h>
+
 #include "graph.h"
 #include "format.h"
 
-#include <queue>
-#include <vector>
 #include <algorithm>
 
-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<int>::const_iterator cit =
                        vertices_[i].out_vertices.begin();
@@ -194,3 +200,6 @@ void Graph::addEdge(int s, int t)
 }
 
 vector<Graph::Vertex> Graph::vertices_;
+
+
+} // namespace lyx