From 34e346a011549053d4da2b2a52c29de501e9ea73 Mon Sep 17 00:00:00 2001 From: tuduweb Date: Fri, 8 Apr 2022 07:38:13 +0000 Subject: [PATCH] UI: Fix crash when pressing `tab` key in rename --- UI/visibility-item-widget.cpp | 19 +++++++++++++++++++ UI/visibility-item-widget.hpp | 3 +++ 2 files changed, 22 insertions(+) diff --git a/UI/visibility-item-widget.cpp b/UI/visibility-item-widget.cpp index dba42fbdc..2877c7ad6 100644 --- a/UI/visibility-item-widget.cpp +++ b/UI/visibility-item-widget.cpp @@ -7,6 +7,7 @@ #include #include #include +#include VisibilityItemWidget::VisibilityItemWidget(obs_source_t *source_) : source(source_), @@ -144,6 +145,24 @@ void VisibilityItemDelegate::paint(QPainter *painter, widget->SetColor(palette.color(group, role), active, selected); } +bool VisibilityItemDelegate::eventFilter(QObject *object, QEvent *event) +{ + QWidget *editor = qobject_cast(object); + if (!editor) + return false; + + if (event->type() == QEvent::KeyPress) { + QKeyEvent *keyEvent = static_cast(event); + + if (keyEvent->key() == Qt::Key_Tab || + keyEvent->key() == Qt::Key_Backtab) { + return false; + } + } + + return QStyledItemDelegate::eventFilter(object, event); +} + void SetupVisibilityItem(QListWidget *list, QListWidgetItem *item, obs_source_t *source) { diff --git a/UI/visibility-item-widget.hpp b/UI/visibility-item-widget.hpp index 114b6ab47..8d9e1b223 100644 --- a/UI/visibility-item-widget.hpp +++ b/UI/visibility-item-widget.hpp @@ -47,6 +47,9 @@ public: void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override; + +protected: + bool eventFilter(QObject *object, QEvent *event) override; }; void SetupVisibilityItem(QListWidget *list, QListWidgetItem *item,