]> git.lyx.org Git - lyx.git/blobdiff - src/CutAndPaste.C
"Inter-word Space"
[lyx.git] / src / CutAndPaste.C
index fcf9f11c140f3d21fd5766fadf4d825170068283..c2c4c04b37bd1e41d9ec5891b9431f013c5cd6b8 100644 (file)
 #include "CutAndPaste.h"
 #include "BufferView.h"
 #include "buffer.h"
+#include "errorlist.h"
 #include "paragraph.h"
 #include "ParagraphParameters.h"
 #include "lyxtext.h"
 #include "lyxcursor.h"
-#include "gettext.h"
 #include "iterators.h"
 #include "lyxtextclasslist.h"
 #include "undo_funcs.h"
+#include "gettext.h"
 #include "paragraph_funcs.h"
 #include "debug.h"
 
 #include "insets/inseterror.h"
 
-#include "support/BoostFormat.h"
 #include "support/LAssert.h"
+#include "support/lstrings.h"
 #include "support/limited_stack.h"
 
 using std::endl;
@@ -197,15 +198,17 @@ bool CutAndPaste::copySelection(ParagraphList::iterator startpit,
 pair<PitPosPair, ParagraphList::iterator>
 CutAndPaste::pasteSelection(ParagraphList & pars,
                            ParagraphList::iterator pit, int pos,
-                           textclass_type tc)
+                           textclass_type tc,
+                           ErrorList & errorlist)
 {
-       return pasteSelection(pars, pit, pos, tc, 0);
+       return pasteSelection(pars, pit, pos, tc, 0, errorlist);
 }
 
 pair<PitPosPair, ParagraphList::iterator>
 CutAndPaste::pasteSelection(ParagraphList & pars,
                            ParagraphList::iterator pit, int pos,
-                           textclass_type tc, size_t cut_index)
+                           textclass_type tc, size_t cut_index,
+                           ErrorList & errorlist)
 {
        if (!checkPastePossible())
                return make_pair(PitPosPair(pit, pos), pit);
@@ -220,7 +223,8 @@ CutAndPaste::pasteSelection(ParagraphList & pars,
        // new environment and set also another font if that is required.
 
        // Make sure there is no class difference.
-       SwitchLayoutsBetweenClasses(textclass, tc, simple_cut_clone);
+       SwitchLayoutsBetweenClasses(textclass, tc, simple_cut_clone,
+                                   errorlist);
 
        ParagraphList::iterator tmpbuf = simple_cut_clone.begin();
        int depth_delta = pit->params().depth() - tmpbuf->params().depth();
@@ -329,21 +333,20 @@ int CutAndPaste::nrOfParagraphs()
 
 int CutAndPaste::SwitchLayoutsBetweenClasses(textclass_type c1,
                                             textclass_type c2,
-                                            ParagraphList & pars)
+                                            ParagraphList & pars,
+                                            ErrorList & errorlist)
 {
        lyx::Assert(!pars.empty());
 
-       Paragraph * par = &*pars.begin();
-
        int ret = 0;
        if (c1 == c2)
                return ret;
 
        LyXTextClass const & tclass1 = textclasslist[c1];
        LyXTextClass const & tclass2 = textclasslist[c2];
-       ParIterator end = ParIterator();
-       for (ParIterator it = ParIterator(par); it != end; ++it) {
-               par = *it;
+       ParIterator end = ParIterator(pars.end(), pars);
+       for (ParIterator it = ParIterator(pars.begin(), pars); it != end; ++it) {
+               Paragraph * par = &*(*it);
                string const name = par->layout()->name();
                bool hasLayout = tclass2.hasLayout(name);
 
@@ -354,28 +357,14 @@ int CutAndPaste::SwitchLayoutsBetweenClasses(textclass_type c1,
 
                if (!hasLayout && name != tclass1.defaultLayoutName()) {
                        ++ret;
-#if USE_BOOST_FORMAT
-                       boost::format fmt(_("Layout had to be changed from\n"
-                                           "%1$s to %2$s\n"
-                                           "because of class conversion from\n"
-                                           "%3$s to %4$s"));
-                       fmt     % name
-                               % par->layout()->name()
-                               % tclass1.name()
-                               % tclass2.name();
-
-                       string const s = fmt.str();
-#else
-                       string const s = _("Layout had to be changed from\n")
-                               + name + _(" to ")
-                               + par->layout()->name()
-                               + _("\nbecause of class conversion from\n")
-                               + tclass1.name() + _(" to ")
-                               + tclass2.name();
-#endif
+                       string const s = bformat(
+                               _("Layout had to be changed from\n%1$s to %2$s\n"
+                               "because of class conversion from\n%3$s to %4$s"),
+                        name, par->layout()->name(), tclass1.name(), tclass2.name());
                        // To warn the user that something had to be done.
-                       InsetError * new_inset = new InsetError(s);
-                       par->insertInset(0, new_inset);
+                       errorlist.push_back(ErrorItem("Changed Layout", s,
+                                                     par->id(), 0,
+                                                     par->size()));
                }
        }
        return ret;