using std::endl;
using std::string;
using std::istringstream;
+using std::ostringstream;
extern string current_layout;
// is empty
if (!cmd.argument.empty())
cur.dispatch(FuncRequest(LFUN_INSERT_MATH,
- cmd.argument));
+ cmd.argument));
} else {
// create a macro if we see "\\newcommand"
// somewhere, and an ordinary formula
bool singleParUpdate = lyxaction.funcHasFlag(cmd.action,
LyXAction::SingleParUpdate);
// Signals that a full-screen update is required
- bool needsUpdate = !(lyxaction.funcHasFlag(cmd.action,
+ bool needsUpdate = !(lyxaction.funcHasFlag(cmd.action,
LyXAction::NoUpdate) || singleParUpdate);
// Remember the old paragraph metric (_outer_ paragraph!)
Dimension olddim = cur.bottom().paragraph().dim();
if (cur.pos() == cur.paragraph().size())
// Par boundary, force full-screen update
singleParUpdate = false;
- needsUpdate = Delete(cur);
+ needsUpdate = erase(cur);
cur.resetAnchor();
// It is possible to make it a lot faster still
// just comment out the line below...
cursorRight(cur);
cursorLeft(cur);
}
- Delete(cur);
+ erase(cur);
cur.resetAnchor();
} else {
cutSelection(cur, true, false);
case LFUN_GETXY:
cur.message(convert<string>(cursorX(cur.top(), cur.boundary())) + ' '
- + convert<string>(cursorY(cur.top(), cur.boundary())));
+ + convert<string>(cursorY(cur.top(), cur.boundary())));
break;
case LFUN_SETXY: {
lyx::cap::replaceSelection(cur);
Paragraph & par = cur.paragraph();
lyx::pos_type pos = cur.pos();
- char c;
+ lyx::char_type c;
if (pos == 0)
c = ' ';
else if (cur.prevInset() && cur.prevInset()->isSpace())
break;
}
- case LFUN_DATE_INSERT:
+ case LFUN_DATE_INSERT:
if (cmd.argument.empty())
bv->owner()->dispatch(FuncRequest(LFUN_SELFINSERT,
lyx::formatted_time(lyx::current_time())));
bv->switchKeyMap();
bv->owner()->updateMenubar();
bv->owner()->updateToolbars();
+
+ // if view-source dialog is visible, send source code of selected
+ // text to the dialog
+ if (cmd.button() == mouse_button::button1 && cur.selection()
+ && bv->owner()->getDialogs().visible("view-source")) {
+ // get *top* level paragraphs that contain the selection
+ lyx::pit_type par_begin = bv->cursor().selectionBegin().bottom().pit();
+ lyx::pit_type par_end = bv->cursor().selectionEnd().bottom().pit();
+ if (par_begin > par_end)
+ std::swap(par_begin, par_end);
+ ostringstream ostr;
+ bv->buffer()->getSourceCode(ostr, par_begin, par_end + 1);
+ // display the dialog and show source code
+ bv->owner()->getDialogs().update("view-source", ostr.str());
+ }
break;
}
string::const_iterator end = cmd.argument.end();
for (; cit != end; ++cit)
bv->owner()->getIntl().getTransManager().
- TranslateAndInsert(*cit, this);
+ translateAndInsert(*cit, this);
cur.resetAnchor();
moveCursor(cur, false);
bv->owner()->getLyXFunc().handleKeyFunc(cmd.action);
if (!cmd.argument.empty())
bv->owner()->getIntl().getTransManager()
- .TranslateAndInsert(cmd.argument[0], this);
+ .translateAndInsert(cmd.argument[0], this);
break;
case LFUN_FLOAT_LIST: {
break;
default:
- lyxerr[Debug::ACTION]
+ lyxerr[Debug::ACTION]
<< BOOST_CURRENT_FUNCTION
- << ": Command " << cmd
+ << ": Command " << cmd
<< " not DISPATCHED by LyXText" << endl;
cur.undispatched();
break;
if (singleParUpdate)
// Inserting characters does not change par height
- if (cur.bottom().paragraph().dim().height()
+ if (cur.bottom().paragraph().dim().height()
== olddim.height()) {
// if so, update _only_ this paragraph
cur.bv().update(Update::SinglePar |