UI: Add CreateQThread helper function

Allows creating a QThread via an std::function.  A backward-compatible
alternative to QThread::create for Qt versions older than 5.10 (when it
became available in Qt).
This commit is contained in:
jp9000 committed 2019-02-07 14:47:01 -08:00
1 parent 58f4a6390f
commit 74cda9a2cc
2 files changed
+23

No files matched your search

+20
View File
@@ -203,3 +203,23 @@ void DeleteLayout(QLayout *layout)
delete layout;
}
class QuickThread : public QThread {
public:
explicit inline QuickThread(std::function<void()> func_)
: func(func_)
{}
private:
virtual void run() override
{
func();
}
std::function<void()> func;
};
QThread *CreateQThread(std::function<void()> func)
{
return new QuickThread(func);
}
+3
View File
@@ -23,6 +23,7 @@
#include <QThread>
#include <obs.hpp>
#include <functional>
#include <memory>
#include <vector>
@@ -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<void()> func);
class SignalBlocker {
QWidget *widget;
bool blocked;