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
