X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferview_funcs.C;h=5428d11ed15e7eb8406a8e105559115a2d79e469;hb=10ba1b8918e7da14334bb5573ce2a707671c8b51;hp=88d8405f803854e5e77f98e7d044828ce787942f;hpb=153ac7500c4626a4e0ed38bf2bf88163f953c910;p=lyx.git diff --git a/src/bufferview_funcs.C b/src/bufferview_funcs.C index 88d8405f80..5428d11ed1 100644 --- a/src/bufferview_funcs.C +++ b/src/bufferview_funcs.C @@ -27,19 +27,16 @@ #include "lyxrow.h" #include "paragraph.h" #include "ParagraphParameters.h" -#include "PosIterator.h" -#include "iterators.h" +#include "pariterator.h" #include "frontends/Alert.h" #include "frontends/LyXView.h" #include "insets/insettext.h" -#include "mathed/math_cursor.h" - #include "support/tostr.h" -#include "support/std_sstream.h" +#include using lyx::support::bformat; @@ -148,165 +145,4 @@ bool string2font(string const & data, LyXFont & font, bool & toggle) return (nset > 0); } - -bool changeDepthAllowed(BufferView * bv, LyXText * text, DEPTH_CHANGE type) -{ - if (!bv->available() || !text) - return false; - - return text->changeDepthAllowed(type); -} - - -void changeDepth(BufferView * bv, LyXText * text, DEPTH_CHANGE type) -{ - if (!bv->available() || !text) - return; - text->changeDepth(type); -} - - -// Returns the current font and depth as a message. -string const currentState(BufferView * bv) -{ - if (!bv->available()) - return string(); - - if (mathcursor) - return mathcursor->info(); - - ostringstream state; - - LyXText * text = bv->getLyXText(); - Buffer * buffer = bv->buffer(); - LyXCursor const & c = text->cursor; - - bool const show_change = buffer->params().tracking_changes - && text->cursor.pos() != text->cursorPar()->size() - && text->cursorPar()->lookupChange(c.pos()) != Change::UNCHANGED; - - if (show_change) { - Change change = text->cursorPar()->lookupChangeFull(c.pos()); - Author const & a = bv->buffer()->params().authors().get(change.author); - state << _("Change: ") << a.name(); - if (!a.email().empty()) - state << " (" << a.email() << ")"; - if (change.changetime) - state << _(" at ") << ctime(&change.changetime); - state << " : "; - } - - // I think we should only show changes from the default - // font. (Asger) - LyXFont font = text->real_current_font; - font.reduce(buffer->params().getLyXTextClass().defaultfont()); - - // avoid _(...) re-entrance problem - string const s = font.stateText(&buffer->params()); - state << bformat(_("Font: %1$s"), s); - - // state << bformat(_("Font: %1$s"), font.stateText(&buffer->params)); - - // The paragraph depth - int depth = text->getDepth(); - if (depth > 0) - state << bformat(_(", Depth: %1$s"), tostr(depth)); - - // The paragraph spacing, but only if different from - // buffer spacing. - if (!text->cursorPar()->params().spacing().isDefault()) { - Spacing::Space cur_space = - text->cursorPar()->params().spacing().getSpace(); - state << _(", Spacing: "); - - switch (cur_space) { - case Spacing::Single: - state << _("Single"); - break; - case Spacing::Onehalf: - state << _("OneHalf"); - break; - case Spacing::Double: - state << _("Double"); - break; - case Spacing::Other: - state << _("Other (") - << text->cursorPar()->params().spacing().getValue() - << ')'; - break; - case Spacing::Default: - // should never happen, do nothing - break; - } - } -#ifdef DEVEL_VERSION - ParagraphList::iterator pit = text->cursorPar(); - state << _(", Paragraph: ") << pit->id(); - state << _(", Position: ") << text->cursor.pos(); - RowList::iterator rit = pit->getRow(text->cursor.pos()); - state << bformat(_(", Row b:%1$d e:%2$d"), rit->pos(), rit->endpos()); - state << _(", Inset: "); - InsetOld * inset = pit->inInset(); - if (inset) - state << inset << " owner: " << inset->owner(); - else - state << -1; -#endif - return state.str(); -} - - - -// deletes a selection during an insertion -void replaceSelection(LyXText * text) -{ - if (text->selection.set()) { - text->cutSelection(true, false); - text->bv()->update(); - } -} - - -/* -if the fitCursor call refers to some point in never-explored-land, then we -don't have y information in insets there, then we cannot even do an update -to get it (because we need the y infomation for setting top_y first). So -this is solved in put_selection_at with: - -- setting top_y to the y of the outerPar (that has good info) -- calling update -- calling cursor().updatePos() -- then call fitCursor() - -Ab. -*/ - -void put_selection_at(BufferView * bv, PosIterator const & cur, - int length, bool backwards) -{ - ParIterator par(cur); - - bv->getLyXText()->clearSelection(); - - LyXText * text = par.text(*bv->buffer()); - par.lockPath(bv); - //hack for the chicken and egg problem - if (par.inset()) - bv->top_y(par.outerPar()->y); - bv->update(); - text->setCursor(cur.pit(), cur.pos()); - bv->cursor().updatePos(); - - if (length) { - text->setSelectionRange(length); - text->setSelection(); - if (backwards) - text->cursor = text->selection.start; - } - - bv->fitCursor(); - bv->update(); -} - - } // namespace bv_funcs