On Tue, Oct 22, 2002 at 03:19:56AM +0100, John Levon wrote:

> I do not understand the point in this separate class.

Here's a patch

john

Index: BufferView_pimpl.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/BufferView_pimpl.C,v
retrieving revision 1.314
diff -u -r1.314 BufferView_pimpl.C
--- BufferView_pimpl.C  21 Oct 2002 15:29:41 -0000      1.314
+++ BufferView_pimpl.C  22 Oct 2002 02:41:20 -0000
@@ -171,7 +171,9 @@
        // set current buffer
        buffer_ = b;
 
-       if (bufferlist.getState() == BufferList::CLOSING) return;
+       // if we're quitting lyx, don't bother updating stuff 
+       if (quitting)
+               return; 
 
        // if we are closing the buffer, use the first buffer as current
        if (!buffer_) {
Index: bufferlist.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/bufferlist.h,v
retrieving revision 1.33
diff -u -r1.33 bufferlist.h
--- bufferlist.h        21 Mar 2002 17:25:09 -0000      1.33
+++ bufferlist.h        22 Oct 2002 02:41:20 -0000
@@ -22,84 +22,14 @@
 class Buffer;
 class UpdatableInset;
 
-/** A class to hold all the buffers in a structure
-  The point of this class is to hide from bufferlist what kind
-  of structure the buffers are stored in. Should be no concern for
-  bufferlist if the buffers is in a array or in a linked list.
-
-  This class should ideally be enclosed inside class BufferList, but that
-  gave me an "internal gcc error".
-  */
-class BufferStorage : boost::noncopyable {
-public:
-       ///
-       typedef std::vector<Buffer *> Container;
-       ///
-       typedef Container::iterator iterator;
-       ///
-       typedef Container::const_iterator const_iterator;
-       ///
-       typedef Container::size_type size_type;
-       /**
-          Is the container empty or not.
-          \return True if the container is empty, False otherwise.
-        */
-       bool empty() const { return container.empty(); }
-       /**
-          Releases the passed buffer from the storage and deletes
-          all resources.
-          \param buf The buffer to release.
-        */
-       void release(Buffer * buf);
-       /**
-          \param s The name of the file to base the buffer on.
-          \param ronly If the buffer should be created read only of not.
-          \return The newly created buffer.
-        */
-       Buffer * newBuffer(string const & s, bool ronly = false);
-       ///
-       Container::iterator begin() { return container.begin(); }
-       ///
-       Container::iterator end() { return container.end(); }
-       ///
-       Container::const_iterator begin() const { return container.begin(); }
-       ///
-       Container::const_iterator end() const { return container.end(); }
-       ///
-       Buffer * front() { return container.front(); }
-       ///
-       Buffer * operator[](int c) { return container[c]; }
-       /**
-          What is the size of the container.
-          \return The size of the container.
-        */
-       size_type size() const { return container.size(); }
-private:
-       ///
-       Container container;
-};
-
-
 /**
-   The class holds all all open buffers, and handles construction
-   and deletions of new ones.
+ * The class holds all all open buffers, and handles construction
+ * and deletions of new ones.
  */
 class BufferList : boost::noncopyable {
 public:
-       ///
        BufferList();
 
-       /// state info
-       enum list_state {
-               ///
-               OK,
-               ///
-               CLOSING
-       };
-
-       /// returns the state of the bufferlist
-       list_state getState() const { return state_; }
-
        /**
           Loads a LyX file or...
 
@@ -117,6 +47,12 @@
        ///
        bool qwriteAll();
 
+       /// create a new buffer
+       Buffer * newBuffer(string const & s, bool ronly = false);
+
+       /// delete a buffer
+       void release(Buffer * b);
+ 
        /// Close all open buffers.
        void closeAll();
 
@@ -165,13 +101,13 @@
        bool qwriteOne(Buffer * buf, string const & fname,
                       string & unsaved_list);
 
-       ///
+       typedef std::vector<Buffer *> BufferStorage;
+ 
+       /// storage of all buffers
        BufferStorage bstore;
 
        ///
-       list_state state_;
-       ///
        void emergencyWrite(Buffer * buf);
 };
 
-#endif
+#endif // BUFFERLIST_H

Reply via email to