+
+vector<Format const *> Converters::importableFormats()
+{
+ vector<string> l = loaders();
+ vector<Format const *> result = getReachableTo(l[0], true);
+ for (vector<string>::const_iterator it = l.begin() + 1;
+ it != l.end(); ++it) {
+ vector<Format const *> r = getReachableTo(*it, false);
+ result.insert(result.end(), r.begin(), r.end());
+ }
+ return result;
+}
+
+
+vector<Format const *> Converters::exportableFormats(bool only_viewable)
+{
+ vector<string> s = savers();
+ vector<Format const *> result = getReachable(s[0], only_viewable, true);
+ for (vector<string>::const_iterator it = s.begin() + 1;
+ it != s.end(); ++it) {
+ vector<Format const *> r =
+ getReachable(*it, only_viewable, false);
+ result.insert(result.end(), r.begin(), r.end());
+ }
+ return result;
+}
+
+
+vector<string> Converters::loaders() const
+{
+ vector<string> v;
+ v.push_back("lyx");
+ v.push_back("text");
+ v.push_back("textparagraph");
+ return v;
+}
+
+
+vector<string> Converters::savers() const
+{
+ vector<string> v;
+ v.push_back("docbook");
+ v.push_back("latex");
+ v.push_back("literate");
+ v.push_back("lyx");
+ v.push_back("xhtml");
+ v.push_back("pdflatex");
+ v.push_back("platex");
+ v.push_back("text");
+ v.push_back("xetex");
+ return v;
+}
+
+