open_action = new QAction("Open", this);
open_action->setShortcut(QKeySequence::Open);
- QObject::connect(open_action, SIGNAL(triggered()),
- this, SLOT(on_open()));
+ QObject::connect(open_action, &QAction::triggered,
+ this, &Window::on_open);
quit_action = new QAction("Quit", this);
quit_action->setShortcut(QKeySequence::Quit);
- QObject::connect(quit_action, SIGNAL(triggered()),
- this, SLOT(close()));
+ QObject::connect(quit_action, &QAction::triggered,
+ this, &Window::close);
about_action = new QAction("About", this);
- QObject::connect(about_action, SIGNAL(triggered()),
- this, SLOT(on_about()));
+ QObject::connect(about_action, &QAction::triggered,
+ this, &Window::on_about);
auto file_menu = menuBar()->addMenu("File");
file_menu->addAction(open_action);
void Window::on_about()
{
QMessageBox::about(this, "",
- "<p align=\"center\"><b>fstl</b></p>"
- "<p>A fast viewer for <code>.stl</code> files.<br>"
- "<a href=\"https://github.com/mkeeter/fstl\""
- " style=\"color: #93a1a1;\">https://github.com/mkeeter/fstl</a></p>"
- "<p>© 2014 Matthew Keeter<br>"
- "<a href=\"mailto:matt.j.keeter@gmail.com\""
- " style=\"color: #93a1a1;\">matt.j.keeter@gmail.com</a></p>");
+ "<p align=\"center\"><b>fstl</b></p>"
+ "<p>A fast viewer for <code>.stl</code> files.<br>"
+ "<a href=\"https://github.com/mkeeter/fstl\""
+ " style=\"color: #93a1a1;\">https://github.com/mkeeter/fstl</a></p>"
+ "<p>© 2014 Matthew Keeter<br>"
+ "<a href=\"mailto:matt.j.keeter@gmail.com\""
+ " style=\"color: #93a1a1;\">matt.j.keeter@gmail.com</a></p>");
}
-
-void Window::enable_open_action()
+void Window::load_stl(const QString &filename)
{
- open_action->setEnabled(true);
-}
+ canvas->set_status("Loading " + filename);
+ Loader* loader = new Loader(this, filename);
+ connect(loader, &Loader::started,
+ [=](){ open_action->setEnabled(false); });
-void Window::disable_open_action()
-{
- open_action->setEnabled(false);
-}
+ connect(loader, &Loader::got_mesh,
+ canvas, &Canvas::load_mesh);
+ connect(loader, &Loader::finished,
+ loader, &Loader::deleteLater);
+ connect(loader, &Loader::finished,
+ [=](){ open_action->setEnabled(true); });
+ connect(loader, &Loader::finished,
+ [=](){ canvas->set_status(""); });
+
+ connect(loader, &Loader::loaded_file,
+ this, &Window::setWindowTitle);
-void Window::load_stl(const QString &filename)
-{
- Loader* loader = new Loader(this, filename);
- connect(loader, SIGNAL(started()),
- this, SLOT(disable_open_action()));
- connect(loader, SIGNAL(got_mesh(Mesh*)),
- canvas, SLOT(load_mesh(Mesh*)));
- connect(loader, SIGNAL(finished()),
- loader, SLOT(deleteLater()));
- connect(loader, SIGNAL(finished()),
- this, SLOT(enable_open_action()));
- connect(loader, SIGNAL(loaded_file(QString)),
- this, SLOT(setWindowTitle(QString)));
loader->start();
}