]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetfloat.C
convert graphics for .tex export, fixes bug 1231
[lyx.git] / src / insets / insetfloat.C
index 4d531b824e2a911570e3c2806e87fc6e2ead3671..41da3b33a9aaf25a36e5c03b10cb248381ac3239 100644 (file)
@@ -163,8 +163,8 @@ void InsetFloat::priv_dispatch(LCursor & cur, FuncRequest & cmd)
                params_.placement = params.placement;
                params_.wide      = params.wide;
                params_.sideways  = params.sideways;
-               wide(params_.wide, cur.bv().buffer()->params());
-               sideways(params_.sideways, cur.bv().buffer()->params());
+               wide(params_.wide, cur.buffer().params());
+               sideways(params_.sideways, cur.buffer().params());
                cur.bv().update();
                break;
        }
@@ -174,6 +174,15 @@ void InsetFloat::priv_dispatch(LCursor & cur, FuncRequest & cmd)
                break;
        }
 
+       case LFUN_MOUSE_RELEASE: {
+               if (cmd.button() == mouse_button::button3 && hitButton(cmd)) {
+                       InsetFloatMailer(*this).showDialog(&cur.bv());
+                       break;
+               }
+               InsetCollapsable::priv_dispatch(cur, cmd);
+               break;
+       }
+
        default:
                InsetCollapsable::priv_dispatch(cur, cmd);
                break;
@@ -183,8 +192,7 @@ void InsetFloat::priv_dispatch(LCursor & cur, FuncRequest & cmd)
 
 void InsetFloatParams::write(ostream & os) const
 {
-       os << "Float " // getInsetName()
-          << type << '\n';
+       os << "Float " << type << '\n';
 
        if (!placement.empty())
                os << "placement " << placement << "\n";
@@ -193,7 +201,7 @@ void InsetFloatParams::write(ostream & os) const
                os << "wide true\n";
        else
                os << "wide false\n";
-               
+
        if (sideways)
                os << "sideways true\n";
        else
@@ -203,40 +211,31 @@ void InsetFloatParams::write(ostream & os) const
 
 void InsetFloatParams::read(LyXLex & lex)
 {
-       if (lex.isOK()) {
-               lex.next();
-               string token = lex.getString();
-               if (token == "placement") {
-                       lex.next();
-                       placement = lex.getString();
-               } else {
-                       // take countermeasures
-                       lex.pushToken(token);
-               }
-               lex.next();
-               token = lex.getString();
-               if (token == "wide") {
-                       lex.next();
-                       string const tmptoken = lex.getString();
-                       wide = (tmptoken == "true");
-               } else {
-                       lyxerr << "InsetFloat::Read:: Missing wide!"
-                              << endl;
-                       // take countermeasures
-                       lex.pushToken(token);
-               }
-               lex.next();
-               token = lex.getString();
-               if (token == "sideways") {
-                       lex.next();
-                       string const tmptoken = lex.getString();
-                       sideways = (tmptoken == "true");
-               } else {
-                       lyxerr << "InsetFloat::Read:: Missing sideways!"
-                              << endl;
-                       // take countermeasures
-                       lex.pushToken(token);
-               }
+       string token;
+       lex >> token;
+       if (token == "placement") {
+               lex >> placement;
+       } else {
+               // take countermeasures
+               lex.pushToken(token);
+       }
+       lex >> token;
+       if (token == "wide") {
+               lex >> wide;
+       } else {
+               lyxerr << "InsetFloat::Read:: Missing wide!"
+               << endl;
+               // take countermeasures
+               lex.pushToken(token);
+       }
+       lex >> token;
+       if (token == "sideways") {
+               lex >> sideways;
+       } else {
+               lyxerr << "InsetFloat::Read:: Missing sideways!"
+               << endl;
+               // take countermeasures
+               lex.pushToken(token);
        }
 }
 
@@ -262,7 +261,7 @@ void InsetFloat::validate(LaTeXFeatures & features) const
        if (contains(params_.placement, 'H')) {
                features.require("float");
        }
-       
+
        if (params_.sideways)
                features.require("rotating");
 
@@ -472,6 +471,8 @@ void InsetFloatMailer::string2params(string const & in,
        if (!lex || id != "Float")
                return print_mailer_error("InsetBoxMailer", in, 2, "Float");
 
+       // We have to read the type here!
+       lex >> params.type;
        params.read(lex);
 }