]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
get rid of broken_header.h and some unneeded tests
[lyx.git] / src / lyxfunc.C
index b5c3ad161bf90a3a99a692beb678cb354d1738b3..56a79f8ab69411f947b543d983fbac3ece7bace4 100644 (file)
 #include "frontends/Menubar.h"
 #include "frontends/Toolbars.h"
 
+#include "support/filefilterlist.h"
 #include "support/FileInfo.h"
 #include "support/filetools.h"
 #include "support/forkedcontr.h"
-#include "support/globbing.h"
 #include "support/lstrings.h"
 #include "support/path.h"
 #include "support/path_defines.h"
@@ -286,7 +286,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                buf = owner->buffer();
 
        if (cmd.action == LFUN_NOACTION) {
-               setStatusMessage(N_("Nothing to do"));
+               flag.message(N_("Nothing to do"));
                flag.enabled(false);
                return flag;
        }
@@ -304,19 +304,19 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        }
 
        if (flag.unknown()) {
-               setStatusMessage(N_("Unknown action"));
+               flag.message(N_("Unknown action"));
                return flag;
        }
 
        // the default error message if we disable the command
-       setStatusMessage(N_("Command disabled"));
+       flag.message(N_("Command disabled"));
        if (!flag.enabled())
                return flag;
 
        // Check whether we need a buffer
        if (!lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer) && !buf) {
                // no, exit directly
-               setStatusMessage(N_("Command not allowed with"
+               flag.message(N_("Command not allowed with"
                                    "out any document open"));
                flag.enabled(false);
                return flag;
@@ -396,27 +396,27 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                if (!inset)
                        break;
 
-               InsetOld::Code code = inset->lyxCode();
+               InsetBase::Code code = inset->lyxCode();
                switch (code) {
-                       case InsetOld::TABULAR_CODE:
+                       case InsetBase::TABULAR_CODE:
                                enable = cmd.argument == "tabular";
                                break;
-                       case InsetOld::ERT_CODE:
+                       case InsetBase::ERT_CODE:
                                enable = cmd.argument == "ert";
                                break;
-                       case InsetOld::FLOAT_CODE:
+                       case InsetBase::FLOAT_CODE:
                                enable = cmd.argument == "float";
                                break;
-                       case InsetOld::WRAP_CODE:
+                       case InsetBase::WRAP_CODE:
                                enable = cmd.argument == "wrap";
                                break;
-                       case InsetOld::NOTE_CODE:
+                       case InsetBase::NOTE_CODE:
                                enable = cmd.argument == "note";
                                break;
-                       case InsetOld::BRANCH_CODE:
+                       case InsetBase::BRANCH_CODE:
                                enable = cmd.argument == "branch";
                                break;
-                       case InsetOld::BOX_CODE:
+                       case InsetBase::BOX_CODE:
                                enable = cmd.argument == "box";
                                break;
                        default:
@@ -437,7 +437,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                        enable = Exporter::IsExportable(*buf, "dvi")
                                && lyxrc.print_command != "none";
                else if (name == "character")
-                       enable = cur.inset().lyxCode() != InsetOld::ERT_CODE;
+                       enable = cur.inset().lyxCode() != InsetBase::ERT_CODE;
                else if (name == "vclog")
                        enable = buf->lyxvc().inUse();
                else if (name == "latexlog")
@@ -522,8 +522,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
 
        default:
 
-               cur.getStatus(cmd, flag);
-               if (!flag.enabled())
+               if (!cur.getStatus(cmd, flag))
                        flag = view()->getStatus(cmd);
        }
 
@@ -534,7 +533,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        if (buf && buf->isReadonly()
            && !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly)
            && !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)) {
-               setStatusMessage(N_("Document is read-only"));
+               flag.message(N_("Document is read-only"));
                flag.enabled(false);
        }
 
@@ -602,6 +601,7 @@ void loadTextclass(string const & name)
 
 void LyXFunc::dispatch(FuncRequest const & cmd)
 {
+       BOOST_ASSERT(view());
        string const argument = cmd.argument;
        kb_action const action = cmd.action;
 
@@ -615,14 +615,14 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
 
        bool update = true;
 
-       // We cannot use this function here
-       if (!getStatus(cmd).enabled()) {
+       FuncStatus const flag = getStatus(cmd);
+       if (!flag.enabled()) {
+               // We cannot use this function here
                lyxerr[Debug::ACTION] << "LyXFunc::dispatch: "
                       << lyxaction.getActionName(action)
                       << " [" << action << "] is disabled at this location"
                       << endl;
-               setErrorMessage(getStatusMessage());
-
+               setErrorMessage(flag.message());
        } else {
 
                if (view()->available())
@@ -1451,7 +1451,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                update |= view()->cursor().result().update();
                        else
                                update |= view()->dispatch(cmd);
-
                        break;
                }
                }
@@ -1460,14 +1459,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        // 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)
-                               view()->update();
-
-                       // fitCursor() needs valid inset position. The previous call to
-                       // update() makes sure we have such even for freshly created
-                       // insets.
-                       if (view()->fitCursor())
-                               view()->update();
+                       view()->update(true, update);
+
                        // if we executed a mutating lfun, mark the buffer as dirty
                        if (getStatus(cmd).enabled()
                                        && !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)
@@ -1477,9 +1470,9 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
 
                if (view()->cursor().inTexted()) {
                        view()->owner()->updateLayoutChoice();
-                       sendDispatchMessage(getMessage(), cmd);
                }
        }
+       sendDispatchMessage(getMessage(), cmd);
 }
 
 
@@ -1779,12 +1772,6 @@ void LyXFunc::setMessage(string const & m) const
 }
 
 
-void LyXFunc::setStatusMessage(string const & m) const
-{
-       status_buffer = m;
-}
-
-
 string const LyXFunc::viewStatusMessage()
 {
        // When meta-fake key is pressed, show the key sequence so far + "M-".