]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_cb.C
Restore the version number position on the splash screen
[lyx.git] / src / lyx_cb.C
index d455f132aea6845385a84478ff1caaa565ff1448..533ef99e92e036e73ffbfbc69d1a965e76865ba2 100644 (file)
@@ -21,6 +21,7 @@
 #include "BufferView.h"
 #include "buffer_funcs.h"
 #include "cursor.h"
+#include "CutAndPaste.h"
 #include "debug.h"
 #include "gettext.h"
 #include "session.h"
@@ -30,6 +31,7 @@
 #include "lyxrc.h"
 #include "lyxtext.h"
 #include "paragraph.h"
+#include "undo.h"
 
 #include "frontends/Alert.h"
 #include "frontends/Application.h"
@@ -308,7 +310,7 @@ void newFile(BufferView * bv, string const & filename)
        // Split argument by :
        string name;
        string tmpname = split(filename, name, ':');
-       lyxerr[Debug::INFO] << "Arg is " << filename
+       LYXERR(Debug::INFO) << "Arg is " << filename
                            << "\nName is " << name
                            << "\nTemplate is " << tmpname << endl;
 
@@ -324,25 +326,22 @@ void insertPlaintextFile(BufferView * bv, string const & f, bool asParagraph)
        if (!bv->buffer())
                return;
 
-       // FIXME: We don't know the encoding of the file
-       docstring const tmpstr = from_utf8(getContentsOfPlaintextFile(bv, f, asParagraph));
+       docstring const tmpstr = getContentsOfPlaintextFile(bv, f, asParagraph);
        if (tmpstr.empty())
                return;
 
-       // clear the selection
-       LyXText const & text = bv->buffer()->text();
-       if (&text == bv->getLyXText())
-               bv->cursor().clearSelection();
+       LCursor & cur = bv->cursor();
+       cap::replaceSelection(cur);
+       recordUndo(cur);
        if (asParagraph)
-               bv->getLyXText()->insertStringAsParagraphs(bv->cursor(), tmpstr);
+               cur.innerText()->insertStringAsParagraphs(cur, tmpstr);
        else
-               bv->getLyXText()->insertStringAsLines(bv->cursor(), tmpstr);
-       bv->update();
+               cur.innerText()->insertStringAsLines(cur, tmpstr);
 }
 
 
-// Insert plain text file (if filename is empty, prompt for one)
-string getContentsOfPlaintextFile(BufferView * bv, string const & f, bool asParagraph)
+docstring const getContentsOfPlaintextFile(BufferView * bv, string const & f,
+               bool asParagraph)
 {
        FileName fname(f);
 
@@ -355,12 +354,12 @@ string getContentsOfPlaintextFile(BufferView * bv, string const & f, bool asPara
                                     FileFilterList(), docstring());
 
                if (result.first == FileDialog::Later)
-                       return string();
+                       return docstring();
 
                fname = makeAbsPath(to_utf8(result.second));
 
                if (fname.empty())
-                       return string();
+                       return docstring();
        }
 
        if (!fs::is_readable(fname.toFilesystemEncoding())) {
@@ -369,7 +368,7 @@ string getContentsOfPlaintextFile(BufferView * bv, string const & f, bool asPara
                docstring const text = bformat(_("Could not read the specified document\n"
                                                           "%1$s\ndue to the error: %2$s"), file, error);
                Alert::error(_("Could not read file"), text);
-               return string();
+               return docstring();
        }
 
        ifstream ifs(fname.toFilesystemEncoding().c_str());
@@ -379,7 +378,7 @@ string getContentsOfPlaintextFile(BufferView * bv, string const & f, bool asPara
                docstring const text = bformat(_("Could not open the specified document\n"
                                                           "%1$s\ndue to the error: %2$s"), file, error);
                Alert::error(_("Could not open file"), text);
-               return string();
+               return docstring();
        }
 
        ifs.unsetf(ios::skipws);
@@ -399,7 +398,8 @@ string getContentsOfPlaintextFile(BufferView * bv, string const & f, bool asPara
        copy(ii, end, back_inserter(tmpstr));
 #endif
 
-       return tmpstr;
+       // FIXME UNICODE: We don't know the encoding of the file
+       return normalize_kc(from_utf8(tmpstr));
 }