X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfunc.C;h=ff526d5968dab7ef08868c7e5c70bf392af54565;hb=52eb91c94fb70d58dceef430659c8781de2eccda;hp=7bc580d7e7f633961509e0250f74c665b9be1d43;hpb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;p=lyx.git diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 7bc580d7e7..ff526d5968 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -232,7 +232,7 @@ void LyXFunc::handleKeyFunc(kb_action action) 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(); @@ -296,7 +296,9 @@ void LyXFunc::processKeySym(LyXKeySymPtr keysym, key_modifier::state state) //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 @@ -575,6 +577,11 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const 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: { @@ -839,7 +846,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd) if (view()->buffer()) // cancel any selection dispatch(FuncRequest(LFUN_MARK_OFF)); - setMessage(_("Cancel")); + setMessage(from_ascii(N_("Cancel"))); break; case LFUN_META_PREFIX: @@ -878,8 +885,9 @@ void LyXFunc::dispatch(FuncRequest const & cmd) 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; @@ -1052,9 +1060,18 @@ void LyXFunc::dispatch(FuncRequest const & cmd) } 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, @@ -1099,7 +1116,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd) 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"); @@ -1163,9 +1180,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd) // --- 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; @@ -1237,8 +1251,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd) view()->setCursorFromRow(row); - view()->center(); - // see BufferView::center() + updateFlags = Update::FitCursor; break; } @@ -1386,9 +1399,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd) 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())) @@ -1474,8 +1486,9 @@ void LyXFunc::dispatch(FuncRequest const & cmd) string lyx_name; string const x11_name = split(argument, lyx_name, ' '); if (lyx_name.empty() || x11_name.empty()) { - setErrorMessage(_("Syntax: set-color " - " ")); + setErrorMessage(from_ascii(N_( + "Syntax: set-color " + " "))); break; } @@ -1600,11 +1613,10 @@ void LyXFunc::dispatch(FuncRequest const & cmd) } 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; } @@ -1738,8 +1750,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd) 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; } } @@ -1760,8 +1771,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd) // 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()) { @@ -1772,7 +1783,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd) 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); } }