]> git.lyx.org Git - lyx.git/blobdiff - src/CutAndPaste.cpp
* Doxy: polish html output.
[lyx.git] / src / CutAndPaste.cpp
index 6984e5f5daf68b388e8d0582a0ba1bd00e9f5d5b..f657d57cbde9d0a876bc52c623142cb96964902f 100644 (file)
@@ -38,6 +38,8 @@
 #include "Undo.h"
 
 #include "insets/InsetFlex.h"
+#include "insets/InsetGraphics.h"
+#include "insets/InsetGraphicsParams.h"
 #include "insets/InsetTabular.h"
 
 #include "mathed/MathData.h"
 
 #include <string>
 
-using std::endl;
-using std::for_each;
-using std::make_pair;
-using std::pair;
-using std::vector;
-using std::string;
-
+using namespace std;
+using namespace lyx::support;
+using lyx::frontend::Clipboard;
 
 namespace lyx {
 
-using support::bformat;
-using frontend::Clipboard;
-
 namespace {
 
-typedef std::pair<pit_type, int> PitPosPair;
+typedef pair<pit_type, int> PitPosPair;
 
 typedef limited_stack<pair<ParagraphList, TextClassPtr> > CutStack;
 
@@ -95,11 +90,11 @@ void region(CursorSlice const & i1, CursorSlice const & i2,
        c1 = p.col(i1.idx());
        c2 = p.col(i2.idx());
        if (c1 > c2)
-               std::swap(c1, c2);
+               swap(c1, c2);
        r1 = p.row(i1.idx());
        r2 = p.row(i2.idx());
        if (r1 > r2)
-               std::swap(r1, r2);
+               swap(r1, r2);
 }
 
 
@@ -339,7 +334,7 @@ void putClipboard(ParagraphList const & paragraphs, TextClassPtr textclass,
        buffer.setUnnamed(true);
        buffer.paragraphs() = paragraphs;
        buffer.params().setTextClass(textclass);
-       std::ostringstream lyx;
+       ostringstream lyx;
        if (buffer.write(lyx))
                theClipboard().put(lyx.str(), plaintext);
        else
@@ -470,7 +465,7 @@ void switchBetweenClasses(TextClassPtr const & c1,
 }
 
 
-std::vector<docstring> const availableSelections(Buffer const & buffer)
+vector<docstring> const availableSelections(Buffer const & buffer)
 {
        vector<docstring> selList;
 
@@ -742,7 +737,7 @@ void pasteFromStack(Cursor & cur, ErrorList & errorList, size_t sel_index)
 }
 
 
-void pasteClipboard(Cursor & cur, ErrorList & errorList, bool asParagraphs)
+void pasteClipboardText(Cursor & cur, ErrorList & errorList, bool asParagraphs)
 {
        // Use internal clipboard if it is the most recent one
        if (theClipboard().isInternal()) {
@@ -780,6 +775,26 @@ void pasteClipboard(Cursor & cur, ErrorList & errorList, bool asParagraphs)
 }
 
 
+void pasteClipboardGraphics(Cursor & cur, ErrorList & errorList,
+                           Clipboard::GraphicsType preferedType)
+{
+       BOOST_ASSERT(theClipboard().hasGraphicsContents(preferedType));
+
+       // get picture from clipboard
+       FileName filename = theClipboard().getAsGraphics(cur, preferedType);
+       if (filename.empty())
+               return;
+
+       // create inset for graphic
+       InsetGraphics * inset = new InsetGraphics;
+       InsetGraphicsParams params;
+       params.filename = EmbeddedFile(filename.absFilename(), cur.buffer().filePath());
+       inset->setParams(params);
+       cur.recordUndo();
+       cur.insert(inset);
+}
+
+
 void pasteSelection(Cursor & cur, ErrorList & errorList)
 {
        if (selectionBuffer.empty())
@@ -885,7 +900,7 @@ docstring grabSelection(Cursor const & cur)
 
        // FIXME: What is wrong with the following?
 #if 0
-       std::ostringstream os;
+       ostringstream os;
        for (DocIterator dit = cur.selectionBegin();
             dit != cur.selectionEnd(); dit.forwardPos())
                os << asString(dit.cell());