]> git.lyx.org Git - features.git/commitdiff
fix handling of read-only in getStatus; fix handling of LFUN_FILE_INSERT_*
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 23 Mar 2004 11:22:11 +0000 (11:22 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 23 Mar 2004 11:22:11 +0000 (11:22 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8516 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/lyxfunc.C

index 8bfee175879facf5f79e81dd60d1aad8dfdbb481..8b4c3ecb1573befc428bb12c9132de509c3f6941 100644 (file)
@@ -1,5 +1,8 @@
 2004-03-22  Jean-Marc Lasgouttes  <lasgouttes@lyx.org>
 
+       * lyxfunc.C (getStatus): handle read-only buffers correctly;
+       handle LFUN_FILE_INSERT_*
+
        * lyxrc.C (setDefaults, getDescription, output, read): 
        * lyxrc.h: remove ps_command
 
index 8f99aa2aa8f99f22a4bca42d97e354fd32957b34..470f830b932e609e34bf1f3c73801c3fe29cf77a 100644 (file)
@@ -287,25 +287,12 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        setStatusMessage(N_("Command disabled"));
 
        // Check whether we need a buffer
-       if (!lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)) {
-               // Yes we need a buffer, do we have one?
-               if (buf) {
-                       // yes
-                       // Can we use a readonly buffer?
-                       if (buf->isReadonly() &&
-                           !lyxaction.funcHasFlag(cmd.action,
-                                                  LyXAction::ReadOnly)) {
-                               // no
-                               setStatusMessage(N_("Document is read-only"));
-                               flag.enabled(false);
-                       }
-               } else {
-                       // no
-                       setStatusMessage(N_("Command not allowed with"
-                                           "out any document open"));
-                       flag.enabled(false);
-                       return flag;
-               }
+       if (!lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer) && !buf) {
+               // no, exit directly
+               setStatusMessage(N_("Command not allowed with"
+                                   "out any document open"));
+               flag.enabled(false);
+               return flag;
        }
 
        // I would really like to avoid having this switch and rather try to
@@ -503,15 +490,27 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        case LFUN_SET_COLOR:
        case LFUN_MESSAGE:
        case LFUN_EXTERNAL_EDIT:
+       case LFUN_FILE_INSERT:
+       case LFUN_FILE_INSERT_ASCII:
+       case LFUN_FILE_INSERT_ASCII_PARA:
                // these are handled in our dispatch()
                break;
 
        default:
                cur.getStatus(cmd, flag);
-               return flag;
        }
 
-       flag.enabled(enable);
+       if (!enable)
+               flag.enabled(false);
+
+       // Can we use a readonly buffer?
+       if (buf && buf->isReadonly() 
+           && !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly)
+           && !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)) {
+               setStatusMessage(N_("Document is read-only"));
+               flag.enabled(false);
+       }
+
        return flag;
 }