]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
A better fix for bug 675:
[lyx.git] / src / lyxfunc.C
index 588990d46be411004dc66109f0682c15c430bc58..4570bfba8f511ab85c6e4ac5f501e9d105ff67ce 100644 (file)
@@ -577,6 +577,11 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
 
        case LFUN_DIALOG_SHOW_NEW_INSET:
                enable = cur.inset().lyxCode() != InsetBase::ERT_CODE;
+               if (cur.inset().lyxCode() == InsetBase::CAPTION_CODE) {
+                       FuncStatus flag;
+                       if (cur.inset().getStatus(cur, cmd, flag))
+                               return flag;
+               }
                break;
 
        case LFUN_DIALOG_UPDATE: {
@@ -882,7 +887,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                lyx_view_->message(str + _(" done."));
                        } else {
                                writeAs(lyx_view_->buffer());
-                               lyx_view_->updateTab();
                        }
                        updateFlags = Update::None;
                        break;
@@ -891,7 +895,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        BOOST_ASSERT(lyx_view_ && lyx_view_->buffer());
                        writeAs(lyx_view_->buffer(), argument);
                        updateFlags = Update::None;
-                       lyx_view_->updateTab();
                        break;
 
                case LFUN_BUFFER_RELOAD: {
@@ -1057,9 +1060,20 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
 
                        } else {
                                // case 1: print to a file
+                               FileName const filename(makeAbsPath(target_name, path));
+                               if (fs::exists(filename.toFilesystemEncoding())) {
+                                       docstring text = bformat(
+                                               _("The file %1$s already exists.\n\n"
+                                                 "Do you want to over-write that file?"),
+                                               makeDisplayPath(filename.absFilename()));
+                                       if (Alert::prompt(_("Over-write file?"),
+                                           text, 0, 1, _("&Over-write"), _("&Cancel")) != 0) {
+                                               showPrintError(buffer->fileName());
+                                               break;
+                                       }
+                               }
                                command += lyxrc.print_to_file
-                                       + quoteName(makeAbsPath(target_name,
-                                                               path).toFilesystemEncoding())
+                                       + quoteName(filename.toFilesystemEncoding())
                                        + ' '
                                        + quoteName(dviname);
                                res = one.startscript(Systemcall::DontWait,