X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferList.h;h=95df26aa6df9e9b9757e5bb00d34eb3d7d979ef4;hb=90f7007a2e6c78ffd031e4636ff909ab1bc2ddec;hp=a7a5e168c52327ec0e97708eaffaa07ab0d91077;hpb=64e1fc3bf419e60591dc2cef3b381d462c8fa6e8;p=lyx.git diff --git a/src/BufferList.h b/src/BufferList.h index a7a5e168c5..95df26aa6d 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. */ @@ -19,6 +19,7 @@ namespace lyx { +class Author; class Buffer; class OutputParams; @@ -38,6 +39,7 @@ public: public: BufferList(); + ~BufferList(); iterator begin(); const_iterator begin() const; @@ -45,9 +47,13 @@ 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); + + /// 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 * newBuffer(std::string const & s, bool ronly = false); + Buffer * newInternalBuffer(std::string const & s); /// delete a buffer void release(Buffer * b); @@ -62,18 +68,6 @@ public: /// returns a vector with all the buffers filenames support::FileNameList const & fileNames() const; - /// FIXME - void updateIncludedTeXfiles(std::string const &, OutputParams const &); - - /// 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; @@ -89,14 +83,21 @@ public: /// returns true if the buffer is loaded bool isLoaded(Buffer const * b) const; - /// return index of named buffer in buffer list + /// \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(support::FileName const &) const; - /// returns a pointer to the buffer with the given number. + + /** returns a pointer to the buffer with the given name + * + * \param internal + * If true, the buffer is searched also among internal buffers + */ + Buffer * getBuffer(support::FileName const & name, bool internal = false) const; + + /// \return a pointer to the buffer with the given number Buffer * getBuffer(unsigned int); - /// returns a pointer to the buffer whose temppath matches the string - Buffer * getBufferFromTmp(std::string const &); + + /// \return a pointer to the buffer whose temppath matches the given path + Buffer * getBufferFromTmp(std::string const & path); /** returns a pointer to the buffer that follows argument in * buffer list. The buffer following the last in list is the @@ -110,10 +111,23 @@ public: */ Buffer * previous(Buffer const *) const; + /// \name Functions that just operate on all buffers + //@{ /// reset current author for all buffers - void setCurrentAuthor(docstring const & name, docstring const & email); + void recordCurrentAuthor(Author const & author); + /// Call changed() on all buffers, internal or not + void changed(bool update_metrics) const; + /// emergency save for all buffers + void emergencyWriteAll(); + /// FIXME + void updateIncludedTeXfiles(std::string const &, OutputParams const &); + //@} private: + /// create a new buffer + /// \return 0 if the Buffer creation is not possible for whatever reason. + Buffer * createNewBuffer(std::string const & s); + /// noncopiable BufferList(BufferList const &); void operator=(BufferList const &); @@ -122,6 +136,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