X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiClipboard.cpp;h=ec6b916e4506c46e86be8620a63b8c1b98defd0f;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=803da9a8eec4656094792146f5eb6c7e42e7fcfa;hpb=a0ec412cd47f278de0426761abcd0090b74d5179;p=lyx.git diff --git a/src/frontends/qt4/GuiClipboard.cpp b/src/frontends/qt4/GuiClipboard.cpp index 803da9a8ee..ec6b916e45 100644 --- a/src/frontends/qt4/GuiClipboard.cpp +++ b/src/frontends/qt4/GuiClipboard.cpp @@ -50,16 +50,18 @@ using namespace std; using namespace lyx::support; -static char const * const lyx_mime_type = "application/x-lyx"; -static char const * const pdf_mime_type = "application/pdf"; -static char const * const emf_mime_type = "image/x-emf"; -static char const * const wmf_mime_type = "image/x-wmf"; namespace lyx { namespace frontend { +QString const lyxMimeType(){ return "application/x-lyx"; } +QString const pdfMimeType(){ return "application/pdf"; } +QString const emfMimeType(){ return "image/x-emf"; } +QString const wmfMimeType(){ return "image/x-wmf"; } + + GuiClipboard::GuiClipboard() { connect(qApp->clipboard(), SIGNAL(dataChanged()), @@ -81,9 +83,9 @@ string const GuiClipboard::getAsLyX() const return string(); } - if (source->hasFormat(lyx_mime_type)) { + if (source->hasFormat(lyxMimeType())) { // data from ourself or some other LyX instance - QByteArray const ar = source->data(lyx_mime_type); + QByteArray const ar = source->data(lyxMimeType()); string const s(ar.data(), ar.count()); LYXERR(Debug::ACTION, s << "'"); return s; @@ -136,7 +138,7 @@ FileName GuiClipboard::getPastedGraphicsFileName(Cursor const & cur, typeNames[Clipboard::JpegGraphicsType] = _("JPEG"); // find unused filename with primary extension - string document_path = cur.buffer().fileName().onlyPath().absFilename(); + string document_path = cur.buffer()->fileName().onlyPath().absFilename(); unsigned newfile_number = 0; FileName filename; do { @@ -256,10 +258,10 @@ FileName GuiClipboard::getAsGraphics(Cursor const & cur, GraphicsType type) cons // get mime for type QString mime; switch (type) { - case PdfGraphicsType: mime = pdf_mime_type; break; - case LinkBackGraphicsType: mime = pdf_mime_type; break; - case EmfGraphicsType: mime = emf_mime_type; break; - case WmfGraphicsType: mime = wmf_mime_type; break; + case PdfGraphicsType: mime = pdfMimeType(); break; + case LinkBackGraphicsType: mime = pdfMimeType(); break; + case EmfGraphicsType: mime = emfMimeType(); break; + case WmfGraphicsType: mime = wmfMimeType(); break; default: LASSERT(false, /**/); } @@ -309,7 +311,7 @@ docstring const GuiClipboard::getAsText() const if (str.isNull()) return docstring(); - return internalLineEnding(qstring_to_ucs4(str)); + return internalLineEnding(str); } @@ -322,7 +324,7 @@ void GuiClipboard::put(string const & lyx, docstring const & text) QMimeData * data = new QMimeData; if (!lyx.empty()) { QByteArray const qlyx(lyx.c_str(), lyx.size()); - data->setData(lyx_mime_type, qlyx); + data->setData(lyxMimeType(), qlyx); } // Don't test for text.empty() since we want to be able to clear the // clipboard. @@ -336,7 +338,15 @@ bool GuiClipboard::hasLyXContents() const { QMimeData const * const source = qApp->clipboard()->mimeData(QClipboard::Clipboard); - return source && source->hasFormat(lyx_mime_type); + return source && source->hasFormat(lyxMimeType()); +} + + +bool GuiClipboard::hasTextContents() const +{ + QMimeData const * const source = + qApp->clipboard()->mimeData(QClipboard::Clipboard); + return source && source->hasText(); } @@ -375,9 +385,9 @@ bool GuiClipboard::hasGraphicsContents(Clipboard::GraphicsType type) const // compute mime for type QString mime; switch (type) { - case EmfGraphicsType: mime = emf_mime_type; break; - case WmfGraphicsType: mime = wmf_mime_type; break; - case PdfGraphicsType: mime = pdf_mime_type; break; + case EmfGraphicsType: mime = emfMimeType(); break; + case WmfGraphicsType: mime = wmfMimeType(); break; + case PdfGraphicsType: mime = pdfMimeType(); break; default: LASSERT(false, /**/); } @@ -439,4 +449,4 @@ bool GuiClipboard::empty() const } // namespace frontend } // namespace lyx -#include "GuiClipboard_moc.cpp" +#include "moc_GuiClipboard.cpp"