Browse Source

UI: Add QListWidget subclass to emit focus change

The FocusList subclass of QListWidget emits a GotFocus signal when it
gets focus -- used for the filters window to know when a specific filter
list gets focus.
jp9000 10 years ago
parent
commit
ff363bc77b
3 changed files with 29 additions and 0 deletions
  1. 2 0
      obs/CMakeLists.txt
  2. 10 0
      obs/focus-list.cpp
  3. 17 0
      obs/focus-list.hpp

+ 2 - 0
obs/CMakeLists.txt

@@ -104,6 +104,7 @@ set(obs_SOURCES
 	window-log-reply.cpp
 	window-remux.cpp
 	properties-view.cpp
+	focus-list.cpp
 	double-slider.cpp
 	volume-control.cpp
 	adv-audio-control.cpp
@@ -135,6 +136,7 @@ set(obs_HEADERS
 	properties-view.hpp
 	display-helpers.hpp
 	double-slider.hpp
+	focus-list.hpp
 	mute-checkbox.hpp
 	volume-control.hpp
 	adv-audio-control.hpp

+ 10 - 0
obs/focus-list.cpp

@@ -0,0 +1,10 @@
+#include "focus-list.hpp"
+
+FocusList::FocusList(QWidget *parent) : QListWidget(parent) {}
+
+void FocusList::focusInEvent(QFocusEvent *event)
+{
+	QListWidget::focusInEvent(event);
+
+	emit GotFocus();
+}

+ 17 - 0
obs/focus-list.hpp

@@ -0,0 +1,17 @@
+#pragma once
+
+#include <QListWidget>
+
+class FocusList : public QListWidget
+{
+	Q_OBJECT
+
+public:
+	FocusList(QWidget *parent);
+
+protected:
+	void focusInEvent(QFocusEvent *event) override;
+
+signals:
+	void GotFocus();
+};