#ifndef CUTANDPASTE_H
#define CUTANDPASTE_H
+#include "Author.h"
#include "DocumentClassPtr.h"
#include "support/strfwd.h"
std::vector<docstring> availableSelections(Buffer const *);
/// Get the number of available elements in the cut buffer.
size_type numberOfSelections();
-/// Get the sel_index-th element of the cut buffer in plain text format.
-docstring selection(size_t sel_index, DocumentClassConstPtr docclass);
+///
+typedef std::pair<DocumentClassConstPtr, AuthorList > DocInfoPair;
+/**
+ * Get the sel_index-th element of the cut buffer in plain text format
+ * or, if \param for_math is true, in a format suitable for mathed.
+ */
+docstring selection(size_t sel_index, DocInfoPair docinfo, bool for_math = false);
/**
* Replace using the font of the first selected character and select
void copySelectionToTemp(Cursor const & cur);
///
void copyInset(Cursor const & cur, Inset * inset, docstring const & plaintext);
+///
+void copyInsetToTemp(Cursor const & cur, Inset * inset);
/**
* Push the current selection to the cut buffer and the system clipboard.
* \param plaintext plain text version of the selection for the system
/// Paste the paragraph list \p parlist at the position given by \p cur.
/// Does not handle undo. Does only work in text, not mathed.
void pasteParagraphList(Cursor & cur, ParagraphList const & parlist,
- DocumentClassConstPtr textclass, ErrorList & errorList,
- BranchAction branchAction = BRANCH_ASK);
+ DocumentClassConstPtr textclass, AuthorList const & authors,
+ ErrorList & errorList,
+ BranchAction branchAction = BRANCH_ASK);
/** Needed to switch between different classes. This works
* for a list of paragraphs beginning with the specified par.
- * It changes layouts and character styles.
+ * It changes layouts and character styles. Errors are reported
+ * in the passed ErrorList.
*/
void switchBetweenClasses(DocumentClassConstPtr oldone,
- DocumentClassConstPtr newone, InsetText & in, ErrorList &);
+ DocumentClassConstPtr newone, InsetText & in, ErrorList & el);
+/// Same but without error reporting.
+void switchBetweenClasses(DocumentClassConstPtr oldone,
+ DocumentClassConstPtr newone, InsetText & in);
/// Get the current selection as a string. Does not change the selection.
/// Does only work if the whole selection is in mathed.