From: Matt Keeter Date: Fri, 7 Mar 2014 17:30:18 +0000 (-0600) Subject: Disable open when load is in progress X-Git-Tag: v0.9.0~36 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4ec6bf9f9593320d20d9f2977426e1c6f0b192b0;p=fstl Disable open when load is in progress --- diff --git a/src/window.cpp b/src/window.cpp index 9d06449..5c5e1c3 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -17,12 +17,12 @@ Window::Window(QWidget *parent) : canvas = new Canvas(format, this); setCentralWidget(canvas); - QAction* open_action = new QAction("Open", this); + open_action = new QAction("Open", this); open_action->setShortcut(QKeySequence::Open); QObject::connect(open_action, SIGNAL(triggered()), this, SLOT(on_open())); - QAction* quit_action = new QAction("Quit", this); + quit_action = new QAction("Quit", this); quit_action->setShortcut(QKeySequence::Quit); QObject::connect(quit_action, SIGNAL(triggered()), this, SLOT(close())); @@ -44,12 +44,29 @@ void Window::on_open() } } + +void Window::enable_open_action() +{ + open_action->setEnabled(true); +} + + +void Window::disable_open_action() +{ + + open_action->setEnabled(false); +} + + void Window::load_stl(const QString &filename) { + disable_open_action(); Loader* loader = new Loader(this, filename); 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())); loader->start(); } diff --git a/src/window.h b/src/window.h index be43084..eefaece 100644 --- a/src/window.h +++ b/src/window.h @@ -14,8 +14,13 @@ public: public slots: void on_open(); + void disable_open_action(); + void enable_open_action(); private: + QAction* open_action; + QAction* quit_action; + Canvas* canvas; };