]> git.lyx.org Git - lyx.git/blobdiff - src/CutAndPaste.cpp
Kornel's gcc compile fix.
[lyx.git] / src / CutAndPaste.cpp
index 317410497602ff19c1d95eebf0d7413fbae52714..944119f96554305f3e6408843db76e0508ed29d5 100644 (file)
@@ -33,7 +33,6 @@
 #include "LyXRC.h"
 #include "Text.h"
 #include "Paragraph.h"
-#include "paragraph_funcs.h"
 #include "ParagraphParameters.h"
 #include "ParIterator.h"
 #include "Undo.h"
@@ -430,6 +429,21 @@ void putClipboard(ParagraphList const & paragraphs,
 }
 
 
+/// return true if the whole ParagraphList is deleted
+static bool isFullyDeleted(ParagraphList const & pars)
+{
+       pit_type const pars_size = static_cast<pit_type>(pars.size());
+
+       // check all paragraphs
+       for (pit_type pit = 0; pit < pars_size; ++pit) {
+               if (!pars[pit].empty())   // prevent assertion failure
+                       if (!pars[pit].isDeleted(0, pars[pit].size()))
+                               return false;
+       }
+       return true;
+}
+
+
 void copySelectionHelper(Buffer const & buf, Text const & text,
        pit_type startpit, pit_type endpit,
        int start, int end, DocumentClass const * const dc, CutStack & cutstack)
@@ -594,7 +608,10 @@ void switchBetweenClasses(DocumentClass const * const oldone,
                if (it->lyxCode() != FLEX_CODE)
                        // FIXME: Should we verify all InsetCollapsable?
                        continue;
-               if (!it->undefined())
+               docstring const & n = newone->insetLayout(it->name()).name();
+               bool const is_undefined = n.empty() ||
+                       n == DocumentClass::plainInsetLayout().name();
+               if (!is_undefined)
                        continue;
                // The flex inset is undefined in newtc
                docstring const s = bformat(_(