]> git.lyx.org Git - lyx.git/blobdiff - src/CutAndPaste.cpp
Buffer: Rename function names:
[lyx.git] / src / CutAndPaste.cpp
index 8a71efb7748ea55f1c4ed3ccf53ae94e2e0dc579..e716cc3a817ca35306ab119f33549b0741904461 100644 (file)
 #include "InsetIterator.h"
 #include "InsetList.h"
 #include "Language.h"
-#include "LyXFunc.h"
+#include "LyX.h"
 #include "LyXRC.h"
 #include "Text.h"
 #include "Paragraph.h"
 #include "ParagraphParameters.h"
 #include "ParIterator.h"
-#include "Undo.h"
 
+#include "insets/InsetBibitem.h"
 #include "insets/InsetBranch.h"
 #include "insets/InsetCommand.h"
 #include "insets/InsetFlex.h"
@@ -242,6 +242,8 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist,
                                InsetLabel * lab = labels[i];
                                docstring const oldname = lab->getParam("name");
                                lab->updateCommand(oldname, false);
+                               // We need to update the buffer reference cache.
+                               cur.forceBufferUpdate();
                                docstring const newname = lab->getParam("name");
                                if (oldname == newname)
                                        continue;
@@ -258,7 +260,7 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist,
                                                        static_cast<InsetMathHull &>(*itt);
                                                // this is necessary to prevent an uninitialized
                                                // buffer when the RefInset is in a MathBox.
-                                               // FIXME audit setBuffer/updateLabels calls
+                                               // FIXME audit setBuffer calls
                                                mi.setBuffer(const_cast<Buffer &>(buffer));
                                                if (mi.asRefInset()->getTarget() == oldname)
                                                        mi.asRefInset()->changeTarget(newname);
@@ -270,9 +272,11 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist,
 
                case LABEL_CODE: {
                        // check for duplicates
-                       InsetCommand & lab = static_cast<InsetCommand &>(*it);
+                       InsetLabel & lab = dynamic_cast<InsetLabel &>(*it);
                        docstring const oldname = lab.getParam("name");
                        lab.updateCommand(oldname, false);
+                       // We need to update the buffer reference cache.
+                       cur.forceBufferUpdate();
                        docstring const newname = lab.getParam("name");
                        if (oldname == newname)
                                break;
@@ -287,7 +291,7 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist,
                                                static_cast<InsetMathHull &>(*itt);
                                        // this is necessary to prevent an uninitialized
                                        // buffer when the RefInset is in a MathBox.
-                                       // FIXME audit setBuffer/updateLabels calls
+                                       // FIXME audit setBuffer calls
                                        mi.setBuffer(const_cast<Buffer &>(buffer));
                                        if (mi.asRefInset()->getTarget() == oldname)
                                                mi.asRefInset()->changeTarget(newname);
@@ -299,14 +303,18 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist,
                case INCLUDE_CODE: {
                        InsetInclude & inc = static_cast<InsetInclude &>(*it);
                        inc.updateCommand();
+                       // We need to update the list of included files.
+                       cur.forceBufferUpdate();
                        break;
                }
 
                case BIBITEM_CODE: {
                        // check for duplicates
-                       InsetCommand & bib = static_cast<InsetCommand &>(*it);
+                       InsetBibitem & bib = dynamic_cast<InsetBibitem &>(*it);
                        docstring const oldkey = bib.getParam("key");
                        bib.updateCommand(oldkey, false);
+                       // We need to update the buffer reference cache.
+                       cur.forceBufferUpdate();
                        docstring const newkey = bib.getParam("key");
                        if (oldkey == newkey)
                                break;
@@ -345,6 +353,8 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist,
                                          text, 0, 1, _("&Add"), _("&Don't Add")) != 0)
                                break;
                        lyx::dispatch(FuncRequest(LFUN_BRANCH_ADD, name));
+                       // We need to update the list of branches.
+                       cur.forceBufferUpdate();
                        break;
                }
 
@@ -382,7 +392,7 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist,
        pit = last_paste;
        pos = pars[last_paste].size();
 
-       // FIXME Should we do it here, or should we let updateLabels() do it?
+       // FIXME Should we do it here, or should we let updateBuffer() do it?
        // Set paragraph buffers. It's important to do this right away
        // before something calls Inset::buffer() and causes a crash.
        for (pit_type p = startpit; p <= pit; ++p)
@@ -464,7 +474,7 @@ void putClipboard(ParagraphList const & paragraphs,
        // some kind of garbage collection there, or a shared_ptr, then this
        // would not be needed.
        static Buffer * buffer = theBufferList().newBuffer(
-               FileName::tempName().absFilename() + "_clipboard.internal");
+               FileName::tempName().absFileName() + "_clipboard.internal");
        buffer->setUnnamed(true);
        buffer->paragraphs() = paragraphs;
        buffer->inset().setBuffer(*buffer);
@@ -539,6 +549,8 @@ void copySelectionHelper(Buffer const & buf, Text const & text,
        // deleted, unless the whole selection was deleted
        if (!isFullyDeleted(copy_pars))
                acceptChanges(copy_pars, buf.params());
+       else
+               rejectChanges(copy_pars, buf.params());
 
 
        // do some final cleanup now, to make sure that the paragraphs
@@ -754,7 +766,7 @@ void cutSelection(Cursor & cur, bool doclear, bool realcut)
                }
 
                if (begpit != endpit)
-                       cur.updateFlags(Update::Force | Update::FitCursor);
+                       cur.screenUpdateFlags(Update::Force | Update::FitCursor);
 
                boost::tie(endpit, endpos) =
                        eraseSelectionHelper(bp,
@@ -775,7 +787,7 @@ void cutSelection(Cursor & cur, bool doclear, bool realcut)
 
                // need a valid cursor. (Lgb)
                cur.clearSelection();
-               cur.buffer()->updateLabels();
+               cur.forceBufferUpdate();
 
                // tell tabular that a recent copy happened
                dirtyTabularStack(false);
@@ -953,7 +965,7 @@ void pasteParagraphList(Cursor & cur, ParagraphList const & parlist,
 
                boost::tie(ppp, endpit) =
                        pasteSelectionHelper(cur, parlist, docclass, errorList);
-               cur.buffer()->updateLabels();
+               cur.forceBufferUpdate();
                cur.clearSelection();
                text->setCursor(cur, ppp.first, ppp.second);
        }
@@ -1027,7 +1039,7 @@ void pasteClipboardGraphics(Cursor & cur, ErrorList & /* errorList */,
        // create inset for graphic
        InsetGraphics * inset = new InsetGraphics(cur.buffer());
        InsetGraphicsParams params;
-       params.filename = support::DocFileName(filename.absFilename());
+       params.filename = support::DocFileName(filename.absFileName());
        inset->setParams(params);
        cur.recordUndo();
        cur.insert(inset);