Cross-thread lambda functions fail on win32
This commit is contained in:
parent
e67c043555
commit
41d81ccd8f
4 changed files with 24 additions and 4 deletions
|
@ -41,6 +41,12 @@ void Canvas::set_status(const QString &s)
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Canvas::clear_status()
|
||||||
|
{
|
||||||
|
status = "";
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
void Canvas::initializeGL()
|
void Canvas::initializeGL()
|
||||||
{
|
{
|
||||||
mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert");
|
mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert");
|
||||||
|
|
|
@ -23,6 +23,7 @@ public:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void set_status(const QString& s);
|
void set_status(const QString& s);
|
||||||
|
void clear_status();
|
||||||
void load_mesh(Mesh* m);
|
void load_mesh(Mesh* m);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,16 @@ void Window::on_about()
|
||||||
" style=\"color: #93a1a1;\">matt.j.keeter@gmail.com</a></p>");
|
" style=\"color: #93a1a1;\">matt.j.keeter@gmail.com</a></p>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::enable_open()
|
||||||
|
{
|
||||||
|
open_action->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Window::disable_open()
|
||||||
|
{
|
||||||
|
open_action->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
bool Window::load_stl(const QString& filename)
|
bool Window::load_stl(const QString& filename)
|
||||||
{
|
{
|
||||||
if (!open_action->isEnabled()) return false;
|
if (!open_action->isEnabled()) return false;
|
||||||
|
@ -77,7 +87,7 @@ bool Window::load_stl(const QString& filename)
|
||||||
|
|
||||||
Loader* loader = new Loader(this, filename);
|
Loader* loader = new Loader(this, filename);
|
||||||
connect(loader, &Loader::started,
|
connect(loader, &Loader::started,
|
||||||
[=](){ open_action->setEnabled(false); });
|
this, &Window::disable_open);
|
||||||
|
|
||||||
connect(loader, &Loader::got_mesh,
|
connect(loader, &Loader::got_mesh,
|
||||||
canvas, &Canvas::load_mesh);
|
canvas, &Canvas::load_mesh);
|
||||||
|
@ -85,9 +95,9 @@ bool Window::load_stl(const QString& filename)
|
||||||
connect(loader, &Loader::finished,
|
connect(loader, &Loader::finished,
|
||||||
loader, &Loader::deleteLater);
|
loader, &Loader::deleteLater);
|
||||||
connect(loader, &Loader::finished,
|
connect(loader, &Loader::finished,
|
||||||
[=](){ open_action->setEnabled(true); });
|
this, &Window::enable_open);
|
||||||
connect(loader, &Loader::finished,
|
connect(loader, &Loader::finished,
|
||||||
[=](){ canvas->set_status(""); });
|
canvas, &Canvas::clear_status);
|
||||||
|
|
||||||
if (filename[0] != ':')
|
if (filename[0] != ':')
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,6 +16,9 @@ public slots:
|
||||||
void on_open();
|
void on_open();
|
||||||
void on_about();
|
void on_about();
|
||||||
|
|
||||||
|
void enable_open();
|
||||||
|
void disable_open();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QAction* const open_action;
|
QAction* const open_action;
|
||||||
QAction* const about_action;
|
QAction* const about_action;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue