test_sdk/gui/config/gtl_gui_config_widget.h

86 lines
2.3 KiB
C
Raw Normal View History

#ifndef CONFIG_WIDGET_H
#define CONFIG_WIDGET_H
#include <QWidget>
#include <QMenu>
#include <QDomElement>
#include <QItemSelectionModel>
#include <QMessageBox>
#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<gtl::hw::device*> _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 &current, const QModelIndex &prev);
};
}
}
}
#endif // CONFIG_WIDGET_H