choosegenerators.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef CHOOSEGENERATORS_H
  2. #define CHOOSEGENERATORS_H
  3. #include "ui_choosegenerators.h"
  4. #include "Mandel.h"
  5. #include <QDialog>
  6. #include <QValidator>
  7. #include <QLineEdit>
  8. #include <QComboBox>
  9. #include <memory>
  10. #include <map>
  11. namespace Ui
  12. {
  13. class ChooseGenerators;
  14. }
  15. class ChooseGenerators : public QDialog
  16. {
  17. Q_OBJECT
  18. private:
  19. std::unique_ptr<Ui::ChooseGenerators> ui;
  20. mnd::MandelContext& mndCtxt;
  21. std::map<QString, mnd::Generator*> generators;
  22. std::vector<std::pair<QLineEdit*, QComboBox*>> tableContent;
  23. std::unique_ptr<QValidator> floatValidator;
  24. std::unique_ptr<mnd::AdaptiveGenerator> createdGenerator;
  25. public:
  26. ChooseGenerators(mnd::MandelContext& mndCtxt, QWidget* parent = nullptr);
  27. ~ChooseGenerators();
  28. inline mnd::AdaptiveGenerator* getChosenGenerator(void) { return createdGenerator.get(); }
  29. private:
  30. QComboBox* createComboBox(void);
  31. QLineEdit* createFloatText(void);
  32. public slots:
  33. private slots:
  34. void on_buttonBox_accepted();
  35. };
  36. #endif // CHOOSEGENERATORS_H