This prevents tags widgets (dive tags and buddy) from grabbing focus on mouse wheel events but allows entering dive edit mode on mouse click.
It was attempted earlier by Dirk (commit d117beca), but edit mode did not work properly. Signed-off-by: Sergey Starosek <sergey.staro...@gmail.com> --- qt-ui/maintab.cpp | 3 +-- qt-ui/tagwidget.cpp | 6 ++++++ qt-ui/tagwidget.h | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index 4258d09..f3f85b0 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -305,8 +305,7 @@ bool MainTab::eventFilter(QObject* object, QEvent* event) // FocusIn for the starWidgets or RequestSoftwareInputPanel for tagWidget start the editing if ((event->type() == QEvent::MouseButtonPress) || (event->type() == QEvent::KeyPress && object == ui.dateTimeEdit) || - (event->type() == QEvent::FocusIn && (object == ui.rating || object == ui.visibility || object == ui.buddy)) || - (event->type() == QEvent::RequestSoftwareInputPanel && object == ui.tagWidget)) { + (event->type() == QEvent::FocusIn && (object == ui.rating || object == ui.visibility || object == ui.buddy || object == ui.tagWidget))) { tabBar()->setTabIcon(currentIndex(), QIcon(":warning")); enableEdition(); } diff --git a/qt-ui/tagwidget.cpp b/qt-ui/tagwidget.cpp index dc78c89..e7585df 100644 --- a/qt-ui/tagwidget.cpp +++ b/qt-ui/tagwidget.cpp @@ -27,6 +27,7 @@ TagWidget::TagWidget(QWidget *parent) : GroupedLineEdit(parent), m_completer(NUL addColor( QColor(Qt::green).darker(120) ); addColor( QColor(Qt::blue).darker(120) ); } // light text. get a dark background. + setFocusPolicy(Qt::StrongFocus); } void TagWidget::setCompleter(QCompleter *completer) @@ -187,3 +188,8 @@ void TagWidget::keyPressEvent(QKeyEvent *e) { } } +void TagWidget::wheelEvent(QWheelEvent *event) { + if (hasFocus()) { + GroupedLineEdit::wheelEvent(event); + } +} diff --git a/qt-ui/tagwidget.h b/qt-ui/tagwidget.h index b9c1619..1f5cc2d 100644 --- a/qt-ui/tagwidget.h +++ b/qt-ui/tagwidget.h @@ -16,6 +16,7 @@ public: void setText(QString text); void clear(); void setCursorPosition(int position); + void wheelEvent(QWheelEvent *event); public slots: void reparse(); void completionSelected(QString); -- 1.8.3.2 _______________________________________________ subsurface mailing list subsurface@hohndel.org http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface