From: Bo Peng Date: Fri, 28 Apr 2006 14:29:38 +0000 (+0000) Subject: Fix a few issues with session/lastopenedfiles, Bo Peng (ben.bob@gmail.com) X-Git-Tag: 1.6.10~13274 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=34770cd68bdc30b0685cdf2cfbae9463ef1747c5;p=features.git Fix a few issues with session/lastopenedfiles, Bo Peng (ben.bob@gmail.com) * 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 --- diff --git a/src/bufferlist.C b/src/bufferlist.C index e51779103b..c86abdc837 100644 --- a/src/bufferlist.C +++ b/src/bufferlist.C @@ -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; } diff --git a/src/lyx_main.C b/src/lyx_main.C index 665185d037..c847f75c24 100644 --- a/src/lyx_main.C +++ b/src/lyx_main.C @@ -238,9 +238,9 @@ void LyX::priv_exec(int & argc, char * argv[]) if (files.empty() && lyxrc.load_session) { vector 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()) { diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 1af50031f1..71aabfa518 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -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(); } diff --git a/src/session.C b/src/session.C index 58cd9d84a3..1d1b92e0dd 100644 --- a/src/session.C +++ b/src/session.C @@ -247,9 +247,9 @@ void Session::clearLastOpenedFiles() } -void Session::setLastOpenedFiles(vector const & files) +void Session::addLastOpenedFile(string const & file) { - lastopened = files; + lastopened.push_back(file); } diff --git a/src/session.h b/src/session.h index 628447b76b..5458211206 100644 --- a/src/session.h +++ b/src/session.h @@ -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 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