X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferlist.C;h=e4497ba2343298619a505eef8b2dd88d9a08af2f;hb=e059c633b01937f450ff9fa873cfc6b773aa74cc;hp=deb294cd80b60339397033fd623584f5ccda136a;hpb=c52895023e231587208b5c9257ae7825dc493ef0;p=lyx.git diff --git a/src/bufferlist.C b/src/bufferlist.C index deb294cd80..e4497ba234 100644 --- a/src/bufferlist.C +++ b/src/bufferlist.C @@ -3,8 +3,8 @@ * * LyX, The Document Word Processor * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2000 The LyX Team. * * This file is Copyright 1996-2000 * Lars Gullik Bjønnes @@ -31,14 +31,17 @@ #include "lyxrc.h" #include "lyxtext.h" #include "lyx_cb.h" +#include "bufferview_funcs.h" #include "gettext.h" #include "LyXView.h" #include "vc-backend.h" #include "TextCache.h" -extern int RunLinuxDoc(int, string const &); +extern BufferView * current_view; // called too many times in this file... +using std::vector; using std::find; +using std::endl; // // Class BufferStorage @@ -59,11 +62,9 @@ void BufferStorage::release(Buffer * buf) } -Buffer * BufferStorage::newBuffer(string const & s, - LyXRC * lyxrc, - bool ronly) +Buffer * BufferStorage::newBuffer(string const & s, bool ronly) { - Buffer * tmpbuf = new Buffer(s, lyxrc, ronly); + Buffer * tmpbuf = new Buffer(s, ronly); tmpbuf->params.useClassDefaults(); lyxerr.debug() << "Assigning to buffer " << container.size() << endl; @@ -115,7 +116,7 @@ bool BufferList::QwriteAll() } } if (askMoreConfirmation && - lyxrc->exit_confirmation && + lyxrc.exit_confirmation && !AskQuestion(_("Some documents were not saved:"), unsaved, _("Exit anyway?"))) { return false; @@ -153,32 +154,23 @@ bool BufferList::close(Buffer * buf) if (buf->getUser()) buf->getUser()->insetUnlock(); if (buf->paragraph && !buf->isLyxClean() && !quitting) { - ProhibitInput(); + ProhibitInput(buf->getUser()); switch(AskConfirmation(_("Changes in document:"), MakeDisplayPath(buf->fileName(), 50), _("Save document?"))){ case 1: // Yes -#if 0 - if (write(buf, lyxrc->make_backup)) { - lastfiles->newFile(buf->fileName()); - } else { - AllowInput(); - return false; - } -#else - if (buf->save(lyxrc->make_backup)) { + if (buf->save()) { lastfiles->newFile(buf->fileName()); } else { - AllowInput(); + AllowInput(buf->getUser()); return false; } -#endif break; case 3: // Cancel - AllowInput(); + AllowInput(buf->getUser()); return false; } - AllowInput(); + AllowInput(buf->getUser()); } bstore.release(buf); @@ -211,20 +203,6 @@ Buffer * BufferList::getBuffer(int choice) } -void BufferList::updateInset(Inset * inset, bool mark_dirty) -{ - for (BufferStorage::iterator it = bstore.begin(); - it != bstore.end(); ++it) { - if ((*it)->getUser() - && (*it)->getUser()->text->UpdateInset(inset)) { - if (mark_dirty) - (*it)->markDirty(); - break; - } - } -} - - int BufferList::unlockInset(UpdatableInset * inset) { if (!inset) return 1; @@ -312,7 +290,7 @@ void BufferList::emergencyWriteAll() Buffer * BufferList::readFile(string const & s, bool ronly) { - Buffer * b = bstore.newBuffer(s, lyxrc, ronly); + Buffer * b = bstore.newBuffer(s, ronly); string ts = s; string e = OnlyPath(s); @@ -412,7 +390,7 @@ Buffer * BufferList::getBuffer(string const & s) Buffer * BufferList::newFile(string const & name, string tname) { // get a free buffer - Buffer * b = bstore.newBuffer(name, lyxrc); + Buffer * b = bstore.newBuffer(name); // use defaults.lyx as a default template if it exists. if (tname.empty()) { @@ -450,26 +428,6 @@ Buffer * BufferList::loadLyXFile(string const & filename, bool tolastfiles) // make sure our path is absolute string s = MakeAbsPath(filename); - // Is this done too early? - // Is it LinuxDoc? - if (IsSGMLFilename(s)) { - FileInfo fi(s); - if (fi.exist() && fi.readable()) { - if (!RunLinuxDoc(-1, s)) { - s = ChangeExtension (s, ".lyx", false); - } else { // sgml2lyx failed - WriteAlert(_("Error!"), - _("Could not convert file"), s); - return 0; - } - } else { - // just change the extension and it will be - // handled like a regular lyx file that does - // not exist. - s = ChangeExtension(s, ".lyx", false); - } - } - // file already open? if (exists(s)) { if (AskQuestion(_("Document is already open:"), @@ -508,7 +466,7 @@ Buffer * BufferList::loadLyXFile(string const & filename, bool tolastfiles) if (LyXVC::file_not_found_hook(s)) { // Ask if the file should be checked out for // viewing/editing, if so: load it. - if (AskQuestion(_("Do you want to retrive file under version control?"))) { + if (AskQuestion(_("Do you want to retrieve file under version control?"))) { // How can we know _how_ to do the checkout? // With the current VC support it has to be, // a RCS file since CVS do not have special ,v files.