[PATCH] Ignore mouse wheel events on tags widget
Sergey Starosek
sergey.starosek at gmail.com
Sun Jan 19 07:33:24 UTC 2014
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.starosek at 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
More information about the subsurface
mailing list