#pragma once #include #include #include #include #include class cIniFile; typedef std::shared_ptr cIniFilePtr; class GeneratorSetup : public QWidget { typedef QWidget super; Q_OBJECT public: /** Creates the widget and loads the contents of the INI file, if not empty. */ explicit GeneratorSetup(const std::string & a_IniFileName, QWidget * parent = nullptr); /** Returns the cIniFile instance that is being edited by this widget. */ cIniFilePtr getIniFile() { return m_IniFile; } signals: public slots: /** Called when the user selects a different generator from the top combobox. Re-creates m_IniFile and updates the form layout. */ void generatorChanged(const QString & a_NewName); protected: QComboBox * m_cbGenerator; QVBoxLayout * m_MainLayout; QFormLayout * m_FormLayout; cIniFilePtr m_IniFile; int m_Seed; /** Updates the form layout with the values from m_IniFile. */ void updateFromIni(); };