}
updateLabels(*buf);
lv->setBuffer(buf);
- lv->errors("Parse");
+ buf->errors("Parse");
} else {
Buffer * const b = newFile(lyxfile.absFilename(), string(), true);
if (b)
case LFUN_DIALOG_SHOW:
case LFUN_DIALOG_UPDATE:
case LFUN_TOOLBAR_TOGGLE:
+ case LFUN_INSET_APPLY:
if (lyx_view_)
return lyx_view_->getStatus(cmd);
enable = false;
&& (!buf->isClean() || buf->isExternallyModified(Buffer::timestamp_method));
break;
- case LFUN_INSET_APPLY: {
- if (!view()) {
- enable = false;
- break;
- }
- string const name = cmd.getArg(0);
- Inset * inset = lyx_view_->getOpenInset(name);
- if (inset) {
- FuncRequest fr(LFUN_INSET_MODIFY, cmd.argument());
- FuncStatus fs;
- if (!inset->getStatus(view()->cursor(), fr, fs)) {
- // Every inset is supposed to handle this
- BOOST_ASSERT(false);
- }
- flag |= fs;
- } else {
- FuncRequest fr(LFUN_INSET_INSERT, cmd.argument());
- flag |= getStatus(fr);
- }
- enable = flag.enabled();
- break;
- }
-
case LFUN_CITATION_INSERT: {
FuncRequest fr(LFUN_INSET_INSERT, "citation");
enable = getStatus(fr).enabled();
} else {
switch (action) {
// Let lyx_view_ dispatch its own actions.
+ case LFUN_BUFFER_SWITCH:
+ case LFUN_BUFFER_NEXT:
+ case LFUN_BUFFER_PREVIOUS:
case LFUN_COMMAND_EXECUTE:
case LFUN_DROP_LAYOUTS_CHOICE:
case LFUN_MENU_OPEN:
case LFUN_DIALOG_TOGGLE:
case LFUN_DIALOG_DISCONNECT_INSET:
case LFUN_DIALOG_HIDE:
+ case LFUN_DIALOG_SHOW:
+ case LFUN_INSET_APPLY:
BOOST_ASSERT(lyx_view_);
lyx_view_->dispatch(cmd);
+ if (lyx_view_->view())
+ updateFlags = lyx_view_->view()->cursor().result().update();
break;
case LFUN_WORD_FIND_FORWARD:
case LFUN_BUFFER_EXPORT:
BOOST_ASSERT(lyx_view_ && lyx_view_->buffer());
if (argument == "custom")
- lyx_view_->showDialog("sendto", string());
+ dispatch(FuncRequest(LFUN_DIALOG_SHOW, "sendto"));
else
lyx_view_->buffer()->doExport(argument, false);
break;
if (buf) {
updateLabels(*buf);
lyx_view_->setBuffer(buf);
- lyx_view_->errors("Parse");
+ buf->errors("Parse");
}
updateFlags = Update::None;
break;
break;
// --- buffers ----------------------------------------
- case LFUN_BUFFER_SWITCH:
- BOOST_ASSERT(lyx_view_);
- lyx_view_->setBuffer(theBufferList().getBuffer(argument));
- updateFlags = Update::None;
- break;
-
- case LFUN_BUFFER_NEXT:
- BOOST_ASSERT(lyx_view_);
- lyx_view_->setBuffer(theBufferList().next(lyx_view_->buffer()));
- updateFlags = Update::None;
- break;
-
- case LFUN_BUFFER_PREVIOUS:
- BOOST_ASSERT(lyx_view_);
- lyx_view_->setBuffer(theBufferList().previous(lyx_view_->buffer()));
- updateFlags = Update::None;
- break;
case LFUN_FILE_NEW: {
BOOST_ASSERT(lyx_view_);
lyx_view_->setBuffer(buf);
view()->setCursorFromRow(row);
if (loaded)
- lyx_view_->errors("Parse");
+ buf->errors("Parse");
updateFlags = Update::FitCursor;
break;
}
break;
} // end switch(code)
if (insetCodeOK)
- lyx_view_->showDialog(name, data, 0);
+ dispatch(FuncRequest(LFUN_DIALOG_SHOW, name + " " + data));
break;
}
updateLabels(*child->masterBuffer());
lyx_view_->setBuffer(child);
if (parsed)
- lyx_view_->errors("Parse");
+ child->errors("Parse");
}
// If a screen update is required (in case where auto_open is false),
break;
}
- case LFUN_INSET_APPLY: {
- BOOST_ASSERT(lyx_view_);
- string const name = cmd.getArg(0);
- Inset * inset = lyx_view_->getOpenInset(name);
- if (inset) {
- FuncRequest fr(LFUN_INSET_MODIFY, argument);
- inset->dispatch(view()->cursor(), fr);
- } else {
- FuncRequest fr(LFUN_INSET_INSERT, argument);
- dispatch(fr);
- }
- // ideally, the update flag should be set by the insets,
- // but this is not possible currently
- updateFlags = Update::Force | Update::FitCursor;
- break;
- }
-
case LFUN_ALL_INSETS_TOGGLE: {
BOOST_ASSERT(lyx_view_);
string action;
actOnUpdatedPrefs(lyxrc_orig, lyxrc);
+ theApp()->resetGui();
+
/// We force the redraw in any case because there might be
/// some screen font changes.
/// FIXME: only the current view will be updated. the Gui
}
case LFUN_WINDOW_NEW:
- LyX::ref().newLyXView();
+ theApp()->createView();
break;
case LFUN_WINDOW_CLOSE:
if (buf) {
updateLabels(*buf);
lyx_view_->setBuffer(buf);
- lyx_view_->errors("Parse");
+ buf->errors("Parse");
str2 = bformat(_("Document %1$s opened."), disp_fn);
} else {
str2 = bformat(_("Could not open document %1$s"), disp_fn);
if (buf) {
updateLabels(*buf);
lyx_view_->setBuffer(buf);
- lyx_view_->errors("Parse");
+ buf->errors("Parse");
str = bformat(_("Document %1$s reloaded."), disp_fn);
} else {
str = bformat(_("Could not reload document %1$s"), disp_fn);