]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.cpp
Routines for calculating numerical labels for BibTeX citations.
[lyx.git] / src / LyXFunc.cpp
index fe5f5148496f0064fbb73231361a46fd739a5d33..6a619200e28f9ad6a9f5acd461eae7a59eac991e 100644 (file)
@@ -142,7 +142,7 @@ void LyXFunc::gotoBookmark(unsigned int idx, bool openFile, bool switchToBuffer)
        int new_id = cur.paragraph().id();
 
        // if bottom_pit, bottom_pos or top_id has been changed, update bookmark
-       // see http://bugzilla.lyx.org/show_bug.cgi?id=3092
+       // see http://www.lyx.org/trac/ticket/3092
        if (bm.bottom_pit != new_pit || bm.bottom_pos != new_pos 
                || bm.top_id != new_id) {
                const_cast<BookmarksSection::Bookmark &>(bm).updatePos(
@@ -162,27 +162,13 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                return flag;
        }
 
-       switch (cmd.action) {
-       case LFUN_UNKNOWN_ACTION:
+       if (cmd.action == LFUN_UNKNOWN_ACTION) {
                flag.unknown(true);
                flag.setEnabled(false);
-               break;
-
-       default:
-               break;
-       }
-
-       if (flag.unknown()) {
                flag.message(from_utf8(N_("Unknown action")));
                return flag;
        }
 
-       if (!flag.enabled()) {
-               if (flag.message().empty())
-                       flag.message(from_utf8(N_("Command disabled")));
-               return flag;
-       }
-
        // 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
@@ -261,6 +247,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        case LFUN_REPEAT:
        case LFUN_PREFERENCES_SAVE:
        case LFUN_BUFFER_SAVE_AS_DEFAULT:
+       case LFUN_DEBUG_LEVEL_SET:
                // these are handled in our dispatch()
                break;
 
@@ -404,9 +391,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        // FIXME: this LFUN should also work without any view.
                        Buffer * buffer = (lv && lv->documentBufferView())
                                ? &(lv->documentBufferView()->buffer()) : 0;
-                       buffer = &lv->currentBufferView()->buffer();
-                       if (buffer && !theBufferList().isLoaded(buffer))
-                               buffer = 0;
                        if (buffer)
                                buffer->undo().beginUndoGroup();
                        while (!arg.empty()) {
@@ -416,7 +400,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                func.origin = cmd.origin;
                                dispatch(func);
                        }
-                       if (buffer)
+                       // the buffer may have been closed by one action
+                       if (theBufferList().isLoaded(buffer))
                                buffer->undo().endUndoGroup();
                        break;
                }
@@ -503,6 +488,10 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        theSession().bookmarks().clear();
                        break;
 
+               case LFUN_DEBUG_LEVEL_SET:
+                       lyxerr.setLevel(Debug::value(to_utf8(cmd.argument())));
+                       break;
+
                default:
                        DispatchResult dr;
 
@@ -557,20 +546,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                }
                        }
 
-                       // Is this a function that acts on inset at point?
-                       Inset * inset = bv->cursor().nextInset();
-                       if (lyxaction.funcHasFlag(action, LyXAction::AtPoint)
-                           && inset) {
-                               bv->cursor().result().dispatched(true);
-                               bv->cursor().result().update(Update::FitCursor | Update::Force);
-                               FuncRequest tmpcmd = cmd;
-                               inset->dispatch(bv->cursor(), tmpcmd);
-                               if (bv->cursor().result().dispatched()) {
-                                       updateFlags = bv->cursor().result().update();
-                                       break;
-                               }
-                       }
-
                        // Let the current Cursor dispatch its own actions.
                        Cursor old = bv->cursor();
                        bv->cursor().getPos(cursorPosBeforeDispatchX_,
@@ -608,7 +583,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        && flag.enabled()
                    && !lyxaction.funcHasFlag(action, LyXAction::NoBuffer)
                    && !lyxaction.funcHasFlag(action, LyXAction::ReadOnly))
-                       doc_buffer->markDirty();                        
+                       lv->currentBufferView()->buffer().markDirty();                  
 
                if (lv && lv->currentBufferView()) {
                        // BufferView::update() updates the ViewMetricsInfo and