c = 0;
lyx_view_->view()->getIntl().getTransManager().deadkey(
- c, get_accent(action).accent, view()->getLyXText(), view()->cursor());
+ c, get_accent(action).accent, view()->cursor().innerText(), view()->cursor());
// Need to clear, in case the minibuffer calls these
// actions
keyseq->clear();
//Encoding const * encoding = view()->cursor().getEncoding();
//encoded_last_key = keysym->getISOEncoded(encoding ? encoding->name() : "");
- size_t encoded_last_key = keysym->getUCSEncoded();
+ // FIXME: encoded_last_key shadows the member variable of the same
+ // name. Is that intended?
+ char_type encoded_last_key = keysym->getUCSEncoded();
// Do a one-deep top-level lookup for
// cancel and meta-fake keys. RVDK_PATCH_5
//lyxerr << "LyXFunc::getStatus: cmd: " << cmd << endl;
FuncStatus flag;
- if (cmd.action == LFUN_LYX_QUIT) {
- flag.message(from_utf8(N_("Exiting")));
- flag.enabled(true);
- return flag;
- } else if (cmd.action == LFUN_BOOKMARK_GOTO) {
- // bookmarks can be valid even if there is no opened buffer
- flag.enabled(LyX::ref().session().bookmarks().isValid(convert<unsigned int>(to_utf8(cmd.argument()))));
- return flag;
- } else if (cmd.action == LFUN_BOOKMARK_CLEAR) {
- flag.enabled(LyX::ref().session().bookmarks().size() > 0);
- return flag;
- } else if (cmd.action == LFUN_TOOLBAR_TOGGLE_STATE) {
- ToolbarBackend::Flags flags = lyx_view_->getToolbarState(to_utf8(cmd.argument()));
- if (!(flags & ToolbarBackend::AUTO))
- flag.setOnOff(flags & ToolbarBackend::ON);
- return flag;
- }
-
LCursor & cur = view()->cursor();
/* In LyX/Mac, when a dialog is open, the menus of the
case LFUN_DIALOG_SHOW_NEW_INSET:
enable = cur.inset().lyxCode() != InsetBase::ERT_CODE;
+ if (cur.inset().lyxCode() == InsetBase::CAPTION_CODE) {
+ FuncStatus flag;
+ if (cur.inset().getStatus(cur, cmd, flag))
+ return flag;
+ }
break;
case LFUN_DIALOG_UPDATE: {
break;
}
+ case LFUN_BOOKMARK_GOTO: {
+ const unsigned int num = convert<unsigned int>(to_utf8(cmd.argument()));
+ enable = LyX::ref().session().bookmarks().isValid(num);
+ break;
+ }
+
+ case LFUN_BOOKMARK_CLEAR:
+ enable = LyX::ref().session().bookmarks().size() > 0;
+ break;
+
+ case LFUN_TOOLBAR_TOGGLE_STATE: {
+ ToolbarBackend::Flags flags = lyx_view_->getToolbarState(to_utf8(cmd.argument()));
+ if (!(flags & ToolbarBackend::AUTO))
+ flag.setOnOff(flags & ToolbarBackend::ON);
+ break;
+ }
// this one is difficult to get right. As a half-baked
// solution, we consider only the first action of the sequence
case LFUN_BUFFER_PREVIOUS:
case LFUN_WINDOW_NEW:
case LFUN_WINDOW_CLOSE:
+ case LFUN_LYX_QUIT:
// these are handled in our dispatch()
break;
if (view()->buffer())
// cancel any selection
dispatch(FuncRequest(LFUN_MARK_OFF));
- setMessage(_("Cancel"));
+ setMessage(from_ascii(N_("Cancel")));
break;
case LFUN_META_PREFIX:
lyx_view_->message(str);
menuWrite(lyx_view_->buffer());
lyx_view_->message(str + _(" done."));
- } else
- writeAs(lyx_view_->buffer());
+ } else {
+ writeAs(lyx_view_->buffer());
+ }
updateFlags = Update::None;
break;
} else {
// case 1: print to a file
+ FileName const filename(makeAbsPath(target_name, path));
+ if (fs::exists(filename.toFilesystemEncoding())) {
+ docstring text = bformat(
+ _("The file %1$s already exists.\n\n"
+ "Do you want to over-write that file?"),
+ makeDisplayPath(filename.absFilename()));
+ if (Alert::prompt(_("Over-write file?"),
+ text, 0, 1, _("&Over-write"), _("&Cancel")) != 0)
+ break;
+ }
command += lyxrc.print_to_file
- + quoteName(makeAbsPath(target_name,
- path).toFilesystemEncoding())
+ + quoteName(filename.toFilesystemEncoding())
+ ' '
+ quoteName(dviname);
res = one.startscript(Systemcall::DontWait,
case LFUN_LYX_QUIT:
// quitting is triggered by the gui code
// (leaving the event loop).
+ lyx_view_->message(from_utf8(N_("Exiting.")));
if (theBufferList().quitWriteAll())
theApp()->gui().closeAllViews();
break;
BOOST_ASSERT(lyx_view_);
string const arg = argument;
if (arg.empty()) {
- setErrorMessage(_("Missing argument"));
+ setErrorMessage(from_ascii(N_("Missing argument")));
break;
}
FileName const fname = i18nLibFileSearch("doc", arg, "lyx");
// --- buffers ----------------------------------------
case LFUN_BUFFER_SWITCH:
BOOST_ASSERT(lyx_view_);
- // update bookmark pit of the current buffer before switch
- for (size_t i = 0; i < LyX::ref().session().bookmarks().size(); ++i)
- gotoBookmark(i+1, false, false);
lyx_view_->setBuffer(theBufferList().getBuffer(argument));
break;
view()->setCursorFromRow(row);
- view()->center();
- // see BufferView::center()
+ updateFlags = Update::FitCursor;
break;
}
BOOST_ASSERT(lyx_view_);
FileName const filename =
makeAbsPath(argument, lyx_view_->buffer()->filePath());
- // FIXME Should use bformat
- setMessage(_("Opening child document ") +
- makeDisplayPath(filename.absFilename()) + "...");
+ setMessage(bformat(_("Opening child document %1$s..."),
+ makeDisplayPath(filename.absFilename())));
view()->saveBookmark(false);
string const parentfilename = lyx_view_->buffer()->fileName();
if (theBufferList().exists(filename.absFilename()))
string lyx_name;
string const x11_name = split(argument, lyx_name, ' ');
if (lyx_name.empty() || x11_name.empty()) {
- setErrorMessage(_("Syntax: set-color <lyx_name>"
- " <x11_name>"));
+ setErrorMessage(from_ascii(N_(
+ "Syntax: set-color <lyx_name>"
+ " <x11_name>")));
break;
}
}
if (defaults.writeFile(FileName(defaults.fileName())))
- // FIXME Should use bformat
- setMessage(_("Document defaults saved in ")
- + makeDisplayPath(fname));
+ setMessage(bformat(_("Document defaults saved in %1$s"),
+ makeDisplayPath(fname)));
else
- setErrorMessage(_("Unable to save document defaults"));
+ setErrorMessage(from_ascii(N_("Unable to save document defaults")));
break;
}
view()->cursor().dispatch(cmd);
updateFlags = view()->cursor().result().update();
if (!view()->cursor().result().dispatched())
- if (view()->dispatch(cmd))
- updateFlags = Update::Force | Update::FitCursor;
+ updateFlags = view()->dispatch(cmd);
break;
}
}
// if we executed a mutating lfun, mark the buffer as dirty
if (flag.enabled()
- && !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)
- && !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly))
+ && !lyxaction.funcHasFlag(action, LyXAction::NoBuffer)
+ && !lyxaction.funcHasFlag(action, LyXAction::ReadOnly))
view()->buffer()->markDirty();
if (view()->cursor().inTexted()) {
if (!quitting) {
lyx_view_->updateMenubar();
lyx_view_->updateToolbars();
- sendDispatchMessage(getMessage(), cmd);
+ // Some messages may already be translated, so we cannot use _()
+ sendDispatchMessage(translateIfPossible(getMessage()), cmd);
}
}
}
Buffer * const b = newFile(filename, templname, !name.empty());
- if (b)
+ if (b) {
+ updateLabels(*b);
lyx_view_->setBuffer(b);
+ }
}