X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferList.h;h=edfabdfbbcd23a5c596201bddf3e6f2254c63db3;hb=4b7f1b3c3918cd32070c72b6d8e95a888981c7a2;hp=f6804c522630a290b389cd8d68e3b7239ac6aa82;hpb=72b0b23590d119ec8dd4156dab2fe3f04cab7bd4;p=lyx.git diff --git a/src/BufferList.h b/src/BufferList.h index f6804c5226..edfabdfbbc 100644 --- a/src/BufferList.h +++ b/src/BufferList.h @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * * Full author contact details are available in file CREDITS. */ @@ -22,6 +22,11 @@ namespace lyx { class Buffer; class OutputParams; +namespace support { +class FileName; +class FileNameList; +} + /** * The class holds all all open buffers, and handles construction * and deletions of new ones. @@ -33,6 +38,7 @@ public: public: BufferList(); + ~BufferList(); iterator begin(); const_iterator begin() const; @@ -47,11 +53,15 @@ public: /// delete a buffer void release(Buffer * b); + /// Release \p child if it really is a child and is not used elsewhere. + /// \return true is the file was closed. + bool releaseChild(Buffer * parent, Buffer * child); + /// Close all open buffers. void closeAll(); /// returns a vector with all the buffers filenames - std::vector const getFileNames() const; + support::FileNameList const & fileNames() const; /// FIXME void updateIncludedTeXfiles(std::string const &, OutputParams const &); @@ -59,12 +69,6 @@ public: /// emergency save for all buffers void emergencyWriteAll(); - /// save emergency file for the given buffer - /** - * \return a status message towards the user. - */ - docstring emergencyWrite(Buffer * buf); - /// return true if no buffers loaded bool empty() const; @@ -75,15 +79,15 @@ public: Buffer * last(); /// returns true if the buffer exists already - bool exists(std::string const &) const; + bool exists(support::FileName const &) const; /// returns true if the buffer is loaded bool isLoaded(Buffer const * b) const; /// return index of named buffer in buffer list - int bufferNum(std::string const & name) const; + int bufferNum(support::FileName const & name) const; /// returns a pointer to the buffer with the given name. - Buffer * getBuffer(std::string const &); + Buffer * getBuffer(support::FileName const &) const; /// returns a pointer to the buffer with the given number. Buffer * getBuffer(unsigned int); /// returns a pointer to the buffer whose temppath matches the string @@ -104,6 +108,9 @@ public: /// reset current author for all buffers void setCurrentAuthor(docstring const & name, docstring const & email); + /// Call changed() on all buffers, internal or not + void changed(bool update_metrics) const; + private: /// noncopiable BufferList(BufferList const &); @@ -113,6 +120,8 @@ private: /// storage of all buffers BufferStorage bstore; + /// storage of all internal buffers used for cut&paste, etc. + BufferStorage binternal; }; /// Implementation is in LyX.cpp