X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiSelection.cpp;h=362da4aba54d1c9c074c19ca974aa6fd3fdc3721;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=58c5b7b72b746563bf4dcaad7c5edfe9af02a2ec;hpb=ce9c690503c17649f0c887d2b4e54d14ea3eb53d;p=lyx.git diff --git a/src/frontends/qt4/GuiSelection.cpp b/src/frontends/qt4/GuiSelection.cpp index 58c5b7b72b..362da4aba5 100644 --- a/src/frontends/qt4/GuiSelection.cpp +++ b/src/frontends/qt4/GuiSelection.cpp @@ -27,17 +27,13 @@ namespace lyx { namespace frontend { -using support::internalLineEnding; -using support::externalLineEnding; - GuiSelection::GuiSelection() - : selection_supported_(qApp->clipboard()->supportsSelection()) + : schedule_check_(true), + selection_supported_(qApp->clipboard()->supportsSelection()) { connect(qApp->clipboard(), SIGNAL(selectionChanged()), this, SLOT(on_dataChanged())); - // initialize clipboard status. - on_dataChanged(); } @@ -76,7 +72,7 @@ docstring const GuiSelection::get() const if (str.isNull()) return docstring(); - return internalLineEnding(qstring_to_ucs4(str)); + return internalLineEnding(str); } @@ -84,7 +80,7 @@ void GuiSelection::put(docstring const & str) { LYXERR(Debug::SELECTION, "GuiSelection::put: " << to_utf8(str)); - qApp->clipboard()->setText(toqstr(externalLineEnding(str)), + qApp->clipboard()->setText(externalLineEnding(str), QClipboard::Selection); } @@ -101,17 +97,20 @@ bool GuiSelection::empty() const if (!selection_supported_) return true; + // Cache which is to speed up selection-status read + // (4 calls when open Edit menu). + static bool text_selection_empty; if (schedule_check_) { - text_selection_empty_ = qApp->clipboard()-> + text_selection_empty = qApp->clipboard()-> text(QClipboard::Selection).isEmpty(); schedule_check_ = false; } - LYXERR(Debug::SELECTION, "GuiSelection::filled: " << !text_selection_empty_); - return text_selection_empty_; + LYXERR(Debug::SELECTION, "GuiSelection::filled: " << !text_selection_empty); + return text_selection_empty; } } // namespace frontend } // namespace lyx -#include "GuiSelection_moc.cpp" +#include "moc_GuiSelection.cpp"