#include "loader.h"
Window::Window(QWidget *parent) :
- QMainWindow(parent)
+ QMainWindow(parent),
+ open_action(new QAction("Open", this)),
+ about_action(new QAction("About", this)),
+ quit_action(new QAction("Quit", this))
+
{
setWindowTitle("fstl");
- QFile styleFile( ":/qt/style.qss" );
+ QFile styleFile(":/qt/style.qss");
styleFile.open( QFile::ReadOnly );
setStyleSheet(styleFile.readAll());
canvas = new Canvas(format, this);
setCentralWidget(canvas);
- open_action = new QAction("Open", this);
open_action->setShortcut(QKeySequence::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, &QAction::triggered,
this, &Window::close);
- about_action = new QAction("About", this);
QObject::connect(about_action, &QAction::triggered,
this, &Window::on_about);
" style=\"color: #93a1a1;\">matt.j.keeter@gmail.com</a></p>");
}
-void Window::load_stl(const QString &filename)
+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;
+
canvas->set_status("Loading " + 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);
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);
- connect(loader, &Loader::loaded_file,
- this, &Window::setWindowTitle);
+ if (filename[0] != ':')
+ {
+ connect(loader, &Loader::loaded_file,
+ this, &Window::setWindowTitle);
+ }
loader->start();
+ return true;
}