X-Git-Url: https://git.sur5r.net/?p=fstl;a=blobdiff_plain;f=src%2Fwindow.h;fp=src%2Fwindow.h;h=fd0a77001e4eac827951c8fa9344c6c268d2a10e;hp=cb92ebb4708d2d68c52b3a1af82915c2b31c3940;hb=ff02a2cf9b32c9cbe26785150d32ccb251149cf4;hpb=0ff67c7a2411f6ebd661f293305d6401d07ec0b5 diff --git a/src/window.h b/src/window.h index cb92ebb..fd0a770 100644 --- a/src/window.h +++ b/src/window.h @@ -2,6 +2,8 @@ #define WINDOW_H #include +#include +#include class Canvas; @@ -10,7 +12,7 @@ class Window : public QMainWindow Q_OBJECT public: explicit Window(QWidget* parent=0); - bool load_stl(const QString& filename); + bool load_stl(const QString& filename, bool is_reload=false); protected: void dragEnterEvent(QDragEnterEvent* event); @@ -19,16 +21,42 @@ protected: public slots: void on_open(); void on_about(); - void on_ascii_stl(); void on_bad_stl(); + void on_empty_mesh(); + void on_missing_file(); + void on_confusing_stl(); void enable_open(); void disable_open(); + void set_watched(const QString& filename); + +private slots: + void on_projection(QAction* proj); + void on_watched_change(const QString& filename); + void on_reload(); + void on_autoreload_triggered(bool r); + void on_clear_recent(); + void on_load_recent(QAction* a); + private: + void rebuild_recent_files(); + QAction* const open_action; QAction* const about_action; QAction* const quit_action; + QAction* const perspective_action; + QAction* const orthogonal_action; + QAction* const reload_action; + QAction* const autoreload_action; + + QMenu* const recent_files; + QActionGroup* const recent_files_group; + QAction* const recent_files_clear_action; + const static int MAX_RECENT_FILES=8; + const static QString RECENT_FILE_KEY; + + QFileSystemWatcher* watcher; Canvas* canvas; };