docstring const GuiSelection::get() const { QString const str = qApp->clipboard()->text(QClipboard::Selection) .normalized(QString::NormalizationForm_C); LYXERR(Debug::SELECTION, "GuiSelection::get: " << str); if (str.isNull()) return docstring(); return internalLineEnding(str); }
docstring const GuiClipboard::getAsText(TextType type) const { // text data from other applications if ((type == AnyTextType || type == LyXOrPlainTextType) && hasTextContents(LyXTextType)) type = LyXTextType; if (type == AnyTextType && hasTextContents(LaTeXTextType)) type = LaTeXTextType; if (type == AnyTextType && hasTextContents(HtmlTextType)) type = HtmlTextType; QString str; switch (type) { case LyXTextType: // must not convert to docstring, since file can contain // mixed encodings (use getAsLyX() instead) break; case AnyTextType: case LyXOrPlainTextType: case PlainTextType: str = qApp->clipboard()->text(QClipboard::Clipboard) .normalized(QString::NormalizationForm_C); break; case LaTeXTextType: { QMimeData const * source = qApp->clipboard()->mimeData(QClipboard::Clipboard); if (source) { // First try LaTeX, then TeX (we do not distinguish // for clipboard purposes) if (source->hasFormat(latexMimeType())) { str = source->data(latexMimeType()); str = str.normalized(QString::NormalizationForm_C); } else if (source->hasFormat(texMimeType())) { str = source->data(texMimeType()); str = str.normalized(QString::NormalizationForm_C); } } break; } case HtmlTextType: { QString subtype = "html"; str = qApp->clipboard()->text(subtype, QClipboard::Clipboard) .normalized(QString::NormalizationForm_C); str = tidyHtml(str); break; } } LYXERR(Debug::ACTION, "GuiClipboard::getAsText(" << type << "): `" << str << "'"); if (str.isNull()) return docstring(); return internalLineEnding(str); }