#include "support/systemcall.h"
#include "support/convert.h"
#include "support/os.h"
+#include "support/unicode.h"
#include <boost/current_function.hpp>
#include <boost/filesystem/operations.hpp>
* footnote is deleted).
* When \param outer is true, the top slice is not looked at.
*/
-Change::Type lookupChange(DocIterator const & dit, bool outer = false)
+Change::Type lookupChangeType(DocIterator const & dit, bool outer = false)
{
size_t const depth = dit.depth() - (outer ? 1 : 0);
CursorSlice const & slice = dit[i];
if (!slice.inset().inMathed()
&& slice.pos() < slice.paragraph().size()) {
- Change::Type const ch = slice.paragraph().lookupChange(slice.pos());
+ Change::Type const ch = slice.paragraph().lookupChange(slice.pos()).type;
if (ch != Change::UNCHANGED)
return ch;
}
Encoding const * encoding = view()->cursor().getEncoding();
- encoded_last_key = keysym->getISOEncoded(encoding ? encoding->name() : "");
+ //encoded_last_key = keysym->getISOEncoded(encoding ? encoding->name() : "");
+ size_t encoded_last_key = keysym->getUCSEncoded();
// Do a one-deep top-level lookup for
// cancel and meta-fake keys. RVDK_PATCH_5
// When not cancel or meta-fake, do the normal lookup.
// Note how the meta_fake Mod1 bit is OR-ed in and reset afterwards.
// Mostly, meta_fake_bit = key_modifier::none. RVDK_PATCH_5.
- if ((func.action != LFUN_CANCEL) && (func.action != LFUN_META_FAKE)) {
+ if ((func.action != LFUN_CANCEL) && (func.action != LFUN_META_PREFIX)) {
// remove Caps Lock and Mod2 as a modifiers
func = keyseq.addkey(keysym, (state | meta_fake_bit));
lyxerr[Debug::KEY] << BOOST_CURRENT_FUNCTION
// Can this happen now ?
if (func.action == LFUN_NOACTION) {
- func = FuncRequest(LFUN_PREFIX);
+ func = FuncRequest(LFUN_COMMAND_PREFIX);
}
if (lyxerr.debugging(Debug::KEY)) {
// by a binding
if (keysym->isText() && keyseq.length() == 1) {
lyxerr[Debug::KEY] << "isText() is true, inserting." << endl;
- func = FuncRequest(LFUN_SELFINSERT,
+ func = FuncRequest(LFUN_SELF_INSERT,
FuncRequest::KEYBOARD);
} else {
lyxerr[Debug::KEY] << "Unknown, !isText() - giving up" << endl;
}
}
- if (func.action == LFUN_SELFINSERT) {
+ if (func.action == LFUN_SELF_INSERT) {
if (encoded_last_key != 0) {
- string const arg(1, encoded_last_key);
- dispatch(FuncRequest(LFUN_SELFINSERT, arg,
+ std::vector<char> tmp = ucs4_to_utf8(encoded_last_key);
+ string const arg(tmp.begin(), tmp.end());
+ dispatch(FuncRequest(LFUN_SELF_INSERT, arg,
FuncRequest::KEYBOARD));
lyxerr[Debug::KEY]
<< "SelfInsert arg[`" << arg << "']" << endl;
flag.setOnOff(owner->getDialogs().tooltipsEnabled());
break;
- case LFUN_READ_ONLY_TOGGLE:
+ case LFUN_BUFFER_TOGGLE_READ_ONLY:
flag.setOnOff(buf->isReadonly());
break;
- case LFUN_SWITCHBUFFER:
+ case LFUN_BUFFER_SWITCH:
// toggle on the current buffer, but do not toggle off
// the other ones (is that a good idea?)
if (cmd.argument == buf->fileName())
flag.setOnOff(true);
break;
- case LFUN_EXPORT:
+ case LFUN_BUFFER_EXPORT:
enable = cmd.argument == "custom"
|| Exporter::isExportable(*buf, cmd.argument);
break;
- case LFUN_RUNCHKTEX:
+ case LFUN_BUFFER_CHKTEX:
enable = buf->isLatex() && lyxrc.chktex_command != "none";
break;
- case LFUN_BUILDPROG:
+ case LFUN_BUILD_PROGRAM:
enable = Exporter::isExportable(*buf, "program");
break;
case LFUN_VC_REGISTER:
enable = !buf->lyxvc().inUse();
break;
- case LFUN_VC_CHECKIN:
+ case LFUN_VC_CHECK_IN:
enable = buf->lyxvc().inUse() && !buf->isReadonly();
break;
- case LFUN_VC_CHECKOUT:
+ case LFUN_VC_CHECK_OUT:
enable = buf->lyxvc().inUse() && buf->isReadonly();
break;
case LFUN_VC_REVERT:
- case LFUN_VC_UNDO:
+ case LFUN_VC_UNDO_LAST:
enable = buf->lyxvc().inUse();
break;
- case LFUN_MENURELOAD:
+ case LFUN_BUFFER_RELOAD:
enable = !buf->isUnnamed() && !buf->isClean();
break;
break;
}
- case LFUN_INSERT_CITATION: {
+ case LFUN_CITATION_INSERT: {
FuncRequest fr(LFUN_INSET_INSERT, "citation");
enable = getStatus(fr).enabled();
break;
}
- case LFUN_MENUWRITE: {
+ case LFUN_BUFFER_WRITE: {
enable = view()->buffer()->isUnnamed()
|| !view()->buffer()->isClean();
break;
// this one is difficult to get right. As a half-baked
// solution, we consider only the first action of the sequence
- case LFUN_SEQUENCE: {
+ case LFUN_COMMAND_SEQUENCE: {
// argument contains ';'-terminated commands
string const firstcmd = token(cmd.argument, ';', 0);
FuncRequest func(lyxaction.lookupFunc(firstcmd));
flag = getStatus(func);
}
- case LFUN_MENUNEW:
- case LFUN_MENUNEWTMPLT:
- case LFUN_WORDFINDFORWARD:
- case LFUN_WORDFINDBACKWARD:
- case LFUN_PREFIX:
- case LFUN_EXEC_COMMAND:
+ case LFUN_BUFFER_NEW:
+ case LFUN_BUFFER_NEW_TEMPLATE:
+ case LFUN_WORD_FIND_FORWARD:
+ case LFUN_WORD_FIND_BACKWARD:
+ case LFUN_COMMAND_PREFIX:
+ case LFUN_COMMAND_EXECUTE:
case LFUN_CANCEL:
- case LFUN_META_FAKE:
- case LFUN_CLOSEBUFFER:
- case LFUN_WRITEAS:
- case LFUN_UPDATE:
- case LFUN_PREVIEW:
- case LFUN_IMPORT:
- case LFUN_QUIT:
- case LFUN_TOCVIEW:
- case LFUN_AUTOSAVE:
+ case LFUN_META_PREFIX:
+ case LFUN_BUFFER_CLOSE:
+ case LFUN_BUFFER_WRITE_AS:
+ case LFUN_BUFFER_UPDATE:
+ case LFUN_BUFFER_VIEW:
+ case LFUN_BUFFER_IMPORT:
+ case LFUN_LYX_QUIT:
+ case LFUN_TOC_VIEW:
+ case LFUN_BUFFER_AUTO_SAVE:
case LFUN_RECONFIGURE:
case LFUN_HELP_OPEN:
case LFUN_FILE_NEW:
case LFUN_FILE_OPEN:
case LFUN_DROP_LAYOUTS_CHOICE:
- case LFUN_MENU_OPEN_BY_NAME:
- case LFUN_GETNAME:
- case LFUN_NOTIFY:
- case LFUN_GOTOFILEROW:
+ case LFUN_MENU_OPEN:
+ case LFUN_SERVER_GET_NAME:
+ case LFUN_SERVER_NOTIFY:
+ case LFUN_SERVER_GOTO_FILE_ROW:
case LFUN_DIALOG_SHOW_NEXT_INSET:
case LFUN_DIALOG_HIDE:
case LFUN_DIALOG_DISCONNECT_INSET:
- case LFUN_CHILDOPEN:
- case LFUN_TOGGLECURSORFOLLOW:
- case LFUN_KMAP_OFF:
- case LFUN_KMAP_PRIM:
- case LFUN_KMAP_SEC:
- case LFUN_KMAP_TOGGLE:
+ case LFUN_BUFFER_CHILD_OPEN:
+ case LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR:
+ case LFUN_KEYMAP_OFF:
+ case LFUN_KEYMAP_PRIMARY:
+ case LFUN_KEYMAP_SECONDARY:
+ case LFUN_KEYMAP_TOGGLE:
case LFUN_REPEAT:
- case LFUN_EXPORT_CUSTOM:
- case LFUN_PRINT:
- case LFUN_SAVEPREFERENCES:
+ case LFUN_BUFFER_EXPORT_CUSTOM:
+ case LFUN_BUFFER_PRINT:
+ case LFUN_PREFERENCES_SAVE:
case LFUN_SCREEN_FONT_UPDATE:
case LFUN_SET_COLOR:
case LFUN_MESSAGE:
case LFUN_EXTERNAL_EDIT:
case LFUN_GRAPHICS_EDIT:
case LFUN_ALL_INSETS_TOGGLE:
- case LFUN_LANGUAGE_BUFFER:
+ case LFUN_BUFFER_LANGUAGE:
case LFUN_TEXTCLASS_APPLY:
case LFUN_TEXTCLASS_LOAD:
- case LFUN_SAVE_AS_DEFAULT:
- case LFUN_BUFFERPARAMS_APPLY:
+ case LFUN_BUFFER_SAVE_AS_DEFAULT:
+ case LFUN_BUFFER_PARAMS_APPLY:
case LFUN_LYXRC_APPLY:
- case LFUN_NEXTBUFFER:
- case LFUN_PREVIOUSBUFFER:
+ case LFUN_BUFFER_NEXT:
+ case LFUN_BUFFER_PREVIOUS:
// these are handled in our dispatch()
break;
// Are we in a DELETED change-tracking region?
if (buf && buf->params().tracking_changes
- && lookupChange(cur, true) == Change::DELETED
+ && lookupChangeType(cur, true) == Change::DELETED
&& !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly)
&& !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)) {
flag.message(N_("This portion of the document is deleted."));
_("&Cancel"));
if (ret == 0)
- bv->owner()->dispatch(FuncRequest(LFUN_MENUWRITE));
+ bv->owner()->dispatch(FuncRequest(LFUN_BUFFER_WRITE));
return buf.isClean();
}
errorstat = false;
dispatch_buffer.erase();
- bool update = false;
+ // redraw the screen at the end (first of the two drawing steps).
+ //This is done unless explicitely requested otherwise
+ bool update = true;
+ // also do the second redrawing step. Only done if requested.
+ bool updateforce = false;
FuncStatus const flag = getStatus(cmd);
if (!flag.enabled()) {
<< endl;
setErrorMessage(flag.message());
} else {
-
- if (view()->available())
- view()->hideCursor();
-
switch (action) {
- case LFUN_WORDFINDFORWARD:
- case LFUN_WORDFINDBACKWARD: {
+ case LFUN_WORD_FIND_FORWARD:
+ case LFUN_WORD_FIND_BACKWARD: {
static string last_search;
string searched_string;
if (searched_string.empty())
break;
- bool const fw = action == LFUN_WORDFINDFORWARD;
+ bool const fw = action == LFUN_WORD_FIND_FORWARD;
string const data =
lyx::find::find2string(searched_string, true, false, fw);
lyx::find::find(view(), FuncRequest(LFUN_WORD_FIND, data));
break;
}
- case LFUN_PREFIX:
+ case LFUN_COMMAND_PREFIX:
owner->message(keyseq.printOptions());
break;
- case LFUN_EXEC_COMMAND:
+ case LFUN_COMMAND_EXECUTE:
owner->getToolbars().display("minibuffer", true);
owner->focus_command_buffer();
break;
setMessage(N_("Cancel"));
break;
- case LFUN_META_FAKE:
+ case LFUN_META_PREFIX:
meta_fake_bit = key_modifier::alt;
setMessage(keyseq.print());
break;
- case LFUN_READ_ONLY_TOGGLE:
+ case LFUN_BUFFER_TOGGLE_READ_ONLY:
if (owner->buffer()->lyxvc().inUse())
owner->buffer()->lyxvc().toggleReadOnly();
else
break;
// --- Menus -----------------------------------------------
- case LFUN_MENUNEW:
+ case LFUN_BUFFER_NEW:
menuNew(argument, false);
break;
- case LFUN_MENUNEWTMPLT:
+ case LFUN_BUFFER_NEW_TEMPLATE:
menuNew(argument, true);
break;
- case LFUN_CLOSEBUFFER:
+ case LFUN_BUFFER_CLOSE:
closeBuffer();
break;
- case LFUN_MENUWRITE:
+ case LFUN_BUFFER_WRITE:
if (!owner->buffer()->isUnnamed()) {
string const str = bformat(_("Saving document %1$s..."),
makeDisplayPath(owner->buffer()->fileName()));
owner->message(str + _(" done."));
} else
writeAs(owner->buffer());
+ update = false;
break;
- case LFUN_WRITEAS:
+ case LFUN_BUFFER_WRITE_AS:
writeAs(owner->buffer(), argument);
+ update = false;
break;
- case LFUN_MENURELOAD: {
+ case LFUN_BUFFER_RELOAD: {
string const file = makeDisplayPath(view()->buffer()->fileName(), 20);
string text = bformat(_("Any changes will be lost. Are you sure "
"you want to revert to the saved version of the document %1$s?"), file);
break;
}
- case LFUN_UPDATE:
+ case LFUN_BUFFER_UPDATE:
Exporter::Export(owner->buffer(), argument, true);
- view()->showErrorList(bufferFormat(*owner->buffer()));
break;
- case LFUN_PREVIEW:
+ case LFUN_BUFFER_VIEW:
Exporter::preview(owner->buffer(), argument);
- view()->showErrorList(bufferFormat(*owner->buffer()));
break;
- case LFUN_BUILDPROG:
+ case LFUN_BUILD_PROGRAM:
Exporter::Export(owner->buffer(), "program", true);
- view()->showErrorList(_("Build"));
break;
- case LFUN_RUNCHKTEX:
+ case LFUN_BUFFER_CHKTEX:
owner->buffer()->runChktex();
- view()->showErrorList(_("ChkTeX"));
break;
- case LFUN_EXPORT:
+ case LFUN_BUFFER_EXPORT:
if (argument == "custom")
owner->getDialogs().show("sendto");
else {
Exporter::Export(owner->buffer(), argument, false);
- view()->showErrorList(bufferFormat(*owner->buffer()));
}
break;
- case LFUN_EXPORT_CUSTOM: {
+ case LFUN_BUFFER_EXPORT_CUSTOM: {
string format_name;
string command = split(argument, format_name, ' ');
Format const * format = formats.getFormat(format_name);
break;
} else {
- Exporter::Export(buffer, format_name, true,
- filename);
+ Exporter::Export(buffer, format_name, true, filename);
}
// Substitute $$FName for filename
break;
}
- case LFUN_PRINT: {
+ case LFUN_BUFFER_PRINT: {
string target;
string target_name;
string command = split(split(argument, target, ' '),
break;
}
- case LFUN_IMPORT:
+ case LFUN_BUFFER_IMPORT:
doImport(argument);
break;
- case LFUN_QUIT:
+ case LFUN_LYX_QUIT:
if (view()->available()) {
// save cursor Position for opened files to .lyx/session
LyX::ref().session().saveFilePosition(owner->buffer()->fileName(),
boost::tie(view()->cursor().pit(), view()->cursor().pos()) );
- // save opened file name to .lyx/session
- LyX::ref().session().setLastOpenedFiles( bufferlist.getFileNames());
// save bookmarks to .lyx/session
view()->saveSavedPositions();
}
quitLyX(argument == "force");
break;
- case LFUN_TOCVIEW: {
+ case LFUN_TOC_VIEW: {
InsetCommandParams p("tableofcontents");
string const data = InsetCommandMailer::params2string("toc", p);
owner->getDialogs().show("toc", data, 0);
break;
}
- case LFUN_AUTOSAVE:
+ case LFUN_BUFFER_AUTO_SAVE:
autoSave(view());
break;
}
owner->message(bformat(_("Opening help file %1$s..."),
makeDisplayPath(fname)));
- view()->loadLyXFile(fname, false);
+ owner->loadLyXFile(fname, false);
break;
}
}
break;
- case LFUN_VC_CHECKIN:
+ case LFUN_VC_CHECK_IN:
if (!ensureBufferClean(view()))
break;
if (owner->buffer()->lyxvc().inUse()
}
break;
- case LFUN_VC_CHECKOUT:
+ case LFUN_VC_CHECK_OUT:
if (!ensureBufferClean(view()))
break;
if (owner->buffer()->lyxvc().inUse()
view()->reload();
break;
- case LFUN_VC_UNDO:
+ case LFUN_VC_UNDO_LAST:
owner->buffer()->lyxvc().undoLast();
view()->reload();
break;
// --- buffers ----------------------------------------
- case LFUN_SWITCHBUFFER:
- view()->setBuffer(bufferlist.getBuffer(argument));
+ case LFUN_BUFFER_SWITCH:
+ owner->setBuffer(bufferlist.getBuffer(argument));
break;
- case LFUN_NEXTBUFFER:
- view()->setBuffer(bufferlist.next(view()->buffer()));
+ case LFUN_BUFFER_NEXT:
+ owner->setBuffer(bufferlist.next(view()->buffer()));
break;
- case LFUN_PREVIOUSBUFFER:
- view()->setBuffer(bufferlist.previous(view()->buffer()));
+ case LFUN_BUFFER_PREVIOUS:
+ owner->setBuffer(bufferlist.previous(view()->buffer()));
break;
case LFUN_FILE_NEW:
owner->getToolbars().openLayoutList();
break;
- case LFUN_MENU_OPEN_BY_NAME:
+ case LFUN_MENU_OPEN:
owner->getMenubar().openByName(argument);
break;
// --- lyxserver commands ----------------------------
- case LFUN_GETNAME:
+ case LFUN_SERVER_GET_NAME:
setMessage(owner->buffer()->fileName());
lyxerr[Debug::INFO] << "FNAME["
<< owner->buffer()->fileName()
<< "] " << endl;
break;
- case LFUN_NOTIFY:
+ case LFUN_SERVER_NOTIFY:
dispatch_buffer = keyseq.print();
lyxserver->notifyClient(dispatch_buffer);
break;
- case LFUN_GOTOFILEROW: {
+ case LFUN_SERVER_GOTO_FILE_ROW: {
string file_name;
int row;
istringstream is(argument);
if (prefixIs(file_name, package().temp_dir())) {
// Needed by inverse dvi search. If it is a file
// in tmpdir, call the apropriated function
- view()->setBuffer(bufferlist.getBufferFromTmp(file_name));
+ owner->setBuffer(bufferlist.getBufferFromTmp(file_name));
} else {
// Must replace extension of the file to be .lyx
// and get full path
string const s = changeExtension(file_name, ".lyx");
// Either change buffer or load the file
if (bufferlist.exists(s)) {
- view()->setBuffer(bufferlist.getBuffer(s));
+ owner->setBuffer(bufferlist.getBuffer(s));
} else {
- view()->loadLyXFile(s);
+ owner->loadLyXFile(s);
}
}
view()->center();
// see BufferView_pimpl::center()
- view()->updateScrollbar();
break;
}
data = freefont2string();
if (!data.empty())
owner->getDialogs().show("character", data);
- }
-
- else if (name == "latexlog") {
+ } else if (name == "latexlog") {
pair<Buffer::LogType, string> const logfile =
owner->buffer()->getLogName();
switch (logfile.first) {
data = "literate ";
break;
}
- data += logfile.second;
+ data += LyXLex::quoteString(logfile.second);
owner->getDialogs().show("log", data);
- }
- else if (name == "vclog") {
+ } else if (name == "vclog") {
string const data = "vc " +
- owner->buffer()->lyxvc().getLogFile();
+ LyXLex::quoteString(owner->buffer()->lyxvc().getLogFile());
owner->getDialogs().show("log", data);
- }
- else if (name == "view-source") {
- // get the *top* level paragraphs that contain the cursor,
- // or the selected text
- lyx::pit_type par_begin;
- lyx::pit_type par_end;
- if (!view()->cursor().selection()) {
- par_begin = view()->cursor().bottom().pit();
- par_end = par_begin;
- } else {
- par_begin = view()->cursor().selectionBegin().bottom().pit();
- par_end = view()->cursor().selectionEnd().bottom().pit();
- }
- if (par_begin > par_end)
- std::swap(par_begin, par_end);
- ostringstream ostr;
- view()->buffer()->getSourceCode(ostr, par_begin, par_end + 1);
- // display the dialog and show source code
- owner->getDialogs().show("view-source", ostr.str());
- }
- else
+ } else
owner->getDialogs().show(name, data);
break;
}
break;
- case LFUN_INSERT_CITATION: {
+ case LFUN_CITATION_INSERT: {
if (!argument.empty()) {
// we can have one optional argument, delimited by '|'
// citation-insert <key>|<text_before>
break;
}
- case LFUN_CHILDOPEN: {
+ case LFUN_BUFFER_CHILD_OPEN: {
string const filename =
makeAbsPath(argument, owner->buffer()->filePath());
setMessage(N_("Opening child document ") +
view()->savePosition(0);
string const parentfilename = owner->buffer()->fileName();
if (bufferlist.exists(filename))
- view()->setBuffer(bufferlist.getBuffer(filename));
+ owner->setBuffer(bufferlist.getBuffer(filename));
else
- view()->loadLyXFile(filename);
+ owner->loadLyXFile(filename);
// Set the parent name of the child document.
// This makes insertion of citations and references in the child work,
// when the target is in the parent or another child document.
break;
}
- case LFUN_TOGGLECURSORFOLLOW:
+ case LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR:
lyxrc.cursor_follows_scrollbar = !lyxrc.cursor_follows_scrollbar;
break;
- case LFUN_KMAP_OFF:
+ case LFUN_KEYMAP_OFF:
owner->getIntl().keyMapOn(false);
break;
- case LFUN_KMAP_PRIM:
+ case LFUN_KEYMAP_PRIMARY:
owner->getIntl().keyMapPrim();
break;
- case LFUN_KMAP_SEC:
+ case LFUN_KEYMAP_SECONDARY:
owner->getIntl().keyMapSec();
break;
- case LFUN_KMAP_TOGGLE:
+ case LFUN_KEYMAP_TOGGLE:
owner->getIntl().toggleKeyMap();
break;
break;
}
- case LFUN_SEQUENCE: {
+ case LFUN_COMMAND_SEQUENCE: {
// argument contains ';'-terminated commands
string arg = argument;
while (!arg.empty()) {
break;
}
- case LFUN_SAVEPREFERENCES: {
+ case LFUN_PREFERENCES_SAVE: {
Path p(package().user_support());
lyxrc.write("preferences", false);
break;
}
// ideally, the update flag should be set by the insets,
// but this is not possible currently
- update = true;
+ updateforce = true;
break;
}
it->dispatch(tmpcur, fr);
}
}
- update = true;
+ updateforce = true;
break;
}
- case LFUN_LANGUAGE_BUFFER: {
+ case LFUN_BUFFER_LANGUAGE: {
Buffer & buffer = *owner->buffer();
Language const * oldL = buffer.params().language;
Language const * newL = languages.getLanguage(argument);
break;
}
- case LFUN_SAVE_AS_DEFAULT: {
+ case LFUN_BUFFER_SAVE_AS_DEFAULT: {
string const fname =
addName(addPath(package().user_support(), "templates/"),
"defaults.lyx");
int const unknown_tokens = defaults.readHeader(lex);
if (unknown_tokens != 0) {
- lyxerr << "Warning in LFUN_SAVE_AS_DEFAULT!\n"
+ lyxerr << "Warning in LFUN_BUFFER_SAVE_AS_DEFAULT!\n"
<< unknown_tokens << " unknown token"
<< (unknown_tokens == 1 ? "" : "s")
<< endl;
break;
}
- case LFUN_BUFFERPARAMS_APPLY: {
+ case LFUN_BUFFER_PARAMS_APPLY: {
biblio::CiteEngine const engine =
owner->buffer()->params().cite_engine;
owner->buffer()->readHeader(lex);
if (unknown_tokens != 0) {
- lyxerr << "Warning in LFUN_BUFFERPARAMS_APPLY!\n"
+ lyxerr << "Warning in LFUN_BUFFER_PARAMS_APPLY!\n"
<< unknown_tokens << " unknown token"
<< (unknown_tokens == 1 ? "" : "s")
<< endl;
recordUndoFullDocument(view());
buffer->params().textclass = new_class;
StableDocIterator backcur(view()->cursor());
- ErrorList el;
+ ErrorList & el = buffer->errorList("Class Switch");
lyx::cap::switchBetweenClasses(
old_class, new_class,
- buffer->paragraphs(), el);
+ static_cast<InsetText &>(buffer->inset()), el);
view()->setCursor(backcur.asDocIterator(&(buffer->inset())));
- bufferErrors(*buffer, el);
- view()->showErrorList(_("Class switch"));
- updateCounters(*buffer);
- update = true;
+
+ buffer->errors("Class Switch");
+ updateLabels(*buffer);
+ updateforce = true;
break;
}
default: {
view()->cursor().dispatch(cmd);
- update |= view()->cursor().result().update();
+ updateforce |= view()->cursor().result().update();
if (!view()->cursor().result().dispatched())
- update |= view()->dispatch(cmd);
+ updateforce |= view()->dispatch(cmd);
break;
}
}
// Redraw screen unless explicitly told otherwise.
// This also initializes the position cache for all insets
// in (at least partially) visible top-level paragraphs.
- if (update)
+ if (updateforce)
view()->update(Update::FitCursor | Update::Force);
- else
+ else if (update)
view()->update(Update::FitCursor);
+ owner->redrawWorkArea();
+
// 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))
view()->buffer()->markDirty();
- }
- if (view()->cursor().inTexted()) {
- view()->owner()->updateLayoutChoice();
+ if (view()->cursor().inTexted()) {
+ view()->owner()->updateLayoutChoice();
+ }
}
}
- sendDispatchMessage(_(getMessage()), cmd);
+ if (!quitting)
+ sendDispatchMessage(_(getMessage()), cmd);
}
const bool verbose = (cmd.origin == FuncRequest::UI
|| cmd.origin == FuncRequest::COMMANDBUFFER);
- if (cmd.action == LFUN_SELFINSERT || !verbose) {
+ if (cmd.action == LFUN_SELF_INSERT || !verbose) {
lyxerr[Debug::ACTION] << "dispatch msg is " << msg << endl;
if (!msg.empty())
owner->message(msg);
templname = result.second;
}
- view()->newFile(filename, templname, !name.empty());
+ Buffer * const b = newFile(filename, templname, !name.empty());
+ if (b)
+ owner->setBuffer(b);
}
// if the file doesn't exist, let the user create one
if (!fs::exists(filename)) {
- // the user specifically chose this name. Believe them.
- view()->newFile(filename, "", true);
+ // the user specifically chose this name. Believe him.
+ Buffer * const b = newFile(filename, string(), true);
+ if (b)
+ owner->setBuffer(b);
return;
}
owner->message(bformat(_("Opening document %1$s..."), disp_fn));
string str2;
- if (view()->loadLyXFile(filename)) {
+ if (owner->loadLyXFile(filename)) {
str2 = bformat(_("Document %1$s opened."), disp_fn);
} else {
str2 = bformat(_("Could not open document %1$s"), disp_fn);
formats.prettyName(format));
FileDialog fileDlg(text,
- LFUN_IMPORT,
+ LFUN_BUFFER_IMPORT,
make_pair(string(_("Documents|#o#O")),
string(lyxrc.document_path)),
make_pair(string(_("Examples|#E#e")),
}
}
- Importer::Import(owner, filename, format);
+ ErrorList errorList;
+ Importer::Import(owner, filename, format, errorList);
+ // FIXME (Abdel 12/08/06): Is there a need to display the error list here?
}
// since there's no current buffer
owner->getDialogs().hideBufferDependent();
} else {
- view()->setBuffer(bufferlist.first());
+ owner->setBuffer(bufferlist.first());
}
}
}
BufferView * LyXFunc::view() const
{
BOOST_ASSERT(owner);
- return owner->view().get();
+ return owner->view();
}
case LyXRC::RC_CURSOR_FOLLOWS_SCROLLBAR:
case LyXRC::RC_CUSTOM_EXPORT_COMMAND:
case LyXRC::RC_CUSTOM_EXPORT_FORMAT:
- case LyXRC::RC_CYGWIN_PATH_FIX:
- if (lyxrc_orig.cygwin_path_fix != lyxrc_new.cygwin_path_fix) {
- namespace os = lyx::support::os;
- os::cygwin_path_fix(lyxrc_new.cygwin_path_fix);
- }
case LyXRC::RC_DATE_INSERT_FORMAT:
case LyXRC::RC_DEFAULT_LANGUAGE:
case LyXRC::RC_DEFAULT_PAPERSIZE:
case LyXRC::RC_TEMPDIRPATH:
case LyXRC::RC_TEMPLATEPATH:
case LyXRC::RC_TEX_ALLOWS_SPACES:
+ case LyXRC::RC_TEX_EXPECTS_WINDOWS_PATHS:
+ if (lyxrc_orig.windows_style_tex_paths != lyxrc_new.windows_style_tex_paths) {
+ namespace os = lyx::support::os;
+ os::windows_style_tex_paths(lyxrc_new.windows_style_tex_paths);
+ }
case LyXRC::RC_UIFILE:
case LyXRC::RC_USER_EMAIL:
case LyXRC::RC_USER_NAME:
case LyXRC::RC_USE_SPELL_LIB:
case LyXRC::RC_VIEWDVI_PAPEROPTION:
case LyXRC::RC_VIEWER:
- case LyXRC::RC_WHEEL_JUMP:
case LyXRC::RC_LAST:
break;
}