X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferList.h;h=d14766365fd33da8472ca964dbe5c5ff0a605a7e;hb=0b54650f0e7f1eae39f93444cac6c8525811975b;hp=9a390de0fb319b7436284190af948b7ff18315f0;hpb=076803fdb18d7c61e79b5b08e496bf9885cde347;p=lyx.git diff --git a/src/BufferList.h b/src/BufferList.h index 9a390de0fb..d14766365f 100644 --- a/src/BufferList.h +++ b/src/BufferList.h @@ -19,13 +19,14 @@ namespace lyx { +class Author; class Buffer; class OutputParams; namespace support { class FileName; class FileNameList; -} +} // namespace support /** * The class holds all all open buffers, and handles construction @@ -46,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 * newBuffer(std::string const & s, bool ronly = false); + 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; @@ -78,12 +84,22 @@ 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; - /// \return a pointer to the buffer with the given name - Buffer * getBuffer(support::FileName const & name) const; + + /** 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); + /// \return a pointer to the buffer whose temppath matches the given path Buffer * getBufferFromTmp(std::string const & path); @@ -102,16 +118,24 @@ public: /// \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); + /// 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 &);