]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlParagraph.C
Add a buffer_path arg to InsetGraphicsMailer's params2string, string2params.
[lyx.git] / src / frontends / controllers / ControlParagraph.C
index dc0ea89dea907d79b83c1f374bec3a0e31e98c89..ae9c3e9c85002ebc62ecaf73c3a9984768a88bd6 100644 (file)
 #include "support/LAssert.h"
 #include "Lsstream.h"
 
+using namespace lyx::support;
 
 ControlParagraph::ControlParagraph(Dialog & parent)
        : Dialog::Controller(parent), ininset_(false)
 {}
 
 
-void ControlParagraph::initialiseParams(string const & data)
+bool ControlParagraph::initialiseParams(string const & data)
 {
-       istringstream is(data);
+       istringstream is(STRCONV(data));
        LyXLex lex(0,0);
        lex.setStream(is);
 
@@ -37,7 +38,7 @@ void ControlParagraph::initialiseParams(string const & data)
        // action == 1: update dialog, accept changes
        // action == 2: update dialog, do not accept changes
        int action = 0;
-       
+
        if (lex.isOK()) {
                lex.next();
                string const token = lex.getString();
@@ -48,9 +49,9 @@ void ControlParagraph::initialiseParams(string const & data)
                        lex.next();
                        bool const accept = lex.getBool();
                        action = accept ? 1 : 2;
-               } else {
+               } else if (!token.empty()) {
                        // Unrecognised token
-                       lyx::Assert(0);
+                       return false;
                }
        }
 
@@ -71,6 +72,9 @@ void ControlParagraph::initialiseParams(string const & data)
                lex.next();
                string const token = lex.getString();
 
+               if (token.empty())
+                       continue;
+
                int Int = 0;
                if (token == "\\alignpossible" ||
                    token == "\\aligndefault" ||
@@ -79,9 +83,9 @@ void ControlParagraph::initialiseParams(string const & data)
                        Int = lex.getInteger();
                } else {
                        // Unrecognised token
-                       break;
+                       return false;
                }
-                   
+
                ++nset;
 
                if (token == "\\alignpossible") {
@@ -92,13 +96,16 @@ void ControlParagraph::initialiseParams(string const & data)
                        ininset_ = Int;
                }
        }
-       lyx::Assert(nset == 3);
+       if (nset != 3) {
+               return false;
+       }
 
        // If "update", then set the activation status of the button controller
        if (action > 0) {
                bool const accept = action == 1;
                dialog().bc().valid(accept);
        }
+       return true;
 }
 
 
@@ -112,21 +119,21 @@ void ControlParagraph::dispatchParams()
 {
        ostringstream data;
        params().write(data);
-       FuncRequest const fr(LFUN_PARAGRAPH_APPLY, data.str());
+       FuncRequest const fr(LFUN_PARAGRAPH_APPLY, STRCONV(data.str()));
        kernel().dispatch(fr);
 }
 
 
 ParagraphParameters & ControlParagraph::params()
 {
-       lyx::Assert(params_.get());
+       Assert(params_.get());
        return *params_;
 }
 
 
 ParagraphParameters const & ControlParagraph::params() const
 {
-       lyx::Assert(params_.get());
+       Assert(params_.get());
        return *params_;
 }