]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.cpp
adjust
[lyx.git] / src / LyXFunc.cpp
index 1feb1c7cfa95825e8e1f7a500d7d4bdf9599a2c7..b3d135fc5a50a55114f2dde8e642de4aa46a8987 100644 (file)
@@ -158,7 +158,7 @@ void reconfigure(LyXView & lv, string const & option)
        string configure_command = package().configure_command();
        configure_command += option;
        Systemcall one;
-       one.startscript(Systemcall::Wait, configure_command);
+       int ret = one.startscript(Systemcall::Wait, configure_command);
        p.pop();
        // emit message signal.
        lv.message(_("Reloading configuration..."));
@@ -166,7 +166,15 @@ void reconfigure(LyXView & lv, string const & option)
        // Re-read packages.lst
        LaTeXFeatures::getAvailable();
 
-       Alert::information(_("System reconfigured"),
+       if (ret)
+               Alert::information(_("System reconfiguration failed"),
+                          _("The system reconfiguration has failed.\n"
+                                 "Default textclass is used but LyX may "
+                                 "not be able to work properly.\n"
+                                 "Please reconfigure again if needed."));
+       else
+
+               Alert::information(_("System reconfigured"),
                           _("The system has been reconfigured.\n"
                             "You need to restart LyX to make use of any\n"
                             "updated document class specifications."));
@@ -486,8 +494,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                return flag;
        }
 
-       Cursor * cur = view()? &view()->cursor(): 0;
-
        // I would really like to avoid having this switch and rather try to
        // encode this in the function itself.
        // -- And I'd rather let an inset decide which LFUNs it is willing
@@ -518,15 +524,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                enable = Exporter::isExportable(*buf, "program");
                break;
 
-       case LFUN_LAYOUT_TABULAR:
-               enable = cur? cur->innerInsetOfType(Inset::TABULAR_CODE) : false;
-               break;
-
-       case LFUN_LAYOUT:
-       case LFUN_LAYOUT_PARAGRAPH:
-               enable = cur? !cur->inset().forceDefaultParagraphs(cur->idx()) : false;
-               break;
-
        case LFUN_VC_REGISTER:
                enable = !buf->lyxvc().inUse();
                break;
@@ -545,45 +542,8 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                        && (!buf->isClean() || buf->isExternallyModified(Buffer::timestamp_method));
                break;
 
-       case LFUN_INSET_SETTINGS: {
-               if (!cur) {
-                       enable = false;
-                       break;
-               }
-               Inset::Code code = cur->inset().lyxCode();
-               switch (code) {
-                       case Inset::TABULAR_CODE:
-                               enable = cmd.argument() == "tabular";
-                               break;
-                       case Inset::ERT_CODE:
-                               enable = cmd.argument() == "ert";
-                               break;
-                       case Inset::FLOAT_CODE:
-                               enable = cmd.argument() == "float";
-                               break;
-                       case Inset::WRAP_CODE:
-                               enable = cmd.argument() == "wrap";
-                               break;
-                       case Inset::NOTE_CODE:
-                               enable = cmd.argument() == "note";
-                               break;
-                       case Inset::BRANCH_CODE:
-                               enable = cmd.argument() == "branch";
-                               break;
-                       case Inset::BOX_CODE:
-                               enable = cmd.argument() == "box";
-                               break;
-                       case Inset::LISTINGS_CODE:
-                               enable = cmd.argument() == "listings";
-                               break;
-                       default:
-                               break;
-               }
-               break;
-       }
-
        case LFUN_INSET_APPLY: {
-               if (!cur) {
+               if (!view()) {
                        enable = false;
                        break;
                }
@@ -592,7 +552,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                if (inset) {
                        FuncRequest fr(LFUN_INSET_MODIFY, cmd.argument());
                        FuncStatus fs;
-                       if (!inset->getStatus(*cur, fr, fs)) {
+                       if (!inset->getStatus(view()->cursor(), fr, fs)) {
                                // Every inset is supposed to handle this
                                BOOST_ASSERT(false);
                        }
@@ -609,10 +569,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                flag.setOnOff(lyx_view_->getDialogs().visible(cmd.getArg(0)));
                // fall through to set "enable"
        case LFUN_DIALOG_SHOW: {
-               if (!cur) {
-                       enable = false;
-                       break;
-               }
                string const name = cmd.getArg(0);
                if (!buf)
                        enable = name == "aboutlyx"
@@ -622,9 +578,14 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                else if (name == "print")
                        enable = Exporter::isExportable(*buf, "dvi")
                                && lyxrc.print_command != "none";
-               else if (name == "character")
-                       enable = cur->inset().lyxCode() != Inset::ERT_CODE &&
-                               cur->inset().lyxCode() != Inset::LISTINGS_CODE;
+               else if (name == "character") {
+                       if (!view())
+                               enable = false;
+                       else {
+                               InsetCode ic = view()->cursor().inset().lyxCode();
+                               enable = ic != ERT_CODE && ic != LISTINGS_CODE;
+                       }
+               }
                else if (name == "latexlog")
                        enable = isFileReadable(FileName(buf->getLogName().second));
                else if (name == "spellchecker")
@@ -638,20 +599,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                break;
        }
 
-       case LFUN_DIALOG_SHOW_NEW_INSET:
-               if (!cur) {
-                       enable = false;
-                       break;
-               }
-               enable = cur->inset().lyxCode() != Inset::ERT_CODE &&
-                       cur->inset().lyxCode() != Inset::LISTINGS_CODE;
-               if (cur->inset().lyxCode() == Inset::CAPTION_CODE) {
-                       FuncStatus flag;
-                       if (cur->inset().getStatus(*cur, cmd, flag))
-                               return flag;
-               }
-               break;
-
        case LFUN_DIALOG_UPDATE: {
                string const name = cmd.getArg(0);
                if (!buf)
@@ -784,11 +731,11 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                break;
 
        default:
-               if (!cur) {
+               if (!view()) {
                        enable = false;
                        break;
                }
-               if (!getLocalStatus(*cur, cmd, flag))
+               if (!getLocalStatus(view()->cursor(), cmd, flag))
                        flag = view()->getStatus(cmd);
        }
 
@@ -804,8 +751,8 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        }
 
        // Are we in a DELETED change-tracking region?
-       if (buf && cur 
-               && lookupChangeType(*cur, true) == Change::DELETED
+       if (buf && view() 
+               && lookupChangeType(view()->cursor(), true) == Change::DELETED
            && !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly)
            && !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)) {
                flag.message(from_utf8(N_("This portion of the document is deleted.")));
@@ -1462,7 +1409,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                            name == "nomenclature" ||
                            name == "ref" ||
                            name == "toc" ||
-                           name == "url") {
+                           name == "href") {
                                InsetCommandParams p(name);
                                data = InsetCommandMailer::params2string(name, p);
                        } else if (name == "include") {
@@ -1747,8 +1694,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        BOOST_ASSERT(lyx_view_);
                        string action;
                        string const name = split(argument, action, ' ');
-                       Inset::Code const inset_code =
-                               Inset::translate(name);
+                       InsetCode const inset_code = insetCode(name);
 
                        Cursor & cur = view()->cursor();
                        FuncRequest fr(LFUN_INSET_TOGGLE, action);
@@ -1758,7 +1704,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        InsetIterator const end = inset_iterator_end(inset);
                        for (; it != end; ++it) {
                                if (!it->asInsetMath()
-                                   && (inset_code == Inset::NO_CODE
+                                   && (inset_code == NO_CODE
                                    || inset_code == it->lyxCode())) {
                                        Cursor tmpcur = cur;
                                        tmpcur.pushLeft(*it);
@@ -1844,7 +1790,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                InsetIterator it  = inset_iterator_begin(inset);
                                InsetIterator const end = inset_iterator_end(inset);
                                for (; it != end; ++it)
-                                       if (it->lyxCode() == Inset::CITE_CODE)
+                                       if (it->lyxCode() == CITE_CODE)
                                                it->dispatch(cur, fr);
                        }