From 53caec8297a521404bfeb96027446e4a2f8499b5 Mon Sep 17 00:00:00 2001 From: John Levon Date: Sat, 8 Mar 2003 05:37:54 +0000 Subject: [PATCH] Fix for VCS after the revert patch. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6385 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/BufferView.C | 8 ++++++++ src/BufferView.h | 3 +++ src/ChangeLog | 14 ++++++++++++++ src/lyxfunc.C | 10 +--------- src/lyxfunc.h | 2 -- src/lyxvc.C | 5 ++++- src/vc-backend.C | 22 +++++++++++++++------- src/vc-backend.h | 3 +++ 8 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/BufferView.C b/src/BufferView.C index 293e0f9f4e..618d55580e 100644 --- a/src/BufferView.C +++ b/src/BufferView.C @@ -102,6 +102,14 @@ void BufferView::buffer(Buffer * b) } +void BufferView::reload() +{ + string const fn = buffer()->fileName(); + if (bufferlist.close(buffer())) + buffer(bufferlist.loadLyXFile(fn)); +} + + void BufferView::resize() { if (pimpl_->buffer_) { diff --git a/src/BufferView.h b/src/BufferView.h index 77aff425ef..a7398d0777 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -79,6 +79,9 @@ public: */ void repaint(); + /// reload the contained buffer + void reload(); + /// fit the user cursor within the visible view bool fitCursor(); /// perform pending painting updates diff --git a/src/ChangeLog b/src/ChangeLog index 4e40deedfa..5463c31b3a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,17 @@ +2003-03-08 John Levon + + * lyxfunc.h: + * lyxfunc.C: move reloadBuffer() + + * BufferView.h: + * BufferView.C: to here + + * lyxvc.C: add comment + + * vc-backend.h: + * vc-backend.C: call bv->reload() to avoid + getStatus() check on MENURELOAD + 2003-03-07 Dekel Tsur * LaTeX.C (run): Fix a bug where the DVI file was not updated due diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 64b89f1785..0092cc5296 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -1023,7 +1023,7 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) break; case LFUN_MENURELOAD: - reloadBuffer(); + view()->reload(); break; case LFUN_UPDATE: @@ -1876,14 +1876,6 @@ void LyXFunc::doImport(string const & argument) } -void LyXFunc::reloadBuffer() -{ - string const fn = owner->buffer()->fileName(); - if (bufferlist.close(owner->buffer())) - view()->buffer(bufferlist.loadLyXFile(fn)); -} - - void LyXFunc::closeBuffer() { if (bufferlist.close(owner->buffer()) && !quitting) { diff --git a/src/lyxfunc.h b/src/lyxfunc.h index 1482b175cb..59fb6ac85e 100644 --- a/src/lyxfunc.h +++ b/src/lyxfunc.h @@ -114,8 +114,6 @@ private: /// void closeBuffer(); /// - void reloadBuffer(); - /// // This return or directly text (default) of getLyXText() /// LyXText * TEXT(bool) const; diff --git a/src/lyxvc.C b/src/lyxvc.C index 629e6daebf..ddf087580a 100644 --- a/src/lyxvc.C +++ b/src/lyxvc.C @@ -19,6 +19,10 @@ using std::endl; using std::pair; +/* WARNING: Several of the vcs-> methods end up + * deleting this object via BufferView::reload() ! + */ + LyXVC::LyXVC() { vcs = 0; @@ -173,7 +177,6 @@ void LyXVC::checkOut() } vcs->checkOut(); - } diff --git a/src/vc-backend.C b/src/vc-backend.C index 3e58f9082a..52b9a73f50 100644 --- a/src/vc-backend.C +++ b/src/vc-backend.C @@ -45,6 +45,15 @@ int VCS::doVCCommand(string const & cmd, string const & path) } +void VCS::reload() +{ + owner_->getUser()->reload(); + /* Watch out ! We have deleted ourselves here + * via the ->reload() ! + */ +} + + RCS::RCS(string const & m) { master_ = m; @@ -161,7 +170,6 @@ void RCS::registrer(string const & msg) cmd += OnlyFilename(owner_->fileName()); cmd += '"'; doVCCommand(cmd, owner_->filePath()); - owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD)); } @@ -170,7 +178,7 @@ void RCS::checkIn(string const & msg) doVCCommand("ci -q -u -m\"" + msg + "\" \"" + OnlyFilename(owner_->fileName()) + '"', owner_->filePath()); - owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD)); + reload(); } @@ -180,7 +188,7 @@ void RCS::checkOut() doVCCommand("co -q -l \"" + OnlyFilename(owner_->fileName()) + '"', owner_->filePath()); - owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD)); + reload(); } @@ -191,7 +199,7 @@ void RCS::revert() owner_->filePath()); // We ignore changes and just reload! owner_->markClean(); - owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD)); + reload(); } @@ -300,7 +308,7 @@ void CVS::registrer(string const & msg) doVCCommand("cvs -q add -m \"" + msg + "\" \"" + OnlyFilename(owner_->fileName()) + '"', owner_->filePath()); - owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD)); + reload(); } @@ -309,7 +317,7 @@ void CVS::checkIn(string const & msg) doVCCommand("cvs -q commit -m \"" + msg + "\" \"" + OnlyFilename(owner_->fileName()) + '"', owner_->filePath()); - owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD)); + reload(); } @@ -329,7 +337,7 @@ void CVS::revert() doVCCommand("rm -f \"" + fil + "\"; cvs update \"" + fil + '"', owner_->filePath()); owner_->markClean(); - owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD)); + reload(); } diff --git a/src/vc-backend.h b/src/vc-backend.h index 95c0849750..a42c30f163 100644 --- a/src/vc-backend.h +++ b/src/vc-backend.h @@ -59,6 +59,9 @@ protected: /// parse information from the version file virtual void scanMaster() = 0; + /// reload the document + void reload(); + /** * doVCCommand - call out to the version control utility * @param cmd the command to execute -- 2.39.2