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();
|
||||
}
|
||||
|
||||
void Canvas::clear_status()
|
||||
{
|
||||
status = "";
|
||||
update();
|
||||
}
|
||||
|
||||
void Canvas::initializeGL()
|
||||
{
|
||||
mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert");
|
||||
|
|
|
@ -23,6 +23,7 @@ public:
|
|||
|
||||
public slots:
|
||||
void set_status(const QString& s);
|
||||
void clear_status();
|
||||
void load_mesh(Mesh* m);
|
||||
|
||||
|
||||
|
|
|
@ -69,6 +69,16 @@ void Window::on_about()
|
|||
" 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)
|
||||
{
|
||||
if (!open_action->isEnabled()) return false;
|
||||
|
@ -77,7 +87,7 @@ bool Window::load_stl(const QString& filename)
|
|||
|
||||
Loader* loader = new Loader(this, filename);
|
||||
connect(loader, &Loader::started,
|
||||
[=](){ open_action->setEnabled(false); });
|
||||
this, &Window::disable_open);
|
||||
|
||||
connect(loader, &Loader::got_mesh,
|
||||
canvas, &Canvas::load_mesh);
|
||||
|
@ -85,14 +95,14 @@ bool Window::load_stl(const QString& filename)
|
|||
connect(loader, &Loader::finished,
|
||||
loader, &Loader::deleteLater);
|
||||
connect(loader, &Loader::finished,
|
||||
[=](){ open_action->setEnabled(true); });
|
||||
this, &Window::enable_open);
|
||||
connect(loader, &Loader::finished,
|
||||
[=](){ canvas->set_status(""); });
|
||||
canvas, &Canvas::clear_status);
|
||||
|
||||
if (filename[0] != ':')
|
||||
{
|
||||
connect(loader, &Loader::loaded_file,
|
||||
this, &Window::setWindowTitle);
|
||||
this, &Window::setWindowTitle);
|
||||
}
|
||||
|
||||
loader->start();
|
||||
|
|
|
@ -16,6 +16,9 @@ public slots:
|
|||
void on_open();
|
||||
void on_about();
|
||||
|
||||
void enable_open();
|
||||
void disable_open();
|
||||
|
||||
private:
|
||||
QAction* const open_action;
|
||||
QAction* const about_action;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue