using std::endl;
using std::find_if;
-extern void InsertAsciiFile(BufferView *, string const &, bool);
-extern void math_insert_symbol(string const &);
-extern bool math_insert_greek(char);
+extern void math_insert_symbol(BufferView *, string const &);
+extern bool math_insert_greek(BufferView *, char);
extern BufferList bufferlist;
extern LyXServer * lyxserver;
extern int greek_kb_flag;
extern kb_keymap * toplevel_keymap;
-extern bool MenuWrite(Buffer *);
-extern bool MenuWriteAs(Buffer *);
-extern int MenuRunLaTeX(Buffer *);
-extern int MenuBuildProg(Buffer *);
-extern int MenuRunChktex(Buffer *);
-extern void MenuPrint(Buffer *);
-extern void MenuSendto();
-extern void QuitLyX();
#if 0
extern void MenuFax(Buffer *);
#endif
// (alkis)
extern tex_accent_struct get_accent(kb_action action);
-extern void AutoSave(BufferView *);
-extern void MenuInsertLabel(string const &);
-extern void MenuLayoutCharacter();
-extern void MenuLayoutParagraph();
-extern void MenuLayoutPreamble();
-extern void MenuLayoutSave();
-
-extern Buffer * NewLyxFile(string const &);
-extern void LoadLyXFile(string const &);
-extern void Reconfigure(BufferView *);
-
extern LyXTextClass::size_type current_layout;
-extern int getISOCodeFromLaTeX(char *);
extern void ShowLatexLog();
if (lyxerr.debugging(Debug::KEY)) {
char * tmp = XKeysymToString(keysym);
- string stm = (tmp ? tmp : "");
+ string const stm = (tmp ? tmp : "");
lyxerr << "KeySym is "
<< stm
<< "["
- << keysym << "]"
+ << keysym << "] State is ["
+ << state << "]"
<< endl;
}
// Do nothing if we have nothing (JMarc)
int action = cancel_meta_seq.addkey(keysym, state
&(ShiftMask|ControlMask
|Mod1Mask));
-
+ if (lyxerr.debugging(Debug::KEY)) {
+ lyxerr << "action first set to [" << action << "]" << endl;
+ }
+
// 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 = 0. RVDK_PATCH_5.
if ((action != LFUN_CANCEL) && (action != LFUN_META_FAKE)) {
-
+ if (lyxerr.debugging(Debug::KEY)) {
+ lyxerr << "meta_fake_bit is [" << meta_fake_bit << "]" << endl;
+ }
// remove Caps Lock and Mod2 as a modifiers
action = keyseq.addkey(keysym,
(state | meta_fake_bit)
&(ShiftMask|ControlMask
- |Mod1Mask));
+ |Mod1Mask));
+ if (lyxerr.debugging(Debug::KEY)) {
+ lyxerr << "action now set to [" << action << "]" << endl;
+ }
}
// Dont remove this unless you know what you are doing.
meta_fake_bit = 0;
return 0;
}
- char isochar = keyseq.getiso();
+ char const isochar = keyseq.getiso();
if (!(state & ControlMask) &&
!(state & Mod1Mask) &&
(isochar && keysym < 0xF000)) {
// so we`ll skip the dispatch.
return 0;
}
+ } else if (action == LFUN_SELFINSERT) {
+ // We must set the argument to the char looked up by
+ // XKeysymToString
+ XKeyEvent xke;
+ xke.type = KeyPress;
+ xke.serial = 0;
+ xke.send_event = False;
+ xke.display = fl_get_display();
+ xke.window = 0;
+ xke.root = 0;
+ xke.subwindow = 0;
+ xke.time = 0;
+ xke.x = 0;
+ xke.y = 0;
+ xke.x_root = 0;
+ xke.y_root = 0;
+ xke.state = state;
+ xke.keycode = XKeysymToKeycode(fl_get_display(), keysym);
+ xke.same_screen = True;
+ char ret[10];
+ KeySym tmpkeysym;
+ int res = XLookupString(&xke, ret, 10, &tmpkeysym, 0);
+ //Assert(keysym == tmpkeysym);
+ lyxerr[Debug::KEY] << "TmpKeysym ["
+ << tmpkeysym << "]" << endl;
+
+ if (res > 0)
+ argument = string(ret, res);
+ lyxerr[Debug::KEY] << "SelfInsert arg["
+ << argument << "]" << endl;
}
+
bool tmp_sc = show_sc;
show_sc = false;
!Exporter::IsExportable(buf, argument);
break;
#endif
- case LFUN_IMPORT:
- disable = !Importer::IsImportable(argument);
- break;
case LFUN_UNDO:
disable = buf->undostack.empty();
break;
disable = !Exporter::IsExportable(buf, "program");
break;
+ case LFUN_INSERTFOOTNOTE:
+ case LFUN_FOOTMELT:
+ case LFUN_MARGINMELT:
+ // Disable insertion of floats in a tabular.
+ disable = false;
+ if (owner->view()->theLockingInset()) {
+ disable = (owner->view()->theLockingInset()->LyxCode() == Inset::TABULAR_CODE) ||
+ owner->view()->theLockingInset()->GetFirstLockingInsetOfType(Inset::TABULAR_CODE);
+ }
+ break;
+
case LFUN_LAYOUT_TABULAR:
disable = true;
if (owner->view()->theLockingInset()) {
if (buf) {
func_status box = LyXFunc::ToggleOff;
- LyXFont font;
- if (owner->view()->theLockingInset() &&
- owner->view()->theLockingInset()->getLyXText(owner->view()))
- font = owner->view()->theLockingInset()->
- getLyXText(owner->view())->real_current_font;
- else
- font = owner->view()->text->real_current_font;
+ LyXFont const & font =
+ owner->view()->getLyXText()->real_current_font;
switch (action) {
case LFUN_EMPH:
if (font.emph() == LyXFont::ON)
string argument;
kb_action action;
- LyXText * text = 0;
// we have not done anything wrong yet.
errorstat = false;
if (owner->view()->available())
owner->view()->hideCursor();
+ // We have to do this heare because of te goto below. (Lgb)
+ LyXText * text = owner->view()->getLyXText();
+
// We cannot use this function here
if (getStatus(ac) & Disabled)
goto exit_with_message;
}
}
- string shortcuts = toplevel_keymap->findbinding(pseudoaction);
+ string const shortcuts =
+ toplevel_keymap->findbinding(pseudoaction);
if (!shortcuts.empty()) {
comname += ": " + shortcuts;
}
}
}
- if (owner->view()->theLockingInset())
- text = owner->view()->theLockingInset()->
- getLyXText(owner->view());
}
- if (!text)
- text = owner->view()->text;
-
switch (action) {
// --- Misc -------------------------------------------
case LFUN_WORDFINDFORWARD :
owner->getMiniBuffer()->Set(_("Saving document"),
MakeDisplayPath(owner->buffer()->fileName()),
"...");
- MenuWrite(owner->buffer());
+ MenuWrite(owner->view(), owner->buffer());
//owner->getMiniBuffer()-> {
// Set(_("Document saved as"),
// MakeDisplayPath(owner->buffer()->fileName()));
//owner->getMiniBuffer()->Set(_("Save failed!"));
//}
} else {
- MenuWriteAs(owner->buffer());
+ MenuWriteAs(owner->view(), owner->buffer());
}
break;
case LFUN_MENUWRITEAS:
- MenuWriteAs(owner->buffer());
+ MenuWriteAs(owner->view(), owner->buffer());
break;
case LFUN_MENURELOAD:
break;
case LFUN_DEPTH:
- changeDepth(owner->view(), 0);
+ changeDepth(owner->view(), text, 0);
break;
case LFUN_DEPTH_MIN:
- changeDepth(owner->view(), -1);
+ changeDepth(owner->view(), text, -1);
break;
case LFUN_DEPTH_PLUS:
- changeDepth(owner->view(), 1);
+ changeDepth(owner->view(), text, 1);
break;
case LFUN_FREE:
break;
case LFUN_LAYOUT_SAVE_DEFAULT:
- MenuLayoutSave();
+ MenuLayoutSave(owner->view());
break;
case LFUN_DROP_LAYOUTS_CHOICE:
break;
case LFUN_INSERT_LABEL:
- MenuInsertLabel(argument);
+ MenuInsertLabel(owner->view(), argument);
break;
case LFUN_REF_INSERT:
owner->view()->text->cursor;
owner->view()->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
// It is possible to make it a lot faster still
- // just comment out the lone below...
+ // just comment out the line below...
owner->view()->showCursor();
} else {
owner->view()->cut();
case LFUN_BACKSPACE:
{
if (!owner->view()->text->selection) {
+#if 0
if (owner->getIntl()->getTrans()->backspace()) {
+#else
+ if (owner->getIntl()->getTrans().backspace()) {
+#endif
owner->view()->text->Backspace(owner->view());
owner->view()->text->sel_cursor =
owner->view()->text->cursor;
owner->view()->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
// It is possible to make it a lot faster still
- // just comment out the lone below...
+ // just comment out the line below...
owner->view()->showCursor();
}
} else {
if (keyseq.length == -1 && keyseq.getiso() != 0)
c = keyseq.getiso();
-
+
+#if 0
owner->getIntl()->getTrans()->
deadkey(c, get_accent(action).accent,
owner->view()->text);
+#else
+ owner->getIntl()->getTrans()
+ .deadkey(c, get_accent(action).accent,
+ owner->view()->text);
+#endif
// Need to reset, in case the minibuffer calls these
// actions
case LFUN_INSERT_MATH:
{
- math_insert_symbol(argument);
+ math_insert_symbol(owner->view(), argument);
}
break;
if (s.empty())
setErrorMessage(N_("Missing argument"));
else {
- string s1 = token(s, ' ', 1);
- int na = s1.empty() ? 0 : lyx::atoi(s1);
+ string const s1 = token(s, ' ', 1);
+ int const na = s1.empty() ? 0 : lyx::atoi(s1);
owner->view()->
open_new_inset(new InsetFormulaMacro(token(s, ' ', 0), na));
}
case LFUN_CITATION_CREATE:
{
- // Should do this "at source"
InsetCommandParams p( "cite" );
- if (contains(argument, "|")) {
- p.setContents( token(argument, '|', 0) );
- p.setOptions( token(argument, '|', 1) );
- } else {
- p.setContents( argument );
- }
-
- owner->getDialogs()->createCitation( p.getAsString() );
+ if (!argument.empty()) {
+ // This should be set at source, ie when typing
+ // "citation-insert foo" in the minibuffer.
+ // Question: would pybibliographer also need to be
+ // changed. Suspect so. Leave as-is therefore.
+ if (contains(argument, "|")) {
+ p.setContents( token(argument, '|', 0) );
+ p.setOptions( token(argument, '|', 1) );
+ } else {
+ p.setContents( argument );
+ }
+ Dispatch(LFUN_CITATION_INSERT, p.getAsString());
+ } else
+ owner->getDialogs()->createCitation( p.getAsString() );
}
break;
// ale970405+lasgoutt970425
// The argument can be up to two tokens separated
// by a space. The first one is the bibstyle.
- string db = token(argument, ' ', 0);
+ string const db = token(argument, ' ', 0);
string bibstyle = token(argument, ' ', 1);
if (bibstyle.empty())
bibstyle = "plain";
case LFUN_INDEX_INSERT:
{
InsetCommandParams p;
- p.setFromString( argument );
- InsetIndex * inset = new InsetIndex( p );
+ p.setFromString(argument);
+ InsetIndex * inset = new InsetIndex(p);
if (!owner->view()->insertInset(inset))
delete inset;
else
- owner->view()->updateInset( inset, true );
+ owner->view()->updateInset(inset, true);
}
break;
LyXParagraph::size_type curpos =
owner->view()->text->cursor.pos() - 1;
// Can't do that at the beginning of a paragraph
- if (curpos < 0 ) break;
+ if (curpos < 0) break;
- string curstring( owner->view()->text
- ->cursor.par()->GetWord(curpos) );
+ string const curstring(owner->view()->text
+ ->cursor.par()->GetWord(curpos));
- InsetCommandParams p( "index", curstring );
- InsetIndex * inset = new InsetIndex( p );
+ InsetCommandParams p("index", curstring);
+ InsetIndex * inset = new InsetIndex(p);
if (!owner->view()->insertInset(inset))
delete inset;
else
- owner->view()->updateInset( inset, true );
+ owner->view()->updateInset(inset, true);
}
break;
case LFUN_INDEX_PRINT:
{
- InsetCommandParams p( "printindex" );
+ InsetCommandParams p("printindex");
Inset * inset = new InsetPrintIndex(p);
if (!owner->view()->insertInset(inset, "Standard", true))
delete inset;
case LFUN_CHILDOPEN:
{
- string filename =
+ string const filename =
MakeAbsPath(argument,
OnlyPath(owner->buffer()->fileName()));
setMessage(N_("Opening child document ") +
case LFUN_INSERTFOOTNOTE:
{
LyXParagraph::footnote_kind kind;
- if (argument == "footnote")
- { kind = LyXParagraph::FOOTNOTE; }
- else if (argument == "margin")
- { kind = LyXParagraph::MARGIN; }
- else if (argument == "figure")
- { kind = LyXParagraph::FIG; }
- else if (argument == "table")
- { kind = LyXParagraph::TAB; }
- else if (argument == "wide-fig")
- { kind = LyXParagraph::WIDE_FIG; }
- else if (argument == "wide-tab")
- { kind = LyXParagraph::WIDE_TAB; }
- else if (argument == "algorithm")
- { kind = LyXParagraph::ALGORITHM; }
- else {
+ if (argument == "footnote") {
+ kind = LyXParagraph::FOOTNOTE;
+ } else if (argument == "margin") {
+ kind = LyXParagraph::MARGIN;
+ } else if (argument == "figure") {
+ kind = LyXParagraph::FIG;
+ } else if (argument == "table") {
+ kind = LyXParagraph::TAB;
+ } else if (argument == "wide-fig") {
+ kind = LyXParagraph::WIDE_FIG;
+ } else if (argument == "wide-tab") {
+ kind = LyXParagraph::WIDE_TAB;
+ } else if (argument == "algorithm") {
+ kind = LyXParagraph::ALGORITHM;
+ } else {
setErrorMessage(N_("Unknown kind of footnote"));
break;
}
case LFUN_SELFINSERT:
{
- LyXFont old_font(owner->view()->text->real_current_font);
+ LyXFont const old_font(owner->view()->text->real_current_font);
for (string::size_type i = 0; i < argument.length(); ++i) {
owner->view()->text->InsertChar(owner->view(), argument[i]);
// This needs to be in the loop, or else we
else
arg = lyxrc.date_insert_format;
char datetmp[32];
- int datetmp_len = ::strftime(datetmp, 32, arg.c_str(), now_tm);
+ int const datetmp_len =
+ ::strftime(datetmp, 32, arg.c_str(), now_tm);
for (int i = 0; i < datetmp_len; i++) {
owner->view()->text->InsertChar(owner->view(), datetmp[i]);
owner->view()->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
case LFUN_SET_COLOR:
{
- string lyx_name, x11_name;
- x11_name = split(argument, lyx_name, ' ');
+ string lyx_name;
+ string const x11_name = split(argument, lyx_name, ' ');
if (lyx_name.empty() || x11_name.empty()) {
LyXBell();
setErrorMessage(N_("Syntax: set-color <lyx_name>"
}
if (!lcolor.setColor(lyx_name, x11_name)) {
- static string err1 (N_("Set-color \""));
- static string err2 (N_("\" failed - color is undefined "
- "or may not be redefined"));
+ static string const err1 (N_("Set-color \""));
+ static string const err2 (
+ N_("\" failed - color is undefined "
+ "or may not be redefined"));
LyXBell();
- setErrorMessage(err1 + lyx_name + err2);
+ setErrorMessage(_(err1) + lyx_name + _(err2));
break;
}
lyxColorHandler->updateColor(lcolor.getFromLyXName(lyx_name));
}
owner->view()->beforeChange();
- LyXFont old_font(owner->view()->text->real_current_font);
+ LyXFont const old_font(owner->view()->text->real_current_font);
for (string::size_type i = 0;
i < argument.length(); ++i) {
if (greek_kb_flag) {
- if (!math_insert_greek(argument[i]))
+ if (!math_insert_greek(owner->view(),
+ argument[i]))
+#if 0
owner->getIntl()->getTrans()->TranslateAndInsert(argument[i], owner->view()->text);
+#else
+ owner->getIntl()->getTrans().TranslateAndInsert(argument[i], owner->view()->text);
+#endif
} else
+#if 0
owner->getIntl()->getTrans()->TranslateAndInsert(argument[i], owner->view()->text);
+#else
+ owner->getIntl()->getTrans().TranslateAndInsert(argument[i], owner->view()->text);
+#endif
}
owner->view()->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
} // end of switch
exit_with_message:
- string res = getMessage();
+ string const res = getMessage();
if (res.empty()) {
if (!commandshortcut.empty()) {
- string newbuf = owner->getMiniBuffer()->GetText();
+ string const newbuf =
+ owner->getMiniBuffer()->GetText();
if (newbuf != commandshortcut) {
owner->getMiniBuffer()->Set(newbuf
+ " " +
LyXFileDlg fileDlg;
if (owner->view()->available()) {
- string trypath = owner->buffer()->filepath;
+ string const trypath = owner->buffer()->filepath;
// If directory is writeable, use this as default.
if (IsDirWriteable(trypath) == 1)
initpath = trypath;
static int newfile_number = 0;
string s;
-
+
if (lyxrc.new_ask_filename) {
ProhibitInput(owner->view());
fileDlg.SetButton(0, _("Documents"), lyxrc.document_path);
string templname;
if (fromTemplate) {
ProhibitInput(owner->view());
- string fname = fileDlg.Select(_("Choose template"),
- lyxrc.template_path,
- "*.lyx");
+ string const fname = fileDlg.Select(_("Choose template"),
+ lyxrc.template_path,
+ "*.lyx");
AllowInput(owner->view());
if (fname.empty()) return;
templname = fname;
LyXFileDlg fileDlg;
if (owner->view()->available()) {
- string trypath = owner->buffer()->filepath;
+ string const trypath = owner->buffer()->filepath;
// If directory is writeable, use this as default.
if (IsDirWriteable(trypath) == 1)
initpath = trypath;
}
}
+
// checks for running without gui are missing.
void LyXFunc::doImport(string const & argument)
{
LyXFileDlg fileDlg;
if (owner->view()->available()) {
- string trypath = owner->buffer()->filepath;
+ string const trypath = owner->buffer()->filepath;
// If directory is writeable, use this as default.
if (IsDirWriteable(trypath) == 1)
initpath = trypath;
fileDlg.SetButton(0, _("Documents"), lyxrc.document_path);
fileDlg.SetButton(1, _("Examples"),
AddPath(system_lyxdir, "examples"));
- string text = _("Select ") + formats.PrettyName(format)
+ string const text = _("Select ") + formats.PrettyName(format)
+ _(" file to import");
- string format2 = (format == "textparagraph") ? "text" : format;
- string extension = "*." + formats.Extension(format2);
+ string const extension = "*." + formats.Extension(format);
filename = fileDlg.Select(text, initpath, extension);
AllowInput(owner->view());
// get absolute path of file
filename = MakeAbsPath(filename);
- string lyxfile = ChangeExtension(filename, ".lyx");
+ string const lyxfile = ChangeExtension(filename, ".lyx");
// Check if the document already is open
if (bufferlist.exists(lyxfile)) {
}
// Check if a LyX document by the same root exists in filesystem
- FileInfo f(lyxfile, true);
+ FileInfo const f(lyxfile, true);
if (f.exist() && !AskQuestion(_("A document by the name"),
MakeDisplayPath(lyxfile),
_("already exists. Overwrite?"))) {
LyXFileDlg fileDlg;
if (owner->view()->available()) {
- string trypath = owner->buffer()->filepath;
+ string const trypath = owner->buffer()->filepath;
// If directory is writeable, use this as default.
if (IsDirWriteable(trypath) == 1)
initpath = trypath;
// Inserts document
owner->getMiniBuffer()->Set(_("Inserting document"),
MakeDisplayPath(filename), "...");
- bool res = owner->view()->insertLyXFile(filename);
+ bool const res = owner->view()->insertLyXFile(filename);
if (res) {
owner->getMiniBuffer()->Set(_("Document"),
MakeDisplayPath(filename),
void LyXFunc::reloadBuffer()
{
- string fn = owner->buffer()->fileName();
+ string const fn = owner->buffer()->fileName();
if (bufferlist.close(owner->buffer()))
owner->view()->buffer(bufferlist.loadLyXFile(fn));
}
// set variables that don't exist
// since there's no current buffer
owner->getDialogs()->hideBufferDependent();
- }
- else {
+ } else {
owner->view()->buffer(bufferlist.first());
}
}