3 * \file qt4/GuiSelection.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * \author Abdelrazak Younes
11 * Full author contact details are available in file CREDITS.
14 #ifndef GUISELECTION_H
15 #define GUISELECTION_H
17 #include "frontends/Selection.h"
25 * The Qt4 version of the Selection.
27 class GuiSelection : public QObject, public Selection
32 virtual ~GuiSelection() {}
34 /** Selection overloaded methods
37 void haveSelection(bool own);
38 docstring const get() const;
39 void put(docstring const & str);
44 void on_dataChanged();
47 // Direct call clipboard()->text(QClipboard::Selection) inside onDataChanged causes
48 // selection to be obtained. Now imagine the some LyX instance A, when making selection -
49 // each change triggers onDataChange in all others instances for each mouse
50 // or keyboard move. This in turn causes many calls of requestSelection in A
51 // which interferes with the selecting itself. As a result middle button pasting
52 // for more instances don't work and debugging is a hell. So we just schedule
53 // obtaining of selection on the time empty() is actually called.
54 mutable bool schedule_check_;
55 bool const selection_supported_;
58 } // namespace frontend
61 #endif // GUISELECTION_H