From c49cbaa72414d850dfbbfc7b3825148cae4868ee Mon Sep 17 00:00:00 2001 From: Abdelrazak Younes Date: Sun, 9 Aug 2009 14:38:54 +0000 Subject: [PATCH] return early. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30936 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Cursor.cpp | 70 ++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 37 deletions(-) diff --git a/src/Cursor.cpp b/src/Cursor.cpp index 2fcca3b556..b4aee4cf69 100644 --- a/src/Cursor.cpp +++ b/src/Cursor.cpp @@ -1931,51 +1931,47 @@ docstring Cursor::selectionAsString(bool with_label) const if (!selection()) return docstring(); + if (inMathed()) + return cap::grabSelection(*this); + int const label = with_label ? AS_STR_LABEL | AS_STR_INSETS : AS_STR_INSETS; - if (inTexted()) { - idx_type const startidx = selBegin().idx(); - idx_type const endidx = selEnd().idx(); - if (startidx != endidx) { - // multicell selection - InsetTabular * table = inset().asInsetTabular(); - LASSERT(table, return docstring()); - return table->asString(startidx, endidx); - } - - ParagraphList const & pars = text()->paragraphs(); - - pit_type const startpit = selBegin().pit(); - pit_type const endpit = selEnd().pit(); - size_t const startpos = selBegin().pos(); - size_t const endpos = selEnd().pos(); - - if (startpit == endpit) - return pars[startpit].asString(startpos, endpos, label); - - // First paragraph in selection - docstring result = pars[startpit]. - asString(startpos, pars[startpit].size(), label) - + parbreak(inset().lyxCode()); - - // The paragraphs in between (if any) - for (pit_type pit = startpit + 1; pit != endpit; ++pit) { - Paragraph const & par = pars[pit]; - result += par.asString(0, par.size(), label) - + parbreak(inset().lyxCode()); - } + idx_type const startidx = selBegin().idx(); + idx_type const endidx = selEnd().idx(); + if (startidx != endidx) { + // multicell selection + InsetTabular * table = inset().asInsetTabular(); + LASSERT(table, return docstring()); + return table->asString(startidx, endidx); + } - // Last paragraph in selection - result += pars[endpit].asString(0, endpos, label); + ParagraphList const & pars = text()->paragraphs(); - return result; + pit_type const startpit = selBegin().pit(); + pit_type const endpit = selEnd().pit(); + size_t const startpos = selBegin().pos(); + size_t const endpos = selEnd().pos(); + + if (startpit == endpit) + return pars[startpit].asString(startpos, endpos, label); + + // First paragraph in selection + docstring result = pars[startpit]. + asString(startpos, pars[startpit].size(), label) + + parbreak(inset().lyxCode()); + + // The paragraphs in between (if any) + for (pit_type pit = startpit + 1; pit != endpit; ++pit) { + Paragraph const & par = pars[pit]; + result += par.asString(0, par.size(), label) + + parbreak(inset().lyxCode()); } - if (inMathed()) - return cap::grabSelection(*this); + // Last paragraph in selection + result += pars[endpit].asString(0, endpos, label); - return docstring(); + return result; } -- 2.39.2