]> git.lyx.org Git - features.git/commitdiff
use the new bufferstorage (this change only deletes all references to the old one
authorLars Gullik Bjønnes <larsbj@gullik.org>
Mon, 15 Nov 1999 12:27:25 +0000 (12:27 +0000)
committerLars Gullik Bjønnes <larsbj@gullik.org>
Mon, 15 Nov 1999 12:27:25 +0000 (12:27 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@316 a592a061-630c-0410-9148-cb99ea01b6c8

ChangeLog
src/bufferlist.C
src/bufferlist.h
src/menus.C

index 0f4d0f61f9ff9dfec749faa199aa0e4525fc9826..5691c5a8db39ab1313ce3bf2bbb7b3faa97bfbfc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 1999-11-15  Lars Gullik Bjønnes  <larsbj@lyx.org>
 
+       * src/menus.C (ShowBufferMenu): to use the new BufferStorage
+
+       * src/bufferlist.[Ch]: use the new BufferStorage class and remove all
+       trace of the old one.
+
        * src/undo.[Ch]: made the undostack use std::list to store undo's in
        put the member definitions in undo.C.
 
index 317e9f175da1376ead88aaa0d0b850b97fe462ca..5373667768a23f928b734564b34e443000fe3e73 100644 (file)
@@ -43,29 +43,8 @@ extern int RunLinuxDoc(int, string const &);
 // Class BufferStorage
 //
 
-#ifndef NEW_STORE
-BufferStorage::BufferStorage()
-{
-       // Initialize the buffer array
-       for (int i = NUMBER_OF_BUFFERS-1; i >= 0; i--) {
-               buffer[i] = 0;
-       }
-}
-#endif
-
-#ifndef NEW_STORE
-bool BufferStorage::isEmpty()
-{
-       for (int i = NUMBER_OF_BUFFERS-1; i >= 0; i--) {
-               if (buffer[i]) return false;
-       }
-       return true;
-}
-#endif
-
 void BufferStorage::release(Buffer * buf)
 {
-#ifdef NEW_STORE
        for(Container::iterator it = container.begin();
            it != container.end(); ++it) {
                if ((*it) == buf) {
@@ -75,14 +54,6 @@ void BufferStorage::release(Buffer * buf)
                        break;
                }
        }
-#else
-       int i = 0;
-       for (i = 0; i < NUMBER_OF_BUFFERS; i++)
-               if (buffer[i] == buf) break;
-       Buffer * tmpbuf = buffer[i];
-       buffer[i] = 0;
-       delete tmpbuf;
-#endif
 }
 
 
@@ -90,62 +61,19 @@ Buffer * BufferStorage::newBuffer(string const & s,
                                 LyXRC * lyxrc,
                                 bool ronly)
 {
-#ifdef NEW_STORE
        Buffer * tmpbuf = new Buffer(s, lyxrc, ronly);
        tmpbuf->params.useClassDefaults();
        lyxerr.debug() << "Assigning to buffer "
                       << container.size() + 1 << endl;
        container.push_back(tmpbuf);
        return tmpbuf;
-#else
-       int i = 0;
-       while (i < NUMBER_OF_BUFFERS - 1
-              && buffer[i]) i++;
-       buffer[i] = new Buffer(s, lyxrc, ronly);
-       buffer[i]->params.useClassDefaults();
-       lyxerr.debug() << "Assigning to buffer " << i << endl;
-       return buffer[i];
-#endif
-}
-
-
-#ifndef NEW_STORE
-//
-// Class BufferStrorage_Iter
-//
-
-Buffer * BufferStorage_Iter::operator() ()
-{
-       int i = 0;
-       for (i = index; i < BufferStorage::NUMBER_OF_BUFFERS; i++) {
-               if (cs->buffer[i]) {
-                       index = i + 1;
-                       return cs->buffer[i];
-               }
-       }
-       return 0;       
 }
 
 
-Buffer * BufferStorage_Iter::operator[] (int a)
-{
-       // a is >= 1
-       if (a <= 0) return 0;
-       
-       int i = 0;
-       while (a--) {
-               while(!cs->buffer[i++]);
-       }
-       if (i - 1 < BufferStorage::NUMBER_OF_BUFFERS)
-               return cs->buffer[i - 1];
-       return 0;       
-}
-#endif
-
-
 //
 // Class BufferList
 //
+
 BufferList::BufferList()
 {
        _state = BufferList::OK;
@@ -164,7 +92,6 @@ bool BufferList::QwriteAll()
 {
         bool askMoreConfirmation = false;
         string unsaved;
-#ifdef NEW_STORE
        for(BufferStorage::iterator it = bstore.begin();
            it != bstore.end(); ++it) {
                if (!(*it)->isLyxClean()) {
@@ -185,28 +112,6 @@ bool BufferList::QwriteAll()
                        }
                }
        }
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer * b = 0;
-       while ((b = biter())) {
-               if (!b->isLyxClean()) {
-                       switch(AskConfirmation(_("Changes in document:"),
-                                              MakeDisplayPath(b->filename, 50),
-                                              _("Save document?"))) {
-                       case 1: // Yes
-                               MenuWrite(b);
-                               break;
-                       case 2: // No
-                               askMoreConfirmation = true;
-                               unsaved += MakeDisplayPath(b->filename, 50);
-                               unsaved += "\n";
-                                break;
-                       case 3: // Cancel
-                               return false;
-                       }
-               }
-       }
-#endif
         if (askMoreConfirmation &&
             lyxrc->exit_confirmation &&
             !AskQuestion(_("Some documents were not saved:"),
@@ -326,35 +231,19 @@ bool BufferList::write(Buffer * buf, bool makeBackup)
 void BufferList::closeAll()
 {
        _state = BufferList::CLOSING;
-#ifdef NEW_STORE
        while (!bstore.empty()) {
                close(bstore.front());
        }
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer * b = 0;
-       while ((b = biter())) {
-               close(b);
-       }
-#endif
        _state = BufferList::OK;
 }
 
 
 void BufferList::resize()
 {
-#ifdef NEW_STORE
        for(BufferStorage::iterator it = bstore.begin();
            it != bstore.end(); ++it) {
                (*it)->resize();
        }
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer * b = 0;
-       while ((b = biter())) {
-               b->resize();
-       }
-#endif
 }
 
 
@@ -393,57 +282,32 @@ void BufferList::makePup(int pup)
           */
 {
        int ant = 0;
-#ifdef NEW_STORE
        for(BufferStorage::iterator it = bstore.begin();
            it != bstore.end(); ++it) {
                string relbuf = MakeDisplayPath((*it)->filename, 30);
                fl_addtopup(pup, relbuf.c_str());
                ++ant;
        }
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer * b = 0;
-       while ((b = biter())) {
-               string relbuf = MakeDisplayPath(b->filename, 30);
-               fl_addtopup(pup, relbuf.c_str());
-               ++ant;
-       }
-#endif
        if (ant == 0) fl_addtopup(pup, _("No Documents Open!%t"));
 }
 
 
 Buffer * BufferList::first()
 {
-#ifdef NEW_STORE
        if (bstore.empty()) return 0;
        return bstore.front();
-#else
-       BufferStorage_Iter biter(bstore);
-       return biter();
-#endif
 }
 
 
 Buffer * BufferList::getBuffer(int choice)
 {
-#ifdef NEW_STORE
        if (choice >= bstore.size()) return 0;
        return bstore[choice];
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer * b = 0;
-       b = biter[choice];
-           
-       // Be careful, this could be 0.    
-       return b;
-#endif
 }
 
 
 void BufferList::updateInset(Inset * inset, bool mark_dirty)
 {
-#ifdef NEW_STORE
        for (BufferStorage::iterator it = bstore.begin();
             it != bstore.end(); ++it) {
                if ((*it)->text && (*it)->text->UpdateInset(inset)) {
@@ -452,23 +316,11 @@ void BufferList::updateInset(Inset * inset, bool mark_dirty)
                        break;
                }
        }
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer *b = 0;
-       while ((b = biter())) {
-               if (b->text && b->text->UpdateInset(inset)) {
-                       if (mark_dirty)
-                               b->markDirty();
-                       break;
-               }
-       }
-#endif
 }
 
 
 int BufferList::unlockInset(UpdatableInset * inset)
 {
-#ifdef NEW_STORE
        if (!inset) return 1;
        for(BufferStorage::iterator it = bstore.begin();
            it != bstore.end(); ++it) {
@@ -478,25 +330,11 @@ int BufferList::unlockInset(UpdatableInset * inset)
                }
        }
        return 1;
-#else
-       if (!inset) return 1;
-       
-       BufferStorage_Iter biter(bstore);
-       Buffer *b = 0;
-       while ((b = biter())) {
-               if (b->the_locking_inset == inset) {
-                       b->InsetUnlock();
-                       return 0;
-               }
-       }
-       return 1;
-#endif
 }
 
 
 void BufferList::updateIncludedTeXfiles(string const & mastertmpdir)
 {
-#ifdef NEW_STORE
        for(BufferStorage::iterator it = bstore.begin();
            it != bstore.end(); ++it) {
                if (!(*it)->isDepClean(mastertmpdir)) {
@@ -510,25 +348,11 @@ void BufferList::updateIncludedTeXfiles(string const & mastertmpdir)
                                                     
                }
        }
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer *b = 0;
-       while ((b = biter())) {
-               if (!b->isDepClean(mastertmpdir)) {
-                       string writefile = mastertmpdir;
-                       writefile += '/';
-                       writefile += ChangeExtension(b->getFileName(), ".tex", true);
-                       b->makeLaTeXFile(writefile, mastertmpdir, false, true);
-                       b->markDepClean(mastertmpdir);
-               }
-       }
-#endif
 }
 
 
 void BufferList::emergencyWriteAll()
 {
-#ifdef NEW_STORE
        for (BufferStorage::iterator it = bstore.begin();
             it != bstore.end(); ++it) {
                if (!(*it)->isLyxClean()) {
@@ -573,56 +397,10 @@ void BufferList::emergencyWriteAll()
                        }
                }
        }
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer * b = 0;
-       while ((b = biter())) {
-               if (!b->isLyxClean()) {
-                       bool madeit = false;
-                       
-                       lyxerr <<_("lyx: Attempting to save"
-                                     " document ")
-                              << b->filename
-                              << _(" as...") << endl;
-                       
-                       for (int i = 0; i<3 && !madeit; i++) {
-                               string s;
-                               
-                               // We try to save three places:
-                               // 1) Same place as document.
-                               // 2) In HOME directory.
-                               // 3) In "/tmp" directory.
-                               if (i == 0) {
-                                       s = b->filename;
-                               } else if (i == 1) {
-                                       s = AddName(GetEnvPath("HOME"),
-                                                   b->filename);
-                               } else { // MakeAbsPath to prepend the current drive letter on OS/2
-                                       s = AddName(MakeAbsPath("/tmp/"),
-                                                   b->filename);
-                               }
-                               s += ".emergency";
-                               
-                               lyxerr << "  " << i + 1 << ") " << s << endl;
-                               
-                               if (b->writeFile(s, true)) {
-                                       b->markLyxClean();
-                                       lyxerr << _("  Save seems successful. Phew.") << endl;
-                                       madeit = true;
-                               } else if (i != 2) {
-                                       lyxerr << _("  Save failed! Trying...")
-                                              << endl;
-                               } else {
-                                       lyxerr << _("  Save failed! Bummer. Document is lost.") << endl;
-                               }
-                       }
-               }
-       }
-#endif
 }
 
 
-Buffer* BufferList::readFile(string const & s, bool ronly)
+Buffer * BufferList::readFile(string const & s, bool ronly)
 {
        Buffer * b = bstore.newBuffer(s, lyxrc, ronly);
 
@@ -693,43 +471,23 @@ Buffer* BufferList::readFile(string const & s, bool ronly)
 
 bool BufferList::exists(string const & s)
 {
-#ifdef NEW_STORE
        for (BufferStorage::iterator it = bstore.begin();
             it != bstore.end(); ++it) {
                if ((*it)->filename == s)
                        return true;
        }
        return false;
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer * b = 0;
-       while ((b = biter())) {
-               if (b->filename == s)
-                       return true;
-       }
-       return false;
-#endif
 }
 
 
 Buffer * BufferList::getBuffer(string const & s)
 {
-#ifdef NEW_STORE
        for(BufferStorage::iterator it = bstore.begin();
            it != bstore.end(); ++it) {
                if ((*it)->filename == s)
                        return (*it);
        }
        return 0;
-#else
-       BufferStorage_Iter biter(bstore);
-       Buffer * b = 0;
-       while ((b = biter())) {
-               if (b->filename == s)
-                       return b;
-       }
-       return 0;
-#endif
 }
 
 
index e2c0109f32a998b45e19ecdbaae0ce742da319d1..72105a3e7157d2b81dac0ec79f6228b5e9c387b8 100644 (file)
@@ -21,8 +21,6 @@
 #include "buffer.h"
 #include "debug.h"
 
-#define NEW_STORE 1
-
 /** 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
@@ -32,7 +30,6 @@
   gave me an "internal gcc error".
   */
 class BufferStorage {
-#ifdef NEW_STORE
 public:
        ///
        typedef vector<Buffer *> Container;
@@ -57,53 +54,7 @@ public:
 private:
        ///
        Container container;
-#else
-public:
-       ///
-       BufferStorage();
-       ///
-       bool empty();
-       ///
-       void release(Buffer * buf);
-       ///
-       Buffer* newBuffer(string const & s, LyXRC *, bool = false);
-private:
-       enum {
-               /** The max number of buffers there are possible to have
-                   loaded at the same time. (this only applies when we use an
-                   array)
-               */
-               NUMBER_OF_BUFFERS = 50
-       };
-       
-       /** The Bufferlist is currently implemented as a static array.
-         The buffers are new'ed and deleted as reqested.
-         */
-       Buffer *buffer[NUMBER_OF_BUFFERS];
-       ///
-       friend class BufferStorage_Iter;
-#endif
-};
-
-
-#ifndef NEW_STORE
-/// An Iterator class for BufferStorage
-class BufferStorage_Iter {
-public:
-       ///
-       BufferStorage_Iter(BufferStorage const & bs)
-       { cs = & bs; index = 0;}
-       /// next
-       Buffer* operator() ();
-       ///
-       Buffer* operator[] (int a);
-private:
-       ///
-       const BufferStorage *cs;
-       ///
-       unsigned char index;
 };
-#endif
 
 
 /** The class governing all the open buffers
@@ -128,10 +79,10 @@ public:
        list_state getState() { return _state; }
        
        /** loads a LyX file or...
-         If the optional argument tolastfiles is false (default is
+           If the optional argument tolastfiles is false (default is
             true), the file name will not be added to the last opened
            files list
-           */  
+       */  
        Buffer * loadLyXFile(string const & filename, 
                             bool tolastfiles = true);
        
index aadcbb3a713f5dc897bb50ead91d63ec84978859..0d1252ffa35d6c4ba4845ecbf1b6c20efcc44da6 100644 (file)
@@ -1573,11 +1573,7 @@ void Menus::ShowBufferMenu(FL_OBJECT * ob, long)
        // set the pseudo menu-button back
        fl_set_object_boxtype(ob, FL_FLAT_BOX);
        fl_redraw_object(ob);
-#ifdef NEW_STORE
        if (choice > 0) men->handleBufferMenu(choice - 1);
-#else
-       if (choice > 0) men->handleBufferMenu(choice);
-#endif
    
        fl_freepup(BufferMenu);
 }