X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferList.h;h=a7a5e168c52327ec0e97708eaffaa07ab0d91077;hb=ad91dd139c4d6665704b11d9bd34770c3b769543;hp=895dc46ee55211daf779c3fc6f154e878bb9b14a;hpb=fad47c0fe0a45da4ac4a395817a0ad73425ef275;p=lyx.git diff --git a/src/BufferList.h b/src/BufferList.h index 895dc46ee5..a7a5e168c5 100644 --- a/src/BufferList.h +++ b/src/BufferList.h @@ -14,8 +14,6 @@ #include "support/docstring.h" -#include - #include @@ -24,11 +22,16 @@ 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. */ -class BufferList : boost::noncopyable { +class BufferList { public: typedef std::vector::iterator iterator; typedef std::vector::const_iterator const_iterator; @@ -42,20 +45,22 @@ public: iterator end(); const_iterator end() const; - /// write all buffers, asking the user, returns false if cancelled - bool quitWriteAll(); - /// create a new buffer + /// \return 0 if the Buffer creation is not possible for whatever reason. Buffer * newBuffer(std::string const & s, bool ronly = false); /// 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 &); @@ -63,8 +68,11 @@ public: /// emergency save for all buffers void emergencyWriteAll(); - /// close buffer. Returns false if cancelled by user - bool close(Buffer * buf, bool ask); + /// 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; @@ -76,13 +84,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(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,16 +114,14 @@ public: void setCurrentAuthor(docstring const & name, docstring const & email); private: - /// ask to save a buffer on quit, returns false if should cancel - bool quitWriteBuffer(Buffer * buf); + /// noncopiable + BufferList(BufferList const &); + void operator=(BufferList const &); typedef std::vector BufferStorage; /// storage of all buffers BufferStorage bstore; - - /// save emergency file for the given buffer - void emergencyWrite(Buffer * buf); }; /// Implementation is in LyX.cpp