* 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.
*/
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.
public:
BufferList();
+ ~BufferList();
iterator begin();
const_iterator begin() const;
const_iterator end() const;
/// 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<std::string> const getFileNames() const;
+ support::FileNameList const & fileNames() const;
/// FIXME
void updateIncludedTeXfiles(std::string const &, OutputParams const &);
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
/// reset current author for all buffers
void setCurrentAuthor(docstring const & name, docstring const & email);
+ /// Call changed() on all buffers, internal or not
+ void changed() const;
+
private:
/// noncopiable
BufferList(BufferList const &);
/// storage of all buffers
BufferStorage bstore;
-
- /// save emergency file for the given buffer
- void emergencyWrite(Buffer * buf);
+ /// storage of all internal buffers used for cut&paste, etc.
+ BufferStorage binternal;
};
/// Implementation is in LyX.cpp