Author: rgheck
Date: Mon Mar  5 23:38:21 2012
New Revision: 40863
URL: http://www.lyx.org/trac/changeset/40863

Log:
Backport fix for #7916.

Modified:
   lyx-devel/branches/BRANCH_2_0_X/src/BufferView.cpp
   lyx-devel/branches/BRANCH_2_0_X/src/frontends/qt4/GuiView.cpp
   lyx-devel/branches/BRANCH_2_0_X/status.20x

Modified: lyx-devel/branches/BRANCH_2_0_X/src/BufferView.cpp
==============================================================================
--- lyx-devel/branches/BRANCH_2_0_X/src/BufferView.cpp  Mon Mar  5 23:36:27 
2012        (r40862)
+++ lyx-devel/branches/BRANCH_2_0_X/src/BufferView.cpp  Mon Mar  5 23:38:21 
2012        (r40863)
@@ -1036,9 +1036,17 @@
                // buffer clean/dirty status by itself.
                flag.setEnabled(!buffer_.isReadonly() && 
buffer_.undo().hasRedoStack());
                break;
-       case LFUN_FILE_INSERT:
        case LFUN_FILE_INSERT_PLAINTEXT_PARA:
-       case LFUN_FILE_INSERT_PLAINTEXT:
+       case LFUN_FILE_INSERT_PLAINTEXT: {
+               docstring const fname = cmd.argument();
+               if (!FileName::isAbsolute(to_utf8(fname))) {
+                       flag.message(_("Absolute filename expected."));
+                       return false;
+               }
+               flag.setEnabled(cur.inTexted());
+               break;
+       }
+       case LFUN_FILE_INSERT:
        case LFUN_BOOKMARK_SAVE:
                // FIXME: Actually, these LFUNS should be moved to Text
                flag.setEnabled(cur.inTexted());
@@ -1918,6 +1926,16 @@
                        cur.setCurrentFont();
                        dr.forceBufferUpdate();
                }
+       }
+
+       case LFUN_FILE_INSERT_PLAINTEXT_PARA:
+       case LFUN_FILE_INSERT_PLAINTEXT: {
+               bool const as_paragraph = (act == 
LFUN_FILE_INSERT_PLAINTEXT_PARA);
+               string const fname = to_utf8(cmd.argument());
+               if (!FileName::isAbsolute(fname))
+                       dr.setMessage(_("Absolute filename expected."));
+               else
+                       insertPlaintextFile(FileName(fname), as_paragraph);
                break;
        }
 

Modified: lyx-devel/branches/BRANCH_2_0_X/src/frontends/qt4/GuiView.cpp
==============================================================================
--- lyx-devel/branches/BRANCH_2_0_X/src/frontends/qt4/GuiView.cpp       Mon Mar 
 5 23:36:27 2012        (r40862)
+++ lyx-devel/branches/BRANCH_2_0_X/src/frontends/qt4/GuiView.cpp       Mon Mar 
 5 23:38:21 2012        (r40863)
@@ -1851,6 +1851,11 @@
                enable = !(lyxrc.forward_search_dvi.empty() && 
lyxrc.forward_search_pdf.empty());
                break;
 
+       case LFUN_FILE_INSERT_PLAINTEXT:
+       case LFUN_FILE_INSERT_PLAINTEXT_PARA:
+               enable = documentBufferView() && 
documentBufferView()->cursor().inTexted();
+               break;
+
        default:
                return false;
        }
@@ -2212,49 +2217,6 @@
 }
 
 
-void GuiView::insertPlaintextFile(docstring const & fname,
-       bool asParagraph)
-{
-       BufferView * bv = documentBufferView();
-       if (!bv)
-               return;
-
-       if (!fname.empty() && !FileName::isAbsolute(to_utf8(fname))) {
-               message(_("Absolute filename expected."));
-               return;
-       }
-
-       // FIXME UNICODE
-       FileName filename(to_utf8(fname));
-
-       if (!filename.empty()) {
-               bv->insertPlaintextFile(filename, asParagraph);
-               return;
-       }
-
-       FileDialog dlg(qt_("Select file to insert"), (asParagraph ?
-               LFUN_FILE_INSERT_PLAINTEXT_PARA : LFUN_FILE_INSERT_PLAINTEXT));
-
-       FileDialog::Result result = dlg.open(toqstr(bv->buffer().filePath()),
-               QStringList(qt_("All Files (*)")));
-
-       if (result.first == FileDialog::Later)
-               return;
-
-       // FIXME UNICODE
-       filename.set(fromqstr(result.second));
-
-       // check selected filename
-       if (filename.empty()) {
-               // emit message signal.
-               message(_("Canceled."));
-               return;
-       }
-
-       bv->insertPlaintextFile(filename, asParagraph);
-}
-
-
 bool GuiView::renameBuffer(Buffer & b, docstring const & newname)
 {
        FileName fname = b.fileName();
@@ -3286,13 +3248,37 @@
                        insertLyXFile(cmd.argument());
                        break;
 
-               case LFUN_FILE_INSERT_PLAINTEXT_PARA:
-                       insertPlaintextFile(cmd.argument(), true);
-                       break;
-
                case LFUN_FILE_INSERT_PLAINTEXT:
-                       insertPlaintextFile(cmd.argument(), false);
+               case LFUN_FILE_INSERT_PLAINTEXT_PARA: {
+                       bool const as_paragraph = (cmd.action() == 
LFUN_FILE_INSERT_PLAINTEXT_PARA);
+                       string const fname = to_utf8(cmd.argument());
+                       if (!fname.empty() && !FileName::isAbsolute(fname)) {
+                               dr.setMessage(_("Absolute filename expected."));
+                               break;
+                       }
+                       
+                       FileName filename(fname);
+                       if (fname.empty()) {
+                               FileDialog dlg(qt_("Select file to insert"), 
(as_paragraph ?
+                                       LFUN_FILE_INSERT_PLAINTEXT_PARA : 
LFUN_FILE_INSERT_PLAINTEXT));
+
+                               FileDialog::Result result = 
dlg.open(toqstr(bv->buffer().filePath()),
+                                       QStringList(qt_("All Files (*)")));
+                               
+                               if (result.first == FileDialog::Later || 
result.second.isEmpty()) {
+                                       dr.setMessage(_("Canceled."));
+                                       break;
+                               }
+
+                               filename.set(fromqstr(result.second));
+                       }
+
+                       if (bv) {
+                               FuncRequest const new_cmd(cmd, 
filename.absoluteFilePath());
+                               bv->dispatch(new_cmd, dr);
+                       }
                        break;
+               }
 
                case LFUN_BUFFER_RELOAD: {
                        LASSERT(doc_buffer, break);

Modified: lyx-devel/branches/BRANCH_2_0_X/status.20x
==============================================================================
--- lyx-devel/branches/BRANCH_2_0_X/status.20x  Mon Mar  5 23:36:27 2012        
(r40862)
+++ lyx-devel/branches/BRANCH_2_0_X/status.20x  Mon Mar  5 23:38:21 2012        
(r40863)
@@ -38,6 +38,8 @@
 
 - New option to show only the preamble when viewing source (bug 7860).
 
+- Fix undo warning when inserting plain text file (bug 7916).
+
 
 * DOCUMENTATION AND LOCALIZATION
 
@@ -76,6 +78,8 @@
 
 - Fix tooltip for "Use Non-TeX Fonts" (bug 7787).
 
+- Fixed stray warning when inserting inserting plaintext file (bug 7916).
+
 
 * DOCUMENTATION AND LOCALIZATION
 

Reply via email to