diff --git a/UI/qt-wrappers.cpp b/UI/qt-wrappers.cpp index eac5ea0f3db568f5ad5ae2c3b818e60fc1f9a526..b37d2b9a51ad18e4fae9781c8752dec06e17eb61 100644 --- a/UI/qt-wrappers.cpp +++ b/UI/qt-wrappers.cpp @@ -203,3 +203,23 @@ void DeleteLayout(QLayout *layout) delete layout; } + +class QuickThread : public QThread { +public: + explicit inline QuickThread(std::function func_) + : func(func_) + {} + +private: + virtual void run() override + { + func(); + } + + std::function func; +}; + +QThread *CreateQThread(std::function func) +{ + return new QuickThread(func); +} diff --git a/UI/qt-wrappers.hpp b/UI/qt-wrappers.hpp index 5273f9298aa0cfb97f55d82610d511e81b98fdf0..d56fa52aec8aa7364619b33ec8b7fda4e6ebf09a 100644 --- a/UI/qt-wrappers.hpp +++ b/UI/qt-wrappers.hpp @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -64,6 +65,8 @@ QDataStream &operator>>(QDataStream &in, OBSScene &scene); QDataStream &operator<<(QDataStream &out, const OBSSceneItem &si); QDataStream &operator>>(QDataStream &in, OBSSceneItem &si); +QThread *CreateQThread(std::function func); + class SignalBlocker { QWidget *widget; bool blocked;