The branch, 2.0.x, has been updated.

- Log -----------------------------------------------------------------

commit c9cbd538b8a4cbc1c7901e00249edb7962e6ba58
Author: Vincent van Ravesteijn <[email protected]>
Date:   Sat May 12 14:11:56 2012 +0200

    New function BufferList::newInternalBuffer
    
    This solves the problem that newBuffer() already use Buffer::isInternal
    but there was no chance to set it yet.
    
    (cherry picked from commit 6cf1847b31617cd2ad190919d0ceaa51e1601ad8)

diff --git a/src/BufferList.cpp b/src/BufferList.cpp
index 5143c13..b8a30e8 100644
--- a/src/BufferList.cpp
+++ b/src/BufferList.cpp
@@ -104,8 +104,30 @@ void BufferList::release(Buffer * buf)
 }
 
 
+Buffer * BufferList::newInternalBuffer(string const & s)
+{
+       Buffer * const buf = createNewBuffer(s, false);
+       if (buf) {
+               buf->setInternal(true);
+               binternal.push_back(buf);
+       }
+       return buf;
+}
+
+
 Buffer * BufferList::newBuffer(string const & s, bool const ronly)
 {
+       Buffer * const buf = createNewBuffer(s, ronly);
+       if (buf) {
+               LYXERR(Debug::INFO, "Assigning to buffer " << bstore.size());
+               bstore.push_back(buf);
+       }
+       return buf;
+}
+
+
+Buffer * BufferList::createNewBuffer(string const & s, bool ronly)
+{
        auto_ptr<Buffer> tmpbuf;
        try {
                tmpbuf.reset(new Buffer(s, ronly));
@@ -119,12 +141,6 @@ Buffer * BufferList::newBuffer(string const & s, bool 
const ronly)
                }
        }
        tmpbuf->params().useClassDefaults();
-       if (tmpbuf->isInternal()) {
-               binternal.push_back(tmpbuf.get());
-       } else {
-               LYXERR(Debug::INFO, "Assigning to buffer " << bstore.size());
-               bstore.push_back(tmpbuf.get());
-       }
        return tmpbuf.release();
 }
 
diff --git a/src/BufferList.h b/src/BufferList.h
index b721386..88c2f0c 100644
--- a/src/BufferList.h
+++ b/src/BufferList.h
@@ -47,10 +47,14 @@ public:
        iterator end();
        const_iterator end() const;
 
-       /// create a new buffer
+       /// create a new buffer and add it to the buffer list
        /// \return 0 if the Buffer creation is not possible for whatever 
reason.
        Buffer * newBuffer(std::string const & s, bool ronly = false);
 
+       /// create an internal buffer and add it to the internal buffer list
+       /// \return 0 if the Buffer creation is not possible for whatever 
reason.
+       Buffer * newInternalBuffer(std::string const & s);
+
        /// delete a buffer
        void release(Buffer * b);
 
@@ -120,6 +124,10 @@ public:
        //@}
 
 private:
+       /// create a new buffer
+       /// \return 0 if the Buffer creation is not possible for whatever 
reason.
+       Buffer * createNewBuffer(std::string const & s, bool ronly);
+
        /// noncopiable
        BufferList(BufferList const &);
        void operator=(BufferList const &);
diff --git a/src/CutAndPaste.cpp b/src/CutAndPaste.cpp
index 45a6f72..c2d72af 100644
--- a/src/CutAndPaste.cpp
+++ b/src/CutAndPaste.cpp
@@ -469,9 +469,8 @@ void putClipboard(ParagraphList const & paragraphs,
        // a DocumentClass, via new, that is never deleted. If we were to go to
        // some kind of garbage collection there, or a shared_ptr, then this
        // would not be needed.
-       static Buffer * buffer = theBufferList().newBuffer(
+       static Buffer * buffer = theBufferList().newInternalBuffer(
                FileName::tempName("clipboard.internal").absFileName());
-       buffer->setInternal(true);
        buffer->setUnnamed(true);
        buffer->paragraphs() = paragraphs;
        buffer->inset().setBuffer(*buffer);
diff --git a/src/frontends/qt4/GuiWorkArea.cpp 
b/src/frontends/qt4/GuiWorkArea.cpp
index 0b6b5a7..1eb06a9 100644
--- a/src/frontends/qt4/GuiWorkArea.cpp
+++ b/src/frontends/qt4/GuiWorkArea.cpp
@@ -1369,9 +1369,8 @@ bool GuiWorkArea::isFullScreen()
 
 EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w)
 {
-       buffer_ = theBufferList().newBuffer(
+       buffer_ = theBufferList().newInternalBuffer(
                support::FileName::tempName("embedded.internal").absFileName());
-       buffer_->setInternal(true);
        buffer_->setUnnamed(true);
        buffer_->setFullyLoaded(true);
        setBuffer(*buffer_);

-----------------------------------------------------------------------

Summary of changes:
 src/BufferList.cpp                |   28 ++++++++++++++++++++++------
 src/BufferList.h                  |   10 +++++++++-
 src/CutAndPaste.cpp               |    3 +--
 src/frontends/qt4/GuiWorkArea.cpp |    3 +--
 4 files changed, 33 insertions(+), 11 deletions(-)


hooks/post-receive
-- 
The LyX Source Repository

Reply via email to