]> git.lyx.org Git - lyx.git/blobdiff - src/lyxvc.C
remove noload/don't typeset
[lyx.git] / src / lyxvc.C
index 4431b6d30f67e0f43d819539375e580cad3c77aa..595c9bb72ce1afc0fe2dfda5cda8c89e02abb6d7 100644 (file)
 #include "buffer.h"
 #include "BufferView.h"
 #include "gettext.h"
-#include "LyXView.h"
-#include "lyxfunc.h"
+#include "funcrequest.h"
 
 #include "frontends/Alert.h"
+#include "frontends/LyXView.h"
 
 #include "support/filetools.h"
 #include "support/lyxlib.h"
@@ -75,6 +75,16 @@ void LyXVC::buffer(Buffer * buf)
 
 void LyXVC::registrer()
 {
+       string const filename = owner_->fileName();
+       // there must be a file to save
+       if (!IsFileReadable(filename)) {
+               Alert::alert(_("File not saved"),
+                       _("You must save the file"),
+                       _("before it can be registered."));
+               return;
+       }
+
        // it is very likely here that the vcs is not created yet...
        if (!vcs) {
                string const cvs_entries = "CVS/Entries";
@@ -82,35 +92,34 @@ void LyXVC::registrer()
                if (IsFileReadable(cvs_entries)) {
                        lyxerr[Debug::LYXVC]
                                << "LyXVC: registering "
-                               << MakeDisplayPath(owner_->fileName())
+                               << MakeDisplayPath(filename)
                                << " with CVS" << endl;
-                       vcs = new CVS(cvs_entries, owner_->fileName());
+                       vcs = new CVS(cvs_entries, filename);
 
                } else {
                        lyxerr[Debug::LYXVC]
                                << "LyXVC: registering "
-                               << MakeDisplayPath(owner_->fileName())
+                               << MakeDisplayPath(filename)
                                << " with RCS" << endl;
-                       vcs = new RCS(owner_->fileName());
+                       vcs = new RCS(filename);
                }
 
                vcs->owner(owner_);
        }
 
        // If the document is changed, we might want to save it
-       if (!vcs->owner()->isLyxClean() &&
+       if (!vcs->owner()->isClean() &&
            Alert::askQuestion(_("Changes in document:"),
-                       MakeDisplayPath(vcs->owner()->fileName(), 50),
+                       MakeDisplayPath(filename, 50),
                        _("Save document and proceed?"))) {
                vcs->owner()->getUser()->owner()
-                       ->getLyXFunc()->dispatch(LFUN_MENUWRITE);
+                       ->dispatch(FuncRequest(LFUN_MENUWRITE));
        }
 
        // Maybe the save fails, or we answered "no". In both cases,
        // the document will be dirty, and we abort.
-       if (!vcs->owner()->isLyxClean()) {
+       if (!vcs->owner()->isClean())
                return;
-       }
 
        lyxerr[Debug::LYXVC] << "LyXVC: registrer" << endl;
        pair<bool, string> tmp =
@@ -131,19 +140,18 @@ void LyXVC::registrer()
 void LyXVC::checkIn()
 {
        // If the document is changed, we might want to save it
-       if (!vcs->owner()->isLyxClean() &&
+       if (!vcs->owner()->isClean() &&
            Alert::askQuestion(_("Changes in document:"),
                        MakeDisplayPath(vcs->owner()->fileName(), 50),
                        _("Save document and proceed?"))) {
                vcs->owner()->getUser()->owner()
-                       ->getLyXFunc()->dispatch(LFUN_MENUWRITE);
+                       ->dispatch(FuncRequest(LFUN_MENUWRITE));
        }
 
        // Maybe the save fails, or we answered "no". In both cases,
        // the document will be dirty, and we abort.
-       if (!vcs->owner()->isLyxClean()) {
+       if (!vcs->owner()->isClean())
                return;
-       }
 
        lyxerr[Debug::LYXVC] << "LyXVC: checkIn" << endl;
        pair<bool, string> tmp = Alert::askForText(_("LyX VC: Log Message"));
@@ -161,7 +169,7 @@ void LyXVC::checkIn()
 void LyXVC::checkOut()
 {
        lyxerr[Debug::LYXVC] << "LyXVC: checkOut" << endl;
-       if (!vcs->owner()->isLyxClean()
+       if (!vcs->owner()->isClean()
            && !Alert::askQuestion(_("Changes in document:"),
                           MakeDisplayPath(vcs->owner()->fileName(), 50),
                           _("Ignore changes and proceed with check out?"))) {