99 lines
2.7 KiB
C
99 lines
2.7 KiB
C
|
#ifndef GTL_GUI_SPEC_CHART_H
|
||
|
#define GTL_GUI_SPEC_CHART_H
|
||
|
|
||
|
#include "gtl_gui_chart.h"
|
||
|
#include "spec/gtl_gui_spec_band_markers.h"
|
||
|
#include "spec/gtl_gui_spec_harm_markers.h"
|
||
|
#include "gui/gtl_gui_spec_series.h"
|
||
|
#include "gui/gtl_gui_spec_meas_model.h"
|
||
|
#include "gui_global.h"
|
||
|
|
||
|
namespace gtl
|
||
|
{
|
||
|
namespace gui
|
||
|
{
|
||
|
class GTL_GUI_EXPORT spec_chart : public gtl::gui::chart
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
spec_chart(gtl::math::spec::types type, QWidget* parent = NULL);
|
||
|
~spec_chart();
|
||
|
|
||
|
qreal frequency();
|
||
|
qreal resolution();
|
||
|
int window();
|
||
|
int lines();
|
||
|
int average();
|
||
|
qreal overlap();
|
||
|
int unit();
|
||
|
|
||
|
virtual void save(QDomElement& root_element);
|
||
|
virtual void load(const QDomElement& root_element);
|
||
|
|
||
|
spec::band_markers* band_markers() const;
|
||
|
spec::harm_markers* harm_markers() const;
|
||
|
|
||
|
gtl::math::spec::types type() const;
|
||
|
|
||
|
protected:
|
||
|
virtual void add_instrument(const QPointF &pos) override;
|
||
|
virtual void draw_instrument(const QPointF &pos) override;
|
||
|
|
||
|
private:
|
||
|
gtl::math::spec::types _type;
|
||
|
qreal _frequency;
|
||
|
qreal _resolution;
|
||
|
int _window;
|
||
|
int _lines;
|
||
|
int _average;
|
||
|
qreal _overlap;
|
||
|
int _unit;
|
||
|
|
||
|
spec_meas_model* _meas_model;
|
||
|
int _meas_cnt;
|
||
|
|
||
|
QAction* _band_marker_action_add;
|
||
|
QAction* _harm_marker_action_add;
|
||
|
|
||
|
spec::band_markers* _band_markers;
|
||
|
spec::harm_markers* _harm_markers;
|
||
|
|
||
|
signals:
|
||
|
void frequency_changed();
|
||
|
void resolution_changed();
|
||
|
void window_changed();
|
||
|
void lines_changed();
|
||
|
void average_changed();
|
||
|
void overlap_changed();
|
||
|
void unit_changed();
|
||
|
|
||
|
public slots:
|
||
|
void set_type(int value);
|
||
|
|
||
|
void set_frequency(qreal value);
|
||
|
void set_resolution(qreal value);
|
||
|
void set_window(int value);
|
||
|
void set_lines(int value);
|
||
|
void set_average(int value);
|
||
|
void set_overlap(qreal value);
|
||
|
void set_unit(int value);
|
||
|
|
||
|
void set_x_log(bool value);
|
||
|
void set_measures(spec_meas_model* m);
|
||
|
void handle_measures(SpecMeasParamsListPtr meas);
|
||
|
|
||
|
gtl::gui::spgr::widget* create_spgr(QWidget *parent, gtl::data_model_node* node);
|
||
|
|
||
|
private slots:
|
||
|
void add_band_marker();
|
||
|
void add_harm_marker();
|
||
|
|
||
|
protected:
|
||
|
virtual chart_series* create_series(gtl::analog_data* ai);
|
||
|
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif // GTL_GUI_SPEC_CHART_H
|