MainWindow.hpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #pragma once
  2. // Include modules
  3. #include "OSGWidget.hpp"
  4. #include "NoMeshWidget.hpp"
  5. #include "EditWidget.hpp"
  6. #include "ProjectStore.hpp"
  7. #include "enums.hpp"
  8. // Include dependencies
  9. #include <QMainWindow>
  10. #include <QCloseEvent>
  11. QT_BEGIN_NAMESPACE
  12. namespace Ui { class MainWindow; }
  13. QT_END_NAMESPACE
  14. class MainWindow: public QMainWindow {
  15. Q_OBJECT
  16. public:
  17. static MainWindow* getInstance();
  18. MainWindow(QWidget* parent = nullptr);
  19. ~MainWindow();
  20. void renderView(GuiView view);
  21. OSGWidget* getOsgWidget();
  22. ProjectStore* getStore();
  23. EditWidget* getEditWiget();
  24. void showErrorMessage(std::string message, std::string title = "Error");
  25. void showOptiTrackSanityLineError();
  26. void showOptiTrackSanityPlaneError();
  27. void showOptiTrackSanitySuccess();
  28. protected:
  29. virtual void closeEvent(QCloseEvent *event);
  30. private:
  31. void newFile();
  32. void load();
  33. bool save();
  34. bool saveAs();
  35. void close();
  36. void cleanup();
  37. bool saveChangesPopup();
  38. bool isRenderingPopup();
  39. Ui::MainWindow* ui;
  40. OSGWidget* osgWidget;
  41. NoMeshWidget* noMeshWidget;
  42. EditWidget* editWidget;
  43. ProjectStore* projectStore;
  44. QMenu* fileMenu;
  45. QAction* newAct;
  46. QAction* loadAct;
  47. QAction* saveAct;
  48. QAction* saveAsAct;
  49. QAction* closeAct;
  50. };