X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfunc.C;h=8774312f1c59444c13782e051a3068d88e34b925;hb=00d24ec87650e4ac7db77ad54cb4aa2f688100f3;hp=e348b45effdf37c59d6bf9ae41dfc4793e41e9bb;hpb=da7667356810c250a0875649d0b0291c90462c65;p=lyx.git diff --git a/src/lyxfunc.C b/src/lyxfunc.C index e348b45eff..8774312f1c 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -12,13 +12,8 @@ #include "Lsstream.h" -#if 0 -#include -#include -#else #include #include -#endif #include #include @@ -99,6 +94,8 @@ #include "TextCache.h" #include "lyxfind.h" #include "undo_funcs.h" +#include "ParagraphParameters.h" +#include "figureForm.h" using std::pair; using std::make_pair; @@ -555,7 +552,7 @@ func_status::value_type LyXFunc::getStatus(int ac, case LFUN_MATH_MUTATE: { Inset * tli = owner->view()->theLockingInset(); if (tli && (tli->lyxCode() == Inset::MATH_CODE)) { - MathInsetTypes type = mathcursor->par()->GetType(); + MathInsetTypes type = mathcursor->formula()->getType(); func_status::value_type box = func_status::ToggleOff; if (argument == "inline") { if (type == LM_OT_SIMPLE) @@ -711,7 +708,7 @@ func_status::value_type LyXFunc::getStatus(int ac, if (disable) flag |= func_status::Disabled; - // the font related functions + // the font related functions (and a few others) func_status::value_type box = func_status::ToggleOff; LyXFont const & font = TEXT(false)->real_current_font; @@ -728,16 +725,14 @@ func_status::value_type LyXFunc::getStatus(int ac, if (font.series() == LyXFont::BOLD_SERIES) box = func_status::ToggleOn; break; -#ifndef NO_LATEX - case LFUN_TEX: - if (font.latex() == LyXFont::ON) - box = func_status::ToggleOn; - break; -#endif case LFUN_READ_ONLY_TOGGLE: if (buf->isReadonly()) box = func_status::ToggleOn; break; + case LFUN_APPENDIX: + if (TEXT(false)->cursor.par()->params().startOfAppendix()) + box = func_status::ToggleOn; + break; default: box = func_status::OK; break; @@ -810,7 +805,7 @@ string const LyXFunc::dispatch(int ac, if (getStatus(ac, do_not_use_this_arg) & func_status::Disabled) { lyxerr << "LyXFunc::Dispatch: " << lyxaction.getActionName(ac) - << " [" << ac << "] is disabled ad this location" + << " [" << ac << "] is disabled at this location" << endl; goto exit_with_message; } @@ -871,12 +866,40 @@ string const LyXFunc::dispatch(int ac, inset->edit(owner->view(),slx,sly,0); return string(); } else if (((result=owner->view()->theLockingInset()-> - localDispatch(owner->view(), action, - argument)) == - UpdatableInset::DISPATCHED) || - (result == UpdatableInset::DISPATCHED_NOUPDATE)) + localDispatch(owner->view(), action, argument)) == + UpdatableInset::DISPATCHED) || + (result == UpdatableInset::DISPATCHED_NOUPDATE)) + return string(); + else if (result == UpdatableInset::FINISHED) { + if (TEXT()->cursor.par()->isRightToLeftPar(owner->buffer()->params)) { + TEXT()->cursorRight(owner->view()); + moveCursorUpdate(true, false); + owner->showState(); + } + return string(); + } else if (result == UpdatableInset::FINISHED_RIGHT) { + if (!TEXT()->cursor.par()->isRightToLeftPar(owner->buffer()->params)) { + TEXT()->cursorRight(owner->view()); + moveCursorUpdate(true, false); + owner->showState(); + } + return string(); + } else if (result == UpdatableInset::FINISHED_UP) { + if (TEXT()->cursor.row()->previous()) { + TEXT()->cursorUp(owner->view()); + moveCursorUpdate(true, false); + owner->showState(); + } + return string(); + } else if (result == UpdatableInset::FINISHED_DOWN) { + if (TEXT()->cursor.row()->next()) + TEXT()->cursorDown(owner->view()); + else + TEXT()->cursorRight(owner->view()); + moveCursorUpdate(true, false); + owner->showState(); return string(); - else { + } else { //setMessage(N_("Text mode")); switch (action) { case LFUN_UNKNOWN_ACTION: @@ -915,8 +938,6 @@ string const LyXFunc::dispatch(int ac, } } - lyx::Assert(action != LFUN_SELECT_FILE_SYNC); - switch (action) { case LFUN_ESCAPE: @@ -1137,7 +1158,7 @@ string const LyXFunc::dispatch(int ac, case LFUN_REMOVEERRORS: if (owner->view()->removeAutoInsets()) { owner->view()->redraw(); - owner->view()->fitCursor(TEXT()); + owner->view()->fitCursor(); } break; @@ -1157,14 +1178,6 @@ string const LyXFunc::dispatch(int ac, owner->getDialogs()->setUserFreeFont(); break; -#ifndef NO_LATEX - case LFUN_TEX: - Tex(owner->view()); - owner->view()->setState(); - owner->showState(); - break; -#endif - case LFUN_RECONFIGURE: Reconfigure(owner->view()); break; @@ -1373,16 +1386,10 @@ string const LyXFunc::dispatch(int ac, case LFUN_GOTOFILEROW: { -#if 0 - char file_name[100]; - int row; - ::sscanf(argument.c_str(), " %s %d", file_name, &row); -#else string file_name; int row; istringstream istr(argument.c_str()); istr >> file_name >> row; -#endif // Must replace extension of the file to be .lyx and get full path string const s(ChangeExtension(file_name, ".lyx")); @@ -1412,10 +1419,13 @@ string const LyXFunc::dispatch(int ac, lyxerr[Debug::INFO] << "No matching paragraph found! [" << id << "]" << std::endl; break; + } else { + lyxerr << "Paragraph " << par->id() + << " found." << endl; } // Set the cursor - TEXT()->setCursor(owner->view(), par, 0); + owner->view()->text->setCursor(owner->view(), par, 0); owner->view()->setState(); owner->showState(); @@ -1465,30 +1475,6 @@ string const LyXFunc::dispatch(int ac, // --- insert characters ---------------------------------------- // --- Mathed stuff. If we are here, there is no locked inset yet. - - // Greek mode - case LFUN_GREEK: - { - if (!greek_kb_flag) { - greek_kb_flag = 1; - setMessage(N_("Math greek mode on")); - } else - greek_kb_flag = 0; - } - break; - - // Greek keyboard - case LFUN_GREEK_TOGGLE: - { - greek_kb_flag = greek_kb_flag ? 0 : 2; - if (greek_kb_flag) { - setMessage(N_("Math greek keyboard on")); - } else { - setMessage(N_("Math greek keyboard off")); - } - } - break; - case LFUN_MATH_EXTERN: case LFUN_MATH_NUMBER: case LFUN_MATH_NONUMBER: @@ -1721,7 +1707,7 @@ void LyXFunc::menuNew(bool fromTemplate) if (owner->view()->available()) { string const trypath = owner->buffer()->filepath; // If directory is writeable, use this as default. - if (IsDirWriteable(trypath) == 1) + if (IsDirWriteable(trypath)) initpath = trypath; } @@ -1847,7 +1833,7 @@ void LyXFunc::open(string const & fname) if (owner->view()->available()) { string const trypath = owner->buffer()->filepath; // If directory is writeable, use this as default. - if (IsDirWriteable(trypath) == 1) + if (IsDirWriteable(trypath)) initpath = trypath; } @@ -1880,8 +1866,14 @@ void LyXFunc::open(string const & fname) // get absolute path of file and add ".lyx" to the filename if // necessary - filename = FileSearch(string(), filename, "lyx"); + string const fullpath = FileSearch(string(), filename, "lyx"); + if (fullpath.empty()) { + WriteAlert(_("Error"), _("Could not find file"), filename); + return; + } + filename = fullpath; + // loads document string const disp_fn(MakeDisplayPath(filename)); @@ -1898,7 +1890,7 @@ void LyXFunc::open(string const & fname) owner->message(str.str().c_str()); } else { ostringstream str; - str << _("Could not open docuent") << ' ' << disp_fn; + str << _("Could not open document") << ' ' << disp_fn; owner->message(str.str().c_str()); } } @@ -1918,11 +1910,11 @@ void LyXFunc::doImport(string const & argument) if (owner->view()->available()) { string const trypath = owner->buffer()->filepath; // If directory is writeable, use this as default. - if (IsDirWriteable(trypath) == 1) + if (IsDirWriteable(trypath)) initpath = trypath; } - string const text = _("Select ") + formats.PrettyName(format) + string const text = _("Select ") + formats.prettyName(format) + _(" file to import"); FileDialog fileDlg(owner, text, @@ -1932,9 +1924,9 @@ void LyXFunc::doImport(string const & argument) make_pair(string(_("Examples")), string(AddPath(system_lyxdir, "examples")))); - string const extension = "*." + formats.Extension(format) - + "| " + formats.PrettyName(format) - + " (*." + formats.Extension(format) + ")"; + string const extension = "*." + formats.extension(format) + + "| " + formats.prettyName(format) + + " (*." + formats.extension(format) + ")"; FileDialog::Result result = fileDlg.Select(initpath, extension); @@ -2062,7 +2054,7 @@ void LyXFunc::initMiniBuffer() text += nicename; if (tmpbuf->lyxvc.inUse()) { text += " ["; - text += tmpbuf->lyxvc.version(); + text += tmpbuf->lyxvc.versionString(); text += ' '; text += tmpbuf->lyxvc.locker(); if (tmpbuf->isReadonly())