]> git.lyx.org Git - lyx.git/blobdiff - src/CutAndPaste.C
add GuiView parent to QToc for proper memory management.
[lyx.git] / src / CutAndPaste.C
index f24b1259cfd402dfa839af79e58e4aa74945e504..00831851f08aa00e316f72084e779acf20e64d1d 100644 (file)
@@ -33,7 +33,6 @@
 #include "paragraph.h"
 #include "paragraph_funcs.h"
 #include "ParagraphParameters.h"
-#include "ParagraphList_fwd.h"
 #include "pariterator.h"
 #include "undo.h"
 
@@ -643,7 +642,20 @@ void copySelectionToStack()
 
 void copySelection(LCursor & cur, docstring const & plaintext)
 {
-       copySelectionToStack(cur, theCuts);
+       // In tablemode, because copy and paste actually use special table stack
+       // we do not attemp to get selected paragraphs under cursor. Instead, a 
+       // paragraph with the plain text version is generated so that table cells
+       // can be pasted as pure text somewhere else.
+       if (cur.selBegin().idx() != cur.selEnd().idx()) {
+               ParagraphList pars;
+               Paragraph par;
+               BufferParams const & bp = cur.buffer().params();
+               par.layout(bp.getLyXTextClass().defaultLayout());
+               par.insert(0, plaintext, LyXFont(), Change(Change::UNCHANGED));
+               pars.push_back(par);
+               theCuts.push(make_pair(pars, bp.textclass));
+       } else
+               copySelectionToStack(cur, theCuts);
 
        // stuff the selection onto the X clipboard, from an explicit copy request
        putClipboard(theCuts[0].first, theCuts[0].second, plaintext);
@@ -652,10 +664,9 @@ void copySelection(LCursor & cur, docstring const & plaintext)
 
 void saveSelection(LCursor & cur)
 {
-       if (lyxerr.debugging(Debug::ACTION))
-               lyxerr << BOOST_CURRENT_FUNCTION << ": `"
-                      << to_utf8(cur.selectionAsString(true)) << "'."
-                      << endl;
+       LYXERR(Debug::ACTION) << BOOST_CURRENT_FUNCTION << ": `"
+              << to_utf8(cur.selectionAsString(true)) << "'."
+              << endl;
        
        if (cur.selection())
                copySelectionToStack(cur, selectionBuffer);