X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetfloat.C;h=41da3b33a9aaf25a36e5c03b10cb248381ac3239;hb=5603df4a5b7e511b31026c9a4f8f55b2b10fde57;hp=4f59cbc4c650287e3599d5e86453d0e63a203137;hpb=4072a82b6ea1d9d52457ffcf3dd108f8deaf3db0;p=lyx.git diff --git a/src/insets/insetfloat.C b/src/insets/insetfloat.C index 4f59cbc4c6..41da3b33a9 100644 --- a/src/insets/insetfloat.C +++ b/src/insets/insetfloat.C @@ -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"); @@ -419,8 +418,8 @@ void InsetFloat::sideways(bool s, BufferParams const & bp) void InsetFloat::addToToc(lyx::toc::TocList & toclist, Buffer const & buf) const { - ParConstIterator pit(*this, 0); - ParConstIterator end = ParConstIterator(DocumentIterator()); + ParConstIterator pit = par_const_iterator_begin(*this); + ParConstIterator end = par_const_iterator_end(*this); // Find a caption layout in one of the (child inset's) pars for (; pit != end; ++pit) { @@ -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); }