86 lines
2.3 KiB
C++
86 lines
2.3 KiB
C++
#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 ¤t, const QModelIndex &prev);
|
|
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif // CONFIG_WIDGET_H
|