]> git.lyx.org Git - features.git/commitdiff
Fix a few issues with session/lastopenedfiles, Bo Peng (ben.bob@gmail.com)
authorBo Peng <bpeng@lyx.org>
Fri, 28 Apr 2006 14:29:38 +0000 (14:29 +0000)
committerBo Peng <bpeng@lyx.org>
Fri, 28 Apr 2006 14:29:38 +0000 (14:29 +0000)
* src/bufferlist.C: save opened file list here, do not save slave document
* src/lyxfunc.C: not here
* src/session.[nC]: change to single file addition
* src/lyx_main.C: needed change because of single file addition

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13777 a592a061-630c-0410-9148-cb99ea01b6c8

src/bufferlist.C
src/lyx_main.C
src/lyxfunc.C
src/session.C
src/session.h

index e51779103b58657d4dfc2603d78a108140c6a78a..c86abdc837bf1af76fa2b204cf7b715d9ce11498 100644 (file)
@@ -122,6 +122,15 @@ bool BufferList::quitWriteAll()
                if (!quitWriteBuffer(*it))
                        return false;
        }
+       // now, all buffers have been written sucessfully
+       // save file names to .lyx/session
+       it = bstore.begin();
+       for (; it != end; ++it) {
+               // if master/slave are both open, do not save slave since it 
+               // will be automatically loaded when the master is loaded
+               if ((*it)->getMasterBuffer() == (*it))
+                       LyX::ref().session().addLastOpenedFile((*it)->fileName());
+       }
 
        return true;
 }
index 665185d0378808cfae531c932b00d0a5bae349c1..c847f75c24157b47eb148b1ae63797b2c4e4684a 100644 (file)
@@ -238,9 +238,9 @@ void LyX::priv_exec(int & argc, char * argv[])
        if (files.empty() && lyxrc.load_session) {
                vector<string> const & lastopened = session_->lastOpenedFiles();
                files.insert(files.end(), lastopened.begin(), lastopened.end()  );
-               // clear this list to save a few bytes of RAM
-               session_->clearLastOpenedFiles();
        }
+       // clear this list to save a few bytes of RAM
+       session_->clearLastOpenedFiles();
 
        // Execute batch commands if available
        if (!batch_command.empty()) {
index 1af50031f1cc70181f0d523d0a55c3c0fd440665..71aabfa5185684149f92ae702df4c00b4d63671b 100644 (file)
@@ -1011,8 +1011,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                // save cursor Position for opened files to .lyx/session
                                LyX::ref().session().saveFilePosition(owner->buffer()->fileName(),
                                        boost::tie(view()->cursor().pit(), view()->cursor().pos()) );
-                               // save opened file name to .lyx/session
-                               LyX::ref().session().setLastOpenedFiles( bufferlist.getFileNames());
                                // save bookmarks to .lyx/session
                                view()->saveSavedPositions();
                        }
index 58cd9d84a3b4f0726f80c4291d9404a0292a125f..1d1b92e0dd3e55b2c978b8047fd0f334ef305224 100644 (file)
@@ -247,9 +247,9 @@ void Session::clearLastOpenedFiles()
 }
 
 
-void Session::setLastOpenedFiles(vector<string> const & files)
+void Session::addLastOpenedFile(string const & file)
 {
-       lastopened = files;
+       lastopened.push_back(file);
 }
 
 
index 628447b76b6a8b922ace9ecd30410a4e71ebdc6d..5458211206f53ff28c9d87e7575eb448c1bea62e 100644 (file)
@@ -82,10 +82,10 @@ public:
         */
        void clearLastOpenedFiles();
 
-       /** set lastopened file list
-           @param files filenames of a list of opened files
+       /** add file to lastopened file list
+           @param file filename to add
        */
-       void setLastOpenedFiles(std::vector<std::string> const & files);
+       void addLastOpenedFile(std::string const & file);
 
        /** load saved cursor position from the fname entry in the filepos map
            @param fname file entry for which to load position information