UI: Fix filter shortcuts not showing in context menu

This fixes the shortcuts not showing up in the filters context
menu for rename and remove. This also has a code cleanup for
the rename action, as now it is created in the ui file.
This commit is contained in:
cg2121 2023-06-02 20:53:53 -05:00 committed by Lain
parent 7cd7ca80f8
commit 4c9e1949ad
3 changed files with 23 additions and 24 deletions

View file

@ -597,6 +597,9 @@
<property name="shortcut">
<string>Del</string>
</property>
<property name="iconVisibleInMenu">
<bool>false</bool>
</property>
</action>
<action name="actionMoveUp">
<property name="icon">
@ -622,6 +625,11 @@
<string>Ctrl+Down</string>
</property>
</action>
<action name="actionRenameFilter">
<property name="text">
<string>Rename</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View file

@ -81,6 +81,7 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_)
QApplication::translate("OBSBasicFilters", "Del", nullptr));
#endif // QT_NO_SHORTCUT
addAction(ui->actionRenameFilter);
addAction(ui->actionRemoveFilter);
addAction(ui->actionMoveUp);
addAction(ui->actionMoveDown);
@ -154,24 +155,10 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_)
ui->preview->hide();
}
QAction *renameAsync = new QAction(ui->asyncWidget);
renameAsync->setShortcutContext(Qt::WidgetWithChildrenShortcut);
connect(renameAsync, SIGNAL(triggered()), this,
SLOT(RenameAsyncFilter()));
ui->asyncWidget->addAction(renameAsync);
QAction *renameEffect = new QAction(ui->effectWidget);
renameEffect->setShortcutContext(Qt::WidgetWithChildrenShortcut);
connect(renameEffect, SIGNAL(triggered()), this,
SLOT(RenameEffectFilter()));
ui->effectWidget->addAction(renameEffect);
#ifdef __APPLE__
renameAsync->setShortcut({Qt::Key_Return});
renameEffect->setShortcut({Qt::Key_Return});
ui->actionRenameFilter->setShortcut({Qt::Key_Return});
#else
renameAsync->setShortcut({Qt::Key_F2});
renameEffect->setShortcut({Qt::Key_F2});
ui->actionRenameFilter->setShortcut({Qt::Key_F2});
#endif
UpdateFilters();
@ -932,6 +919,14 @@ void OBSBasicFilters::on_actionMoveDown_triggered()
on_moveEffectFilterDown_clicked();
}
void OBSBasicFilters::on_actionRenameFilter_triggered()
{
if (ui->asyncFilters->hasFocus())
RenameAsyncFilter();
else if (ui->effectFilters->hasFocus())
RenameEffectFilter();
}
void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async)
{
QListWidget *list = async ? ui->asyncFilters : ui->effectFilters;
@ -948,17 +943,11 @@ void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async)
async ? SLOT(DuplicateAsyncFilter())
: SLOT(DuplicateEffectFilter());
const char *renameSlot = async ? SLOT(RenameAsyncFilter())
: SLOT(RenameEffectFilter());
const char *removeSlot =
async ? SLOT(on_removeAsyncFilter_clicked())
: SLOT(on_removeEffectFilter_clicked());
popup.addSeparator();
popup.addAction(QTStr("Duplicate"), this, dulpicateSlot);
popup.addSeparator();
popup.addAction(QTStr("Rename"), this, renameSlot);
popup.addAction(QTStr("Remove"), this, removeSlot);
popup.addAction(ui->actionRenameFilter);
popup.addAction(ui->actionRemoveFilter);
popup.addSeparator();
QAction *copyAction = new QAction(QTStr("Copy"));

View file

@ -113,6 +113,8 @@ private slots:
void on_actionMoveUp_triggered();
void on_actionMoveDown_triggered();
void on_actionRenameFilter_triggered();
void AsyncFilterNameEdited(QWidget *editor);
void EffectFilterNameEdited(QWidget *editor);