X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FCustomizedWidgets.cpp;h=4ae2fe6f94daedb9ac13d2a987edda37239049c0;hb=e029b216b7e56ce3a41ef0b853045c37c7d155d8;hp=9a8152bf41875c67ec0be3691909cd1341b2b9c1;hpb=6f5e86e0651333f9383f75418fbe74a411c8c2d8;p=lyx.git diff --git a/src/frontends/qt4/CustomizedWidgets.cpp b/src/frontends/qt4/CustomizedWidgets.cpp index 9a8152bf41..4ae2fe6f94 100644 --- a/src/frontends/qt4/CustomizedWidgets.cpp +++ b/src/frontends/qt4/CustomizedWidgets.cpp @@ -5,12 +5,13 @@ * * \author Bo Peng * \author Edwin Leuven + * \author Jürgen Spitzmüller * * Full author contact details are available in file CREDITS. */ /* - The code for the ShortcutLineEdit class was adapted from + The code for the ShortcutWidget class was adapted from kkeysequencewidget.cpp, which is part of the KDE libraries. Copyright (C) 1998 Mark Donohoe Copyright (C) 2001 Ellis Whitehead @@ -27,6 +28,7 @@ #include #include +#include #include #include "support/qstring_helpers.h" @@ -40,22 +42,27 @@ using lyx::toqstr; namespace lyx { namespace frontend { -ShortcutLineEdit::ShortcutLineEdit(QWidget * parent) - : QLineEdit(parent), keysequence_() +ShortcutWidget::ShortcutWidget(QWidget * parent) + : QLabel(parent), keysequence_() { QApplication::instance()->installEventFilter(this); has_cursor_ = false; + setFrameShape(QFrame::Panel); + setFrameShadow(QFrame::Raised); + setLineWidth(3); + setFocusPolicy(Qt::StrongFocus); + setAlignment(Qt::AlignCenter); } -void ShortcutLineEdit::reset() +void ShortcutWidget::reset() { clear(); keysequence_ = KeySequence(); } -bool ShortcutLineEdit::eventFilter(QObject * obj, QEvent * e) +bool ShortcutWidget::eventFilter(QObject * obj, QEvent * e) { if (!has_cursor_) return false; @@ -68,18 +75,24 @@ bool ShortcutLineEdit::eventFilter(QObject * obj, QEvent * e) return true; default: break; - } + } return false; } -KeySequence const ShortcutLineEdit::getKeySequence() const +KeySequence const ShortcutWidget::getKeySequence() const { return keysequence_; } -void ShortcutLineEdit::keyPressEvent(QKeyEvent * e) +void ShortcutWidget::setKeySequence(lyx::KeySequence const s) +{ + keysequence_ = s; +} + + +void ShortcutWidget::keyPressEvent(QKeyEvent * e) { int const keyQt = e->key(); if (!keyQt) @@ -99,14 +112,16 @@ void ShortcutLineEdit::keyPressEvent(QKeyEvent * e) } -bool ShortcutLineEdit::event(QEvent * e) +bool ShortcutWidget::event(QEvent * e) { switch (e->type()) { case QEvent::FocusOut: has_cursor_ = false; + setFrameShadow(QFrame::Raised); break; case QEvent::FocusIn: has_cursor_ = true; + setFrameShadow(QFrame::Sunken); break; case QEvent::ShortcutOverride: keyPressEvent(static_cast(e)); @@ -118,11 +133,11 @@ bool ShortcutLineEdit::event(QEvent * e) default: break; } - return QLineEdit::event(e); + return QLabel::event(e); } -void ShortcutLineEdit::appendToSequence(QKeyEvent * e) +void ShortcutWidget::appendToSequence(QKeyEvent * e) { KeySymbol sym; setKeySymbol(&sym, e); @@ -132,7 +147,14 @@ void ShortcutLineEdit::appendToSequence(QKeyEvent * e) keysequence_.addkey(sym, mod, lyx::NoModifier); } + +void ShortcutWidget::removeFromSequence() +{ + keysequence_.removeKey(); + setText(toqstr(keysequence_.print(KeySequence::ForGui))); +} + } // namespace frontend } // namespace lyx -#include "CustomizedWidgets_moc.cpp" +#include "moc_CustomizedWidgets.cpp"