]> git.lyx.org Git - features.git/blobdiff - src/lyxfunc.C
Replace LString.h with support/std_string.h,
[features.git] / src / lyxfunc.C
index 603dbf47b61c503b6f30a50d48a022320fbf4a7f..1f6b7c98cf5372aef16088924fae5c001a2ef2f2 100644 (file)
 #include <config.h>
 
 #include "lyxfunc.h"
-#include "version.h"
 #include "kbmap.h"
 #include "bufferlist.h"
 #include "buffer.h"
 #include "buffer_funcs.h"
 #include "BufferView.h"
+#include "funcrequest.h"
+#include "iterators.h"
 #include "lyxserver.h"
 #include "intl.h"
-#include "lyx_main.h"
 #include "lyx_cb.h"
 #include "LyXAction.h"
 #include "debug.h"
-#include "lyxrc.h"
-#include "lyxtext.h"
 #include "gettext.h"
-#include "Lsstream.h"
-#include "trans_mgr.h"
+#include "support/std_sstream.h"
 #include "encoding.h"
-#include "layout.h"
-#include "bufferview_funcs.h"
 #include "frontends/LyXView.h"
 #include "frontends/lyx_gui.h"
-#include "vspace.h"
-#include "FloatList.h"
 #include "format.h"
 #include "exporter.h"
 #include "importer.h"
@@ -56,9 +49,7 @@
 #include "insets/insetexternal.h"
 #include "insets/insettabular.h"
 
-#include "mathed/formulamacro.h"
 #include "mathed/math_cursor.h"
-#include "mathed/math_inset.h"
 
 #include "frontends/FileDialog.h"
 #include "frontends/Dialogs.h"
 #include "frontends/Menubar.h"
 #include "frontends/Alert.h"
 
-#include "graphics/GraphicsCache.h"
 
-#include "support/lyxalgo.h"
 #include "support/LAssert.h"
 #include "support/filetools.h"
 #include "support/FileInfo.h"
 #include "support/forkedcontr.h"
-#include "support/lstrings.h"
 #include "support/tostr.h"
 #include "support/path.h"
 #include "support/path_defines.h"
-#include "support/lyxfunctional.h"
 
-#include <ctime>
-#include <clocale>
-#include <cstdlib>
-#include <cctype>
 
-#include <utility>
-#include <algorithm>
 
 using namespace lyx::support;
 
@@ -319,7 +300,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
        switch (ev.action) {
        case LFUN_EXPORT:
                disable = ev.argument != "custom"
-                       && !Exporter::IsExportable(buf, ev.argument);
+                       && !Exporter::IsExportable(*buf, ev.argument);
                break;
        case LFUN_UNDO:
                disable = buf->undostack.empty();
@@ -345,7 +326,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
                disable = !buf->isLatex() || lyxrc.chktex_command == "none";
                break;
        case LFUN_BUILDPROG:
-               disable = !Exporter::IsExportable(buf, "program");
+               disable = !Exporter::IsExportable(*buf, "program");
                break;
 
        case LFUN_LAYOUT_TABULAR:
@@ -553,7 +534,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
                }
 
                if (name == "print") {
-                       disable = !Exporter::IsExportable(buf, "dvi") ||
+                       disable = !Exporter::IsExportable(*buf, "dvi") ||
                                lyxrc.print_command == "none";
                } else if (name == "character") {
                        UpdatableInset * tli = view()->theLockingInset();
@@ -689,6 +670,20 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
                if (!mathcursor)
                        code = InsetOld::SPACE_CODE;
                break;
+       case LFUN_INSET_DIALOG_SHOW: {
+                       LyXText * lt = view()->getLyXText();
+                       InsetOld * inset = lt->getInset();
+                       disable = !inset;
+                       if (!disable) {
+                               code = inset->lyxCode();
+                               if (!(code == InsetOld::INCLUDE_CODE 
+                                       || code == InsetOld::BIBTEX_CODE 
+                                       || code == InsetOld::FLOAT_LIST_CODE 
+                                       || code == InsetOld::TOC_CODE))
+                                       disable = true;
+                       }
+               }
+               break;
        default:
                break;
        }
@@ -922,8 +917,8 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose)
                                if (irow != view()->text->firstRow()) {
 #if 1
                                        view()->text->setCursorFromCoordinates(
-                                               view()->text->cursor.ix() + inset_x,
-                                               view()->text->cursor.iy() -
+                                               view()->text->cursor.x() + inset_x,
+                                               view()->text->cursor.y() -
                                                irow->baseline() - 1);
                                        view()->text->cursor.x_fix(view()->text->cursor.x());
 #else
@@ -940,8 +935,8 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose)
                                if (irow != view()->text->lastRow()) {
 #if 1
                                        view()->text->setCursorFromCoordinates(
-                                               view()->text->cursor.ix() + inset_x,
-                                               view()->text->cursor.iy() -
+                                               view()->text->cursor.x() + inset_x,
+                                               view()->text->cursor.y() -
                                                irow->baseline() +
                                                irow->height() + 1);
                                        view()->text->cursor.x_fix(view()->text->cursor.x());
@@ -1460,6 +1455,16 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose)
        }
        break;
 
+       case LFUN_INSET_DIALOG_SHOW: {
+               LyXText * lt = view()->getLyXText();
+               InsetOld * inset = lt->getInset();
+               if (inset) {
+                       FuncRequest cmd(view(), LFUN_INSET_DIALOG_SHOW);
+                       inset->localDispatch(cmd);
+               }
+       }
+       break;                                                   
+       
        case LFUN_DIALOG_UPDATE: {
                string const & name = argument;
                // Can only update a dialog connected to an existing inset
@@ -1631,7 +1636,11 @@ exit_with_message:
        view()->owner()->updateLayoutChoice();
 
        if (view()->available()) {
-               view()->fitCursor();
+               if (view()->fitCursor()) {
+                       lyxerr << "LyXFunc->fitCursor->update" << endl;
+
+                       view()->update();
+               }
 
                // If we executed a mutating lfun, mark the buffer as dirty
                if (!getStatus(ev).disabled()
@@ -1978,4 +1987,3 @@ bool LyXFunc::wasMetaKey() const
 {
        return (meta_fake_bit != key_modifier::none);
 }
-