GuiSelection: make sure the initial check is done

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25965 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Abdelrazak Younes 2008-07-29 10:25:35 +00:00
parent ce9c690503
commit 4ba5452012
2 changed files with 8 additions and 7 deletions

View File

@ -32,7 +32,8 @@ using support::externalLineEnding;
GuiSelection::GuiSelection() GuiSelection::GuiSelection()
: selection_supported_(qApp->clipboard()->supportsSelection()) : selection_supported_(qApp->clipboard()->supportsSelection()),
schedule_check_(true)
{ {
connect(qApp->clipboard(), SIGNAL(selectionChanged()), connect(qApp->clipboard(), SIGNAL(selectionChanged()),
this, SLOT(on_dataChanged())); this, SLOT(on_dataChanged()));
@ -101,14 +102,17 @@ bool GuiSelection::empty() const
if (!selection_supported_) if (!selection_supported_)
return true; return true;
// Cache which is to speed up selection-status read
// (4 calls when openi Edit menu).
static bool text_selection_empty;
if (schedule_check_) { if (schedule_check_) {
text_selection_empty_ = qApp->clipboard()-> text_selection_empty = qApp->clipboard()->
text(QClipboard::Selection).isEmpty(); text(QClipboard::Selection).isEmpty();
schedule_check_ = false; schedule_check_ = false;
} }
LYXERR(Debug::SELECTION, "GuiSelection::filled: " << !text_selection_empty_); LYXERR(Debug::SELECTION, "GuiSelection::filled: " << !text_selection_empty);
return text_selection_empty_; return text_selection_empty;
} }
} // namespace frontend } // namespace frontend

View File

@ -44,9 +44,6 @@ private Q_SLOTS:
void on_dataChanged(); void on_dataChanged();
private: private:
// Cache which is to speed up selection-status read
// (4 calls when openi Edit menu).
mutable bool text_selection_empty_;
// Direct call clipboard()->text(QClipboard::Selection) inside onDataChanged causes // Direct call clipboard()->text(QClipboard::Selection) inside onDataChanged causes
// selection to be obtained. Now imagine the some LyX instance A, when making selection - // selection to be obtained. Now imagine the some LyX instance A, when making selection -
// each change triggers onDataChange in all others instances for each mouse // each change triggers onDataChange in all others instances for each mouse