]> git.lyx.org Git - lyx.git/blobdiff - src/Floating.cpp
Keep dialog connected to cross-ref inset after Apply.
[lyx.git] / src / Floating.cpp
index ff1667f5e725136a22c28e2e3727be2807c38086..fa93b97f44464c4b5d61b5a738dc4aac150b6441 100644 (file)
@@ -11,6 +11,7 @@
  */
 
 #include <config.h>
+#include <set>
 
 #include "Floating.h"
 
@@ -47,12 +48,15 @@ Floating::Floating(string const & type, string const & placement,
 std::string Floating::docbookFloatType() const
 {
        // TODO: configure this in the layouts?
-       if (floattype_ == "figure") {
+       if (floattype_ == "figure" || floattype_ == "graph" ||
+                       floattype_ == "chart" || floattype_ == "scheme")  {
                return "figure";
        } else if (floattype_ == "table" || floattype_ == "tableau") {
                return "table";
        } else if (floattype_ == "algorithm") {
                return "algorithm";
+       } else if (floattype_ == "video") {
+               return "video";
        } else {
                // If nothing matches, return something that will not be valid.
                LYXERR0("Unrecognised float type: " + floattype_);
@@ -101,9 +105,13 @@ string Floating::defaultCSSClass() const
 
 string Floating::docbookAttr() const
 {
+       std::set<std::string> achemso = { "chart", "graph", "scheme" };
        // For algorithms, a type attribute must be mentioned, if not already present in docbook_attr_.
        if (docbookFloatType() == "algorithm" && docbook_attr_.find("type=") != std::string::npos)
                return docbook_attr_ + " type='algorithm'";
+       // Specific floats for achemso.
+       else if (docbookFloatType() == "figure" && achemso.find(floattype_) != achemso.end())
+               return docbook_attr_ + " type='" + floattype_ + "'";
        else
                return docbook_attr_;
 }
@@ -112,7 +120,7 @@ string Floating::docbookAttr() const
 string Floating::docbookTag(bool hasTitle) const
 {
        // TODO: configure this in the layouts?
-       if (docbookFloatType() == "figure" || docbookFloatType() == "algorithm") {
+       if (docbookFloatType() == "figure" || docbookFloatType() == "algorithm" || docbookFloatType() == "video") {
                return hasTitle ? "figure" : "informalfigure";
        } else if (docbookFloatType() == "table") {
                return hasTitle ? "table" : "informaltable";