Incendie
fwelcome.h
1 #ifndef FWELCOME_H
2 #define FWELCOME_H
3 
4 #include <QtGui/QImage>
5 #include <QtWidgets/QDialog>
6 #include <QtWidgets/QLabel>
7 #include <QtWidgets/QPushButton>
8 #include <QtWidgets/QSpinBox>
9 #include <QtWidgets/QSlider>
10 #include <QtWidgets/QProgressBar>
11 #include <QtWidgets/QGridLayout>
12 #include <QtWidgets/QFileDialog>
13 // Pour les valeurs max des SpinBox
14 #include <QtWidgets/QDesktopWidget>
15 #include <QtWidgets/QApplication>
16 
17 #include <iostream>
18 #include <fstream>
19 #include <ctime>
20 
21 #include "../debug.h"
22 
23 #define COEF_TAILLE_MAX_FORET 1.9
24 #define LargeurMaximaleMenusDroite 300
25 #define HauteurMaximaleBarresFenetre 45
26 
27 enum DialogCode{Rejected, Accepted, Load, Restore, RestoreSeed};
28 
34 class Fwelcome : public QDialog
35 {
36 Q_OBJECT
37 private:
38  int Max_larg = (QApplication::desktop()->screenGeometry().width()
39  -LargeurMaximaleMenusDroite -20)*COEF_TAILLE_MAX_FORET;
40  // 45 pixel à cause des marges et menu (observé 43)
41  int Max_haut = (QApplication::desktop()->screenGeometry().height()
42  -HauteurMaximaleBarresFenetre -25)*COEF_TAILLE_MAX_FORET;
43 
44  QGridLayout* gridLayButtons;
45 
46  QSpinBox* haut_spin;
47  QSpinBox* larg_spin;
48  QPushButton* max_width_btn ;
49  QPushButton* min_width_btn ;
50  QPushButton* max_height_btn ;
51  QPushButton* min_height_btn ;
52 
53  QLabel* p_value;
54  QLabel* c_value;
55 
56  QPushButton* valid_btn;
57  QPushButton* cancel_btn;
58  QPushButton* loadFromImgBtn;
59  QPushButton* restoreBtn;
60  QPushButton* seedBtn;
61 
62  QImage* pictureForest;
63 
64  QFileDialog* fileDialog;
65  QDir picturesBrowserLocation;
66 
67  float proba;
68  float burningCoef;
69  std::time_t seed;
70 
71  std::ifstream* file;
72 
73 public:
74 /* Constructeur et destructeur */
76  Fwelcome(QWidget* parent);
78  Fwelcome(QWidget* parent, int _largeur, int _hauteur);
79  virtual ~Fwelcome();
80 
81 /* Gestion graphique */
86  void createComponents();
91  void initComponents();
95  void initEvents();
100  void addCancel() const;
101 
106  virtual void closeEvent(QCloseEvent * e);
107 
108  /* Setters */
109 public slots:
116  void setProba(int x);
123  void setCoef(int x);
124 
125 public:
126 /* Getters */
127  int getHaut() const { return haut_spin->value(); }
128  int getLarg() const { return larg_spin->value(); }
129  float getProba() const { return proba; }
130  float getCoef() const { return burningCoef; }
131  float getSeed() const { return seed; }
132 
133  std::ifstream* getFile() { return file; }
134  QImage* getImage() { return pictureForest; }
135 
136 public:
137 /* Chargements */
143  void openFile(QString filename);
148  void loadSizes();
149 
154  void checkInitFileDialog(QString windows_name);
155 
161  void restore(QString filename);
167  void loadFromImg(QString filename);
173  void loadSeed(QString filename);
174 
175 
176 private slots:
177  /*** Fonctions pour donner les tailles min et max de la forêt ***/
178  void giveMinWidth() {larg_spin->setValue(100);}
179  void giveMaxWidth() {larg_spin->setValue(Max_larg);}
180  void giveMinHeight() {haut_spin->setValue(100);}
181  void giveMaxHeight() {haut_spin->setValue(Max_haut);}
182 
183 public slots:
184  // Slots d'ouverture FileDialog pour chargement
185 
192  void popImageDIalog();
198  void popSaveDialog();
204  void popSeedDialog();
205 };
206 
207 #endif // FWELCOME_H
void initEvents()
Definition: fwelcome.cpp:206
void loadSizes()
Definition: fwelcome.cpp:261
void addCancel() const
Definition: fwelcome.cpp:220
void checkInitFileDialog(QString windows_name)
Definition: fwelcome.cpp:279
void restore(QString filename)
Definition: fwelcome.cpp:287
Fwelcome(QWidget *parent)
Definition: fwelcome.cpp:18
void popSeedDialog()
Definition: fwelcome.cpp:374
virtual void closeEvent(QCloseEvent *e)
Definition: fwelcome.cpp:228
void setCoef(int x)
Definition: fwelcome.cpp:245
void setProba(int x)
Definition: fwelcome.cpp:239
void popImageDIalog()
Definition: fwelcome.cpp:343
void popSaveDialog()
Definition: fwelcome.cpp:360
Definition: fwelcome.h:34
void openFile(QString filename)
Definition: fwelcome.cpp:255
void loadFromImg(QString filename)
Definition: fwelcome.cpp:301
void createComponents()
Definition: fwelcome.cpp:66
void loadSeed(QString filename)
Definition: fwelcome.cpp:326
void initComponents()
Definition: fwelcome.cpp:95