X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferList.h;h=ff5156657b95e84331a5882bf19991b09d1ff100;hb=4ed0312c51704780af1c452d3a82a84171b3725a;hp=2e4258c4cc5a178e56630866298604ef9d54d5b4;hpb=fa438c1699ae0e4eec669b039162f7d56114ccda;p=lyx.git diff --git a/src/BufferList.h b/src/BufferList.h index 2e4258c4cc..ff5156657b 100644 --- a/src/BufferList.h +++ b/src/BufferList.h @@ -12,7 +12,7 @@ #ifndef BUFFER_LIST_H #define BUFFER_LIST_H -#include "support/docstring.h" +#include "support/strfwd.h" #include @@ -26,7 +26,7 @@ class OutputParams; namespace support { class FileName; class FileNameList; -} +} // namespace support /** * The class holds all all open buffers, and handles construction @@ -47,22 +47,27 @@ 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 * newInternalBuffer(std::string const & s); + + /// Is child a child of some Buffer other than parent? + /// NOTE: child must be a child of parent, and both must be non-null. + /// Otherwise we assert. + bool isOthersChild(Buffer * parent, Buffer * child) const; + /// 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 - support::FileNameList const & fileNames() const; + support::FileNameList fileNames() const; /// return true if no buffers loaded bool empty() const; @@ -79,6 +84,9 @@ public: /// returns true if the buffer is loaded bool isLoaded(Buffer const * b) const; + /// returns true if the buffer is known as internal buffer + bool isInternal(Buffer const * b) const; + /// \return index of named buffer in buffer list int bufferNum(support::FileName const & name) const; @@ -92,8 +100,9 @@ public: /// \return a pointer to the buffer with the given number Buffer * getBuffer(unsigned int); - /// \return a pointer to the buffer whose temppath matches the given path - Buffer * getBufferFromTmp(std::string const & path); + /// \return a pointer to the buffer whose temppath matches the given \p path + /// If optional \p realpath is \c true the lookup is done with real path names + Buffer * getBufferFromTmp(std::string const & path, bool realpath = false); /** returns a pointer to the buffer that follows argument in * buffer list. The buffer following the last in list is the @@ -111,15 +120,23 @@ public: //@{ /// reset current author for all buffers void recordCurrentAuthor(Author const & author); + /// update previews for all buffers, e.g. for Prefs update + void updatePreviews(); /// 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 &); + /// + void invalidateConverterCache() 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 &);