#ifndef CONFIG_WIDGET_H #define CONFIG_WIDGET_H #include #include #include #include #include #include "core/gtl_data_model.h" #include "hw/gtl_hw_device.h" #include "gui/config/gtl_gui_config_hardware_dialog.h" #include "gui/ui_gtl_gui_config_widget.h" #include "gui/gui_global.h" namespace gtl { namespace gui { namespace config { class GTL_GUI_EXPORT widget : public QWidget { Q_OBJECT public: explicit widget(gtl::data_model* model, QString hwplugings_path, QWidget *parent = nullptr); virtual void save(QDomElement& root_element); virtual void load(const QDomElement& root_element); void clear(); private: Ui::config_widget _ui; gtl::data_model* _model; QAction* _add_hardware_action; QAction* _add_generator_action; QAction* _add_player_action; QAction* _add_audio_action; QAction* _add_iir_filter_action; QAction* _add_integrator_action; QAction* _add_differentioator_action; QAction* _remove_action; QAction* _set_config_action; QAction* _get_config_action; QList _devices; gtl::gui::config::hardware_dialog _hw_dialog; gtl::data_model_node* _popup_node; private: hw::device* add(gtl::hw::device* device); signals: private slots: void menu_reques(const QPoint &pos); void add_hardware(); void add_generator(); void add_audio(); void add_iir_filter(); void add_integrator(); void add_differentiator(); void add_player(); void remove(); void set_config(); void get_config(); gtl::data_model_node* create_node(gtl::data_model_node* parent, QDomElement& device_element); void selection_changed(const QModelIndex ¤t, const QModelIndex &prev); }; } } } #endif // CONFIG_WIDGET_H