Browse Source

Merge pull request #1455 from Andersama/delete-shortcut-filters

UI: Add various shortcuts for filters window
Jim 7 years ago
parent
commit
0738035275
3 changed files with 72 additions and 0 deletions
  1. 36 0
      UI/forms/OBSBasicFilters.ui
  2. 32 0
      UI/window-basic-filters.cpp
  3. 4 0
      UI/window-basic-filters.hpp

+ 36 - 0
UI/forms/OBSBasicFilters.ui

@@ -425,6 +425,42 @@
     </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>
+  <action name="actionMoveUp">
+   <property name="icon">
+    <iconset resource="obs.qrc">
+     <normaloff>:/res/images/up.png</normaloff>:/res/images/up.png</iconset>
+   </property>
+   <property name="text">
+    <string>Basic.MainMenu.Edit.Order.MoveUp</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+Up</string>
+   </property>
+  </action>
+  <action name="actionMoveDown">
+   <property name="icon">
+    <iconset resource="obs.qrc">
+     <normaloff>:/res/images/down.png</normaloff>:/res/images/down.png</iconset>
+   </property>
+   <property name="text">
+    <string>Basic.MainMenu.Edit.Order.MoveDown</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+Down</string>
+   </property>
+  </action>
  </widget>
  <customwidgets>
   <customwidget>

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

@@ -72,6 +72,14 @@ 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);
+	addAction(ui->actionMoveUp);
+	addAction(ui->actionMoveDown);
+
 	installEventFilter(CreateShortcutFilter());
 
 	connect(ui->asyncFilters->itemDelegate(),
@@ -659,6 +667,30 @@ 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::on_actionMoveUp_triggered()
+{
+	if (ui->asyncFilters->hasFocus())
+		on_moveAsyncFilterUp_clicked();
+	else if (ui->effectFilters->hasFocus())
+		on_moveEffectFilterUp_clicked();
+}
+
+void OBSBasicFilters::on_actionMoveDown_triggered()
+{
+	if (ui->asyncFilters->hasFocus())
+		on_moveAsyncFilterDown_clicked();
+	else if (ui->effectFilters->hasFocus())
+		on_moveEffectFilterDown_clicked();
+}
+
 void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async)
 {
 	QListWidget *list = async ? ui->asyncFilters : ui->effectFilters;

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

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