#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>
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
if (func.action == LFUN_SELF_INSERT) {
if (encoded_last_key != 0) {
- string const arg(1, encoded_last_key);
+ 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]
case LFUN_BUFFER_UPDATE:
Exporter::Export(owner->buffer(), argument, true);
- view()->showErrorList(bufferFormat(*owner->buffer()));
break;
case LFUN_BUFFER_VIEW:
Exporter::preview(owner->buffer(), argument);
- view()->showErrorList(bufferFormat(*owner->buffer()));
break;
case LFUN_BUILD_PROGRAM:
Exporter::Export(owner->buffer(), "program", true);
- view()->showErrorList(_("Build"));
break;
case LFUN_BUFFER_CHKTEX:
owner->buffer()->runChktex();
- view()->showErrorList(_("ChkTeX"));
break;
case LFUN_BUFFER_EXPORT:
owner->getDialogs().show("sendto");
else {
Exporter::Export(owner->buffer(), argument, false);
- view()->showErrorList(bufferFormat(*owner->buffer()));
}
break;
break;
} else {
- Exporter::Export(buffer, format_name, true,
- filename);
+ Exporter::Export(buffer, format_name, true, filename);
}
// Substitute $$FName for filename
}
owner->message(bformat(_("Opening help file %1$s..."),
makeDisplayPath(fname)));
- view()->loadLyXFile(fname, false);
+ owner->loadLyXFile(fname, false);
break;
}
// --- buffers ----------------------------------------
case LFUN_BUFFER_SWITCH:
- view()->setBuffer(bufferlist.getBuffer(argument));
+ owner->setBuffer(bufferlist.getBuffer(argument));
break;
case LFUN_BUFFER_NEXT:
- view()->setBuffer(bufferlist.next(view()->buffer()));
+ owner->setBuffer(bufferlist.next(view()->buffer()));
break;
case LFUN_BUFFER_PREVIOUS:
- view()->setBuffer(bufferlist.previous(view()->buffer()));
+ owner->setBuffer(bufferlist.previous(view()->buffer()));
break;
case LFUN_FILE_NEW:
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);
}
}
data = "literate ";
break;
}
- data += logfile.second;
+ data += LyXLex::quoteString(logfile.second);
owner->getDialogs().show("log", data);
} else if (name == "vclog") {
string const data = "vc " +
- owner->buffer()->lyxvc().getLogFile();
+ LyXLex::quoteString(owner->buffer()->lyxvc().getLogFile());
owner->getDialogs().show("log", data);
} else
owner->getDialogs().show(name, data);
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.
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,
static_cast<InsetText &>(buffer->inset()), el);
view()->setCursor(backcur.asDocIterator(&(buffer->inset())));
- bufferErrors(*buffer, el);
- view()->showErrorList(_("Class switch"));
+
+ buffer->errors("Class Switch");
updateLabels(*buffer);
updateforce = true;
break;
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);
}
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);
}
}
- 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());
}
}
}