浏览代码

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);
+	}
+};