input.hpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef QT_INPUT_HPP
  2. #define QT_INPUT_HPP
  3. #include <QTabWidget>
  4. #include <QHBoxLayout>
  5. #include <QVBoxLayout>
  6. #include <QPushButton>
  7. #include <QMessageBox>
  8. #include <QFileDialog>
  9. #include <QScrollBar>
  10. #include <fstream>
  11. #include "qt/input/physics.hpp"
  12. #include "qt/input/time.hpp"
  13. #include "qt/input/geometry.hpp"
  14. #include "qt/input/initial_state.hpp"
  15. #include "qt/input/pump_tab.hpp"
  16. #include "qt/input/clouds_tab.hpp"
  17. #include "qt/input/view.hpp"
  18. #include "qt/input/data.hpp"
  19. using namespace std;
  20. class QtInput:public QWidget{
  21. Q_OBJECT
  22. private:
  23. int previous_index;
  24. QtInputData* data;
  25. QVBoxLayout* main_layout;
  26. QHBoxLayout* button_layout;
  27. QTabWidget* tab_widget;
  28. QWidget* button_widget;
  29. QPushButton* button_save;
  30. QPushButton* button_cancel;
  31. QScrollBar* time_bar;
  32. QtInputPhysics* input_physics;
  33. QtInputTime* input_time;
  34. QtInputGeometry* input_geometry;
  35. QtInputInitialState* input_initial_state;
  36. QtInputPumpTab* input_pump_tab;
  37. QtInputCloudsTab* input_clouds_tab;
  38. QtInputView* input_view;
  39. void initDefaultGeometry();
  40. bool validate();
  41. void load(string filename);
  42. public:
  43. QtInput();
  44. QtInput(QString filename);
  45. ~QtInput();
  46. void save_input(string filename);
  47. const QtInputData* getData() const;
  48. signals:
  49. void run_signal();
  50. void exit_signal();
  51. private slots:
  52. void save();
  53. void cancel();
  54. void changeTabIndex(int index);
  55. void updateGeometry();
  56. void updateInitialState();
  57. void updateSource();
  58. };
  59. inline const QtInputData*
  60. QtInput::getData() const{
  61. return data;
  62. }
  63. #endif