diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2010-03-09 18:19:38 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2010-03-10 19:00:52 (GMT) |
commit | 4d27295ce01b00f27ceb6d9c6c3227425cbf0d70 (patch) | |
tree | 69af904da0222f4dbce31e8a4b1e30923f9b0d6e /src/gui/widgets/qlinecontrol.cpp | |
parent | a747e171d316b25ba10dc36f6d54d1cbecad5c32 (diff) | |
download | Qt-4d27295ce01b00f27ceb6d9c6c3227425cbf0d70.zip Qt-4d27295ce01b00f27ceb6d9c6c3227425cbf0d70.tar.gz Qt-4d27295ce01b00f27ceb6d9c6c3227425cbf0d70.tar.bz2 |
Make QTextControl-based classes and QLineEdit understand Ctrl+Shift+Insert
On X11, this key is reserved for pasting the text selection
(a.k.a. the PRIMARY selection). KDE apps already honour this, not all
GNOME ones do, but it was agreed with them on xdg@freedesktop.org.
Reviewed-By: mae <qt-info@nokia.com>
Diffstat (limited to 'src/gui/widgets/qlinecontrol.cpp')
-rw-r--r-- | src/gui/widgets/qlinecontrol.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp index 9ec0feb..8e715a9 100644 --- a/src/gui/widgets/qlinecontrol.cpp +++ b/src/gui/widgets/qlinecontrol.cpp @@ -136,9 +136,9 @@ void QLineControl::copy(QClipboard::Mode mode) const \sa insert() */ -void QLineControl::paste() +void QLineControl::paste(QClipboard::Mode clipboardMode) { - QString clip = QApplication::clipboard()->text(QClipboard::Clipboard); + QString clip = QApplication::clipboard()->text(clipboardMode); if (!clip.isEmpty() || hasSelectedText()) { separate(); //make it a separate undo/redo command insert(clip); @@ -1576,8 +1576,14 @@ void QLineControl::processKeyEvent(QKeyEvent* event) copy(); } else if (event == QKeySequence::Paste) { - if (!isReadOnly()) - paste(); + if (!isReadOnly()) { + QClipboard::Mode mode = QClipboard::Clipboard; +#ifdef Q_WS_X11 + if (event->modifiers() == (Qt::CTRL | Qt::SHIFT) && event->key() == Qt::Key_Insert) + mode = QClipboard::Selection; +#endif + paste(mode); + } } else if (event == QKeySequence::Cut) { if (!isReadOnly()) { |