* LyX, The Document Word Processor
*
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
+ * Copyright 1995-2001 The LyX Team.
*
- * This file is Copyright 1996-2000
+ * This file is Copyright 1996-2001
* Lars Gullik Bjønnes
*
* ======================================================
#include <config.h>
+#include <assert.h>
#include <algorithm>
#include <functional>
#include "bufferlist.h"
#include "lyx_main.h"
-#include "minibuffer.h"
#include "support/FileInfo.h"
#include "support/filetools.h"
#include "support/lyxmanip.h"
#include "support/lyxfunctional.h"
+#include "support/LAssert.h"
#include "lyx_gui_misc.h"
#include "lastfiles.h"
#include "debug.h"
#include "lyxtext.h"
#include "lyx_cb.h"
#include "bufferview_funcs.h"
+#include "BufferView.h"
#include "gettext.h"
#include "LyXView.h"
#include "vc-backend.h"
void BufferStorage::release(Buffer * buf)
{
+ lyx::Assert(buf);
Container::iterator it = find(container.begin(), container.end(), buf);
if (it != container.end()) {
// Make sure that we don't store a LyXText in
}
-bool BufferList::QwriteAll()
+bool BufferList::qwriteAll()
{
bool askMoreConfirmation = false;
string unsaved;
}
-void BufferList::resize()
-{
- for_each(bstore.begin(), bstore.end(), mem_fun(&Buffer::resize));
-}
-
-
bool BufferList::close(Buffer * buf)
{
+ lyx::Assert(buf);
+
// CHECK
// Trace back why we need to use buf->getUser here.
// Perhaps slight rewrite is in order? (Lgb)
if (buf->getUser()) buf->getUser()->insetUnlock();
if (buf->paragraph && !buf->isLyxClean() && !quitting) {
if (buf->getUser())
- ProhibitInput(buf->getUser());
+ buf->getUser()->owner()->prohibitInput();
string fname;
if (buf->isUnnamed())
fname = OnlyFilename(buf->fileName());
reask = false;
} else {
if (buf->getUser())
- AllowInput(buf->getUser());
+ buf->getUser()->owner()->allowInput();
return false;
}
break;
break;
case 3: // Cancel
if (buf->getUser())
- AllowInput(buf->getUser());
+ buf->getUser()->owner()->allowInput();
return false;
}
}
if (buf->getUser())
- AllowInput(buf->getUser());
+ buf->getUser()->owner()->allowInput();
}
bstore.release(buf);
{
vector<string> nvec;
std::copy(bstore.begin(), bstore.end(),
- back_inserter_fun(nvec, &Buffer::fileName));
+ lyx::back_inserter_fun(nvec, &Buffer::fileName));
return nvec;
}
int BufferList::unlockInset(UpdatableInset * inset)
{
- if (!inset) return 1;
+ lyx::Assert(inset);
+
+ //if (!inset) return 1;
for (BufferStorage::iterator it = bstore.begin();
it != bstore.end(); ++it) {
if ((*it)->getUser()
void BufferList::emergencyWriteAll()
{
for_each(bstore.begin(), bstore.end(),
- class_fun(*this, &BufferList::emergencyWrite));
+ lyx::class_fun(*this, &BufferList::emergencyWrite));
}
void BufferList::emergencyWrite(Buffer * buf)
{
+ // assert(buf) // this is not good since C assert takes an int
+ // and a pointer is a long (JMarc)
+ assert(buf != 0); // use c assert to avoid a loop
+
+
// No need to save if the buffer has not changed.
if (buf->isLyxClean()) return;
bool BufferList::exists(string const & s) const
{
return find_if(bstore.begin(), bstore.end(),
- compare_memfun(&Buffer::fileName, s)) != bstore.end();
+ lyx::compare_memfun(&Buffer::fileName, s))
+ != bstore.end();
}
bool BufferList::isLoaded(Buffer const * b) const
{
+ lyx::Assert(b);
+
BufferStorage::const_iterator cit =
find(bstore.begin(), bstore.end(), b);
return cit != bstore.end();
{
BufferStorage::iterator it =
find_if(bstore.begin(), bstore.end(),
- compare_memfun(&Buffer::fileName, s));
+ lyx::compare_memfun(&Buffer::fileName, s));
return it != bstore.end() ? (*it) : 0;
}
if (tname.empty()) {
tname = LibFileSearch("templates", "defaults.lyx");
}
- if (!tname.empty() && IsLyXFilename(tname)) {
+ if (!tname.empty()) {
bool templateok = false;
LyXLex lex(0, 0);
lex.setFile(tname);
- if (lex.IsOK()) {
+ if (lex.isOK()) {
if (b->readFile(lex)) {
templateok = true;
}
WriteAlert(_("Error!"), _("Unable to open template"),
MakeDisplayPath(tname));
// no template, start with empty buffer
- b->paragraph = new LyXParagraph;
+ b->paragraph = new Paragraph;
}
} else { // start with empty buffer
- b->paragraph = new LyXParagraph;
+ b->paragraph = new Paragraph;
}
if (!lyxrc.new_ask_filename && !isNamed) {
Buffer * BufferList::loadLyXFile(string const & filename, bool tolastfiles)
{
- // make sure our path is absolute
- string const s = MakeAbsPath(filename);
+ // get absolute path of file and add ".lyx" to the filename if
+ // necessary
+ string s = FileSearch(string(), filename, "lyx");
+ if (s.empty()) {
+ s = filename;
+ }
// file already open?
if (exists(s)) {
bool ro = false;
switch (IsFileWriteable(s)) {
case 0:
-#if 0
- current_view->owner()->getMiniBuffer()->
- Set(_("File `") + MakeDisplayPath(s, 50) +
- _("' is read-only."));
-#endif
ro = true;
// Fall through
case 1: