}
+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));
+
+ bool loaded = ::loadLyXFile(b, s);
- if (!::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)
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);