input.hpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 "input_physics.hpp"
  12. #include "input_time.hpp"
  13. #include "input_geometry.hpp"
  14. #include "input_initial_state.hpp"
  15. #include "input_pump_tab.hpp"
  16. #include "input_clouds_tab.hpp"
  17. #include "input_view.hpp"
  18. #include "geometry.hpp"
  19. using namespace std;
  20. class QtInput:public QWidget{
  21. Q_OBJECT
  22. private:
  23. int previous_index;
  24. Geometry* geometry;
  25. InitialState* initial_state;
  26. Source* source;
  27. QVBoxLayout* main_layout;
  28. QHBoxLayout* button_layout;
  29. QTabWidget* tab_widget;
  30. QWidget* button_widget;
  31. QPushButton* button_save;
  32. QPushButton* button_run;
  33. QPushButton* button_cancel;
  34. QtInputPhysics* input_physics;
  35. QtInputTime* input_time;
  36. QtInputGeometry* input_geometry;
  37. QtInputInitialState* input_initial_state;
  38. QtInputPumpTab* input_pump_tab;
  39. QtInputCloudsTab* input_clouds_tab;
  40. QtInputView* input_view;
  41. QScrollBar* time_bar;
  42. bool validate();
  43. void load(string filename);
  44. public:
  45. QtInput();
  46. QtInput(QString filename);
  47. ~QtInput();
  48. void save_input(string filename);
  49. signals:
  50. void run_signal();
  51. void exit_signal();
  52. private slots:
  53. void run();
  54. void save();
  55. void cancel();
  56. void changeTabIndex(int index);
  57. void updateGeometry();
  58. void updateInitialState();
  59. void updateSource();
  60. };
  61. inline QtInput::~QtInput(){
  62. delete geometry;
  63. delete initial_state;
  64. delete source;
  65. }
  66. #endif