소스 검색

UI: Add signal blocker helper class

jp9000 10 년 전
부모
커밋
c1b9901b6a
1개의 변경된 파일16개의 추가작업 그리고 0개의 파일을 삭제
  1. 16 0
      obs/qt-wrappers.hpp

+ 16 - 0
obs/qt-wrappers.hpp

@@ -44,3 +44,19 @@ QDataStream &operator<<(QDataStream &out, const OBSScene &scene);
 QDataStream &operator>>(QDataStream &in, OBSScene &scene);
 QDataStream &operator<<(QDataStream &out, const OBSSceneItem &si);
 QDataStream &operator>>(QDataStream &in, OBSSceneItem &si);
+
+class SignalBlocker {
+	QWidget *widget;
+	bool blocked;
+
+public:
+	inline explicit SignalBlocker(QWidget *widget_) : widget(widget_)
+	{
+		blocked = widget->blockSignals(true);
+	}
+
+	inline ~SignalBlocker()
+	{
+		widget->blockSignals(blocked);
+	}
+};