Browse Source

UI: Add signal blocker helper class

jp9000 10 năm trước cách đây
mục cha
commit
c1b9901b6a
1 tập tin đã thay đổi với 16 bổ sung0 xóa
  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);
+	}
+};