* Copyright 2002 the LyX Team
* Read the file COPYING
*
+ * \author Lars Gullik Bjønnes
* \author various
*/
using std::min;
using lyx::pos_type;
+using namespace lyx::support;
using namespace bv_funcs;
extern BufferList bufferlist;
}
+void BufferView::Pimpl::addError(ErrorItem const & ei)
+{
+ errorlist_.push_back(ei);
+
+}
+
bool BufferView::Pimpl::loadLyXFile(string const & filename, bool tolastfiles)
{
}
Buffer * b = bufferlist.newBuffer(s);
- //this is the point to attach to the error signal in the buffer
+ //attach to the error signal in the buffer
+ b->parseError.connect(boost::bind(&BufferView::Pimpl::addError,
+ this, _1));
- if (!::loadLyXFile(b, s)) {
+ bool loaded = ::loadLyXFile(b, s);
+
+ if (! loaded) {
bufferlist.release(b);
string text = bformat(_("The document %1$s does "
"not yet exist.\n\n"
int const ret = Alert::prompt(_("Create new document?"),
text, 0, 1, _("&Create"), _("Cancel"));
- if (ret == 0) {
- bufferlist.close(buffer_, false);
- buffer(newFile(s, string(), true));
- }
+ if (ret == 0)
+ b = newFile(s, string(), true);
+ else
+ return false;
+
}
buffer(b);
if (tolastfiles)
lastfiles->newFile(b->fileName());
+ if (loaded)
+ bv_->showErrorList(_("Parse"));
+
return true;
}
}
// FIXME: needed when ?
- bv_->text->top_y(screen().topCursorVisible(bv_->text->cursor, bv_->text->top_y()));
+ bv_->text->top_y(screen().topCursorVisible(bv_->text));
// Buffer-dependent dialogs should be updated or
// hidden. This should go here because some dialogs (eg ToC)
mark_set = bv_->text->selection.mark();
the_locking_inset = bv_->theLockingInset();
buffer_->resizeInsets(bv_);
- // I don't think the delete and new are necessary here we
+ // I don't think the delete and new are necessary here we
// just could call only init! (Jug 20020419)
delete bv_->text;
bv_->text = new LyXText(bv_);
bv_->theLockingInset(the_locking_inset);
}
- bv_->text->top_y(screen().topCursorVisible(bv_->text->cursor, bv_->text->top_y()));
+ bv_->text->top_y(screen().topCursorVisible(bv_->text));
switchKeyMap();
owner_->busy(false);
text->selection.cursor = text->cursor;
}
- text->fullRebreak();
+ text->partialRebreak();
if (text->inset_owner) {
text->inset_owner->setUpdateStatus(bv_, InsetText::NONE);
text->selection.cursor = text->cursor;
}
- text->fullRebreak();
+ text->partialRebreak();
if (text->inset_owner) {
text->inset_owner->setUpdateStatus(bv_, InsetText::NONE);
b = bufferlist.newBuffer(fname);
::loadLyXFile(b, fname); // don't ask, just load it
}
- if (b != 0)
+ if (b != 0)
buffer(b);
}
// FIXME
if (arg.size() > 100 || arg.empty()) {
// Get word or selection
- bv_->getLyXText()->selectWordWhenUnderCursor(LyXText::WHOLE_WORD);
+ bv_->getLyXText()->selectWordWhenUnderCursor(lyx::WHOLE_WORD);
arg = bv_->getLyXText()->selectionAsString(buffer_, false);
// FIXME: where is getLyXText()->unselect(bv_) ?
}