re-enable paste in tables

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8093 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2003-11-17 13:20:34 +00:00
parent 2956e084bb
commit 4003db620d
2 changed files with 9 additions and 36 deletions

View File

@ -761,7 +761,6 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &)
string const clip = bv->getClipboard(); string const clip = bv->getClipboard();
if (clip.empty()) if (clip.empty())
break; break;
#if 0
if (clip.find('\t') != string::npos) { if (clip.find('\t') != string::npos) {
int cols = 1; int cols = 1;
int rows = 1; int rows = 1;
@ -787,27 +786,28 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &)
maxCols = max(cols, maxCols); maxCols = max(cols, maxCols);
paste_tabular.reset( paste_tabular.reset(
new LyXTabular(bv->buffer()->params(), new LyXTabular(bv->buffer()->params(), rows, maxCols));
this, rows, maxCols)
);
string::size_type op = 0; string::size_type op = 0;
int cell = 0; int cell = 0;
int cells = paste_tabular->getNumberOfCells(); int cells = paste_tabular->getNumberOfCells();
p = 0; p = 0;
cols = 0; cols = 0;
LyXFont font;
while (cell < cells && p < len && while (cell < cells && p < len &&
(p = clip.find_first_of("\t\n", p)) != string::npos) { (p = clip.find_first_of("\t\n", p)) != string::npos) {
if (p >= len) if (p >= len)
break; break;
switch (clip[p]) { switch (clip[p]) {
case '\t': case '\t':
paste_tabular->getCellInset(cell)->setText(clip.substr(op, p-op)); paste_tabular->getCellInset(cell).
setText(clip.substr(op, p-op), font);
++cols; ++cols;
++cell; ++cell;
break; break;
case '\n': case '\n':
paste_tabular->getCellInset(cell)->setText(clip.substr(op, p-op)); paste_tabular->getCellInset(cell).
setText(clip.substr(op, p-op), font);
while (cols++ < maxCols) while (cols++ < maxCols)
++cell; ++cell;
cols = 0; cols = 0;
@ -818,11 +818,9 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &)
} }
// check for the last cell if there is no trailing '\n' // check for the last cell if there is no trailing '\n'
if (cell < cells && op < len) if (cell < cells && op < len)
paste_tabular->getCellInset(cell)->setText(clip.substr(op, len-op)); paste_tabular->getCellInset(cell).
} else setText(clip.substr(op, len-op), font);
#else } else if (!insertAsciiString(bv, clip, true))
if (!insertAsciiString(bv, clip, true))
#endif
{ {
// so that the clipboard is used and it goes on // so that the clipboard is used and it goes on
// to default // to default

View File

@ -519,31 +519,6 @@ DispatchResult InsetText::priv_dispatch(FuncRequest const & cmd,
result.update(true); result.update(true);
break; break;
case LFUN_PASTE:
if (!autoBreakRows_) {
if (CutAndPaste::nrOfParagraphs() > 1) {
#ifdef WITH_WARNINGS
#warning FIXME horrendously bad UI
#endif
Alert::error(_("Paste failed"),
_("Cannot include more than one paragraph."));
}
} else {
replaceSelection(bv->getLyXText());
size_t sel_index = 0;
string const & arg = cmd.argument;
if (isStrUnsignedInt(arg)) {
#warning FIXME Check if the arg is in the domain of available selections.
sel_index = strToUnsignedInt(arg);
}
text_.pasteSelection(sel_index);
// bug 393
text_.clearSelection();
#warning should be also set dispatched here?
result.update(true);
}
break;
case LFUN_BREAKPARAGRAPH: case LFUN_BREAKPARAGRAPH:
if (!autoBreakRows_) { if (!autoBreakRows_) {
result.dispatched(true); result.dispatched(true);