diff --git a/NEWS.md b/NEWS.md index dde5fd7b1..b150adb81 100644 --- a/NEWS.md +++ b/NEWS.md @@ -9,6 +9,9 @@ properties has been changed: the old element is now titled "Language (obsolete)" & the current, IETF BCP 47 based one is simply called "Language". +* MKVToolNix GUI: preferences: you can now use the "delete" key to remove + entries from simple list widgets for strings (e.g. the list of recently used + destination directories). ## Bug fixes diff --git a/src/mkvtoolnix-gui/util/string_list_configuration_widget.cpp b/src/mkvtoolnix-gui/util/string_list_configuration_widget.cpp index dd21e857b..98e879a72 100644 --- a/src/mkvtoolnix-gui/util/string_list_configuration_widget.cpp +++ b/src/mkvtoolnix-gui/util/string_list_configuration_widget.cpp @@ -2,6 +2,8 @@ #include #include +#include +#include #include #include #include @@ -35,6 +37,8 @@ StringListConfigurationWidget::StringListConfigurationWidget(QWidget *parent) p->ui->pbRemoveItem->setEnabled(false); + p->ui->lwItems->installEventFilter(this); + setupConnections(); } @@ -161,4 +165,19 @@ StringListConfigurationWidget::setItemType(ItemType itemType) { p_func()->itemType = itemType; } +bool +StringListConfigurationWidget::eventFilter(QObject *o, + QEvent *e) { + auto p = p_func(); + + if ( (o == p->ui->lwItems) + && (e->type() == QEvent::KeyPress) + && (static_cast(e)->matches(QKeySequence::Delete))) { + removeSelectedItems(); + return true; + } + + return QWidget::eventFilter(o, e); +} + } diff --git a/src/mkvtoolnix-gui/util/string_list_configuration_widget.h b/src/mkvtoolnix-gui/util/string_list_configuration_widget.h index 93a11743f..5ab040881 100644 --- a/src/mkvtoolnix-gui/util/string_list_configuration_widget.h +++ b/src/mkvtoolnix-gui/util/string_list_configuration_widget.h @@ -2,6 +2,7 @@ #include "common/common_pch.h" +#include #include #include #include @@ -47,6 +48,8 @@ public: void addItem(QString const &name); + virtual bool eventFilter(QObject *o, QEvent *e) override; + public Q_SLOTS: void enableControls();