]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.cpp
Forgot these bits.
[lyx.git] / src / LyXFunc.cpp
index d8f5e9cf4cac8b1519b269d75fa4e1779c4242f2..ece3b21f57a5e2933021c1d7935ff0b9019e984e 100644 (file)
@@ -583,10 +583,17 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                break;
        }
 
-       case LFUN_BUFFER_UPDATE:
-       case LFUN_BUFFER_VIEW:
        case LFUN_MASTER_BUFFER_UPDATE:
-       case LFUN_MASTER_BUFFER_VIEW: {
+       case LFUN_MASTER_BUFFER_VIEW: 
+               if (!buf->parent()) {
+                       enable = false;
+                       break;
+               }
+       case LFUN_BUFFER_UPDATE:
+       case LFUN_BUFFER_VIEW: {
+               string format = to_utf8(cmd.argument());
+               if (cmd.argument().empty())
+                       format = buf->getDefaultOutputFormat();
                typedef vector<Format const *> Formats;
                Formats formats;
                formats = buf->exportableFormats(true);
@@ -594,7 +601,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                Formats::const_iterator end = formats.end();
                enable = false;
                for (; fit != end ; ++fit) {
-                       if ((*fit)->name() == to_utf8(cmd.argument()))
+                       if ((*fit)->name() == format)
                                enable = true;
                }
                break;
@@ -867,25 +874,41 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        break;
                }
 
-               case LFUN_BUFFER_UPDATE:
+               case LFUN_BUFFER_UPDATE: {
                        LASSERT(lyx_view_ && buffer, /**/);
-                       buffer->doExport(argument, true);
+                       string format = argument;
+                       if (argument.empty())
+                               format = buffer->getDefaultOutputFormat();
+                       buffer->doExport(format, true);
                        break;
+               }
 
-               case LFUN_BUFFER_VIEW:
+               case LFUN_BUFFER_VIEW: {
                        LASSERT(lyx_view_ && buffer, /**/);
-                       buffer->preview(argument);
+                       string format = argument;
+                       if (argument.empty())
+                               format = buffer->getDefaultOutputFormat();
+                       buffer->preview(format);
                        break;
+               }
 
-               case LFUN_MASTER_BUFFER_UPDATE:
+               case LFUN_MASTER_BUFFER_UPDATE: {
                        LASSERT(lyx_view_ && buffer && buffer->masterBuffer(), /**/);
-                       buffer->masterBuffer()->doExport(argument, true);
+                       string format = argument;
+                       if (argument.empty())
+                               format = buffer->masterBuffer()->getDefaultOutputFormat();
+                       buffer->masterBuffer()->doExport(format, true);
                        break;
+               }
 
-               case LFUN_MASTER_BUFFER_VIEW:
+               case LFUN_MASTER_BUFFER_VIEW: {
                        LASSERT(lyx_view_ && buffer && buffer->masterBuffer(), /**/);
-                       buffer->masterBuffer()->preview(argument);
+                       string format = argument;
+                       if (argument.empty())
+                               format = buffer->masterBuffer()->getDefaultOutputFormat();
+                       buffer->masterBuffer()->preview(format);
                        break;
+               }
 
                case LFUN_BUILD_PROGRAM:
                        LASSERT(lyx_view_ && buffer, /**/);
@@ -1056,21 +1079,30 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        is >> file_name >> row;
                        Buffer * buf = 0;
                        bool loaded = false;
-                       if (prefixIs(file_name, package().temp_dir().absFilename()))
+                       string const abstmp = package().temp_dir().absFilename();
+                       string const realtmp = package().temp_dir().realPath();
+                       if (prefixIs(file_name, abstmp) || prefixIs(file_name, realtmp)) {
                                // Needed by inverse dvi search. If it is a file
-                               // in tmpdir, call the apropriated function
+                               // in tmpdir, call the apropriated function.
+                               // If tmpdir is a symlink, we may have the real
+                               // path passed back, so we correct for that.
+                               if (!prefixIs(file_name, abstmp))
+                                       file_name = subst(file_name, realtmp, abstmp);
                                buf = theBufferList().getBufferFromTmp(file_name);
-                       else {
+                       else {
                                // Must replace extension of the file to be .lyx
                                // and get full path
                                FileName const s = fileSearch(string(), changeExtension(file_name, ".lyx"), "lyx");
                                // Either change buffer or load the file
                                if (theBufferList().exists(s))
                                        buf = theBufferList().getBuffer(s);
-                               else {
+                               else if (s.exists()) {
                                        buf = lyx_view_->loadDocument(s);
                                        loaded = true;
-                               }
+                               } else
+                                       lyx_view_->message(bformat(
+                                               _("File does not exist: %1$s"),
+                                               makeDisplayPath(file_name)));
                        }
 
                        if (!buf) {
@@ -1868,12 +1900,11 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_COPIER:
        case LyXRC::RC_CURSOR_FOLLOWS_SCROLLBAR:
        case LyXRC::RC_SCROLL_BELOW_DOCUMENT:
-       case LyXRC::RC_CUSTOM_EXPORT_COMMAND:
-       case LyXRC::RC_CUSTOM_EXPORT_FORMAT:
        case LyXRC::RC_DATE_INSERT_FORMAT:
        case LyXRC::RC_DEFAULT_LANGUAGE:
        case LyXRC::RC_GUI_LANGUAGE:
        case LyXRC::RC_DEFAULT_PAPERSIZE:
+       case LyXRC::RC_DEFAULT_VIEW_FORMAT:
        case LyXRC::RC_DEFFILE:
        case LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN:
        case LyXRC::RC_DISPLAY_GRAPHICS:
@@ -1889,6 +1920,8 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_FORMAT:
        case LyXRC::RC_GROUP_LAYOUTS:
        case LyXRC::RC_INDEX_COMMAND:
+       case LyXRC::RC_JBIBTEX_COMMAND:
+       case LyXRC::RC_JINDEX_COMMAND:
        case LyXRC::RC_NOMENCL_COMMAND:
        case LyXRC::RC_INPUT:
        case LyXRC::RC_KBMAP:
@@ -1953,6 +1986,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_OPEN_BUFFERS_IN_TABS:
        case LyXRC::RC_SPELL_COMMAND:
        case LyXRC::RC_SPELLCHECK_CONTINUOUSLY:
+       case LyXRC::RC_SPLITINDEX_COMMAND:
        case LyXRC::RC_TEMPDIRPATH:
        case LyXRC::RC_TEMPLATEPATH:
        case LyXRC::RC_TEX_ALLOWS_SPACES: