break;
// insert file functions
- case LFUN_FILE_INSERT_ASCII_PARA:
- case LFUN_FILE_INSERT_ASCII: {
+ case LFUN_FILE_INSERT_PLAINTEXT_PARA:
+ case LFUN_FILE_INSERT_PLAINTEXT: {
// FIXME UNICODE
- string const tmpstr = getContentsOfAsciiFile(&cur.bv(), to_utf8(cmd.argument()), false);
+ string const tmpstr = getContentsOfPlaintextFile(&cur.bv(), to_utf8(cmd.argument()), false);
// FIXME: We don't know the encoding of the file
- if (!tmpstr.empty() && !insertAsciiString(cur.bv(), from_utf8(tmpstr), false))
+ if (!tmpstr.empty() && !insertPlaintextString(cur.bv(), from_utf8(tmpstr), false))
cur.undispatched();
break;
}
case LFUN_CLIPBOARD_PASTE:
case LFUN_PRIMARY_SELECTION_PASTE: {
docstring const clip = (cmd.action == LFUN_CLIPBOARD_PASTE) ?
- theClipboard().get() :
+ theClipboard().getAsText() :
theSelection().get();
if (clip.empty())
break;
- // pass to InsertAsciiString, but
+ // pass to InsertPlaintextString, but
// only if we have multi-cell content
if (clip.find_first_of(from_ascii("\t\n")) != docstring::npos) {
- if (insertAsciiString(cur.bv(), clip, false)) {
+ if (insertPlaintextString(cur.bv(), clip, false)) {
// content has been replaced,
// so cursor might be invalid
cur.pos() = cur.lastpos();
}
cur.updateFlags(Update::Force | Update::FitCursor);
-
- InsetTabularMailer(*this).updateDialog(&bv);
}
case LyXTabular::LAST_ACTION:
break;
}
-
- InsetTabularMailer(*this).updateDialog(&bv);
}
odocstringstream os;
OutputParams const runparams;
paste_tabular->plaintext(cur.buffer(), os, runparams, 0, true, '\t');
- theClipboard().put(os.str());
+ // Needed for the "Edit->Paste recent" menu and the system clipboard.
+ cap::copySelection(cur, os.str());
+
// mark tabular stack dirty
// FIXME: this is a workaround for bug 1919. Should be removed for 1.5,
// when we (hopefully) have a one-for-all paste mechanism.
+ // This must be called after cap::copySelection.
dirtyTabularStack(true);
return true;
}
-bool InsetTabular::insertAsciiString(BufferView & bv, docstring const & buf,
+bool InsetTabular::insertPlaintextString(BufferView & bv, docstring const & buf,
bool usePaste)
{
if (buf.length() <= 0)