ソースを参照

UI: Add delete as shortcut for removing filters

Delete key now should prompt to remove filters
Alex Anderson 7 年 前
コミット
05e06b9af1
3 ファイル変更28 行追加0 行削除
  1. 12 0
      UI/forms/OBSBasicFilters.ui
  2. 14 0
      UI/window-basic-filters.cpp
  3. 2 0
      UI/window-basic-filters.hpp

+ 12 - 0
UI/forms/OBSBasicFilters.ui

@@ -425,6 +425,18 @@
     </layout>
    </item>
   </layout>
+  <action name="actionRemoveFilter">
+   <property name="icon">
+    <iconset resource="obs.qrc">
+     <normaloff>:/res/images/list_remove.png</normaloff>:/res/images/list_remove.png</iconset>
+   </property>
+   <property name="text">
+    <string>Remove</string>
+   </property>
+   <property name="shortcut">
+    <string>Del</string>
+   </property>
+  </action>
  </widget>
  <customwidgets>
   <customwidget>

+ 14 - 0
UI/window-basic-filters.cpp

@@ -72,6 +72,12 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_)
 	const char *name = obs_source_get_name(source);
 	setWindowTitle(QTStr("Basic.Filters.Title").arg(QT_UTF8(name)));
 
+#ifndef QT_NO_SHORTCUT
+	ui->actionRemoveFilter->setShortcut(QApplication::translate("OBSBasicFilters", "Del", nullptr));
+#endif // QT_NO_SHORTCUT
+
+	addAction(ui->actionRemoveFilter);
+
 	installEventFilter(CreateShortcutFilter());
 
 	connect(ui->asyncFilters->itemDelegate(),
@@ -668,6 +674,14 @@ void OBSBasicFilters::on_effectFilters_currentRowChanged(int row)
 	UpdatePropertiesView(row, false);
 }
 
+void OBSBasicFilters::on_actionRemoveFilter_triggered()
+{
+	if (ui->asyncFilters->hasFocus())
+		on_removeAsyncFilter_clicked();
+	else if (ui->effectFilters->hasFocus())
+		on_removeEffectFilter_clicked();
+}
+
 void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async)
 {
 	QListWidget *list = async ? ui->asyncFilters : ui->effectFilters;

+ 2 - 0
UI/window-basic-filters.hpp

@@ -100,6 +100,8 @@ private slots:
 	void on_effectFilters_customContextMenuRequested(const QPoint &pos);
 	void on_effectFilters_GotFocus();
 
+	void on_actionRemoveFilter_triggered();
+
 	void AsyncFilterNameEdited(QWidget *editor,
 			QAbstractItemDelegate::EndEditHint endHint);
 	void EffectFilterNameEdited(QWidget *editor,