11 #include <qwt_plot_curve.h>
12 #include <qwt_plot_zoomer.h>
13 #include <qwt_plot_panner.h>
14 #include <qwt_plot_renderer.h>
15 #include <qwt_picker_machine.h>
16 #include <qwt_legend.h>
17 #include <qwt_plot_grid.h>
28 #include <QPrintDialog>
29 #include <QMessageBox>
31 #include <QApplication>
42 m_MainControlPanel(m_MainWindow->mainControlPanel),
43 m_Plot(m_MainWindow->qwtPlot),
49 m_MCAControlPanel(NULL),
50 m_AmplifierControlPanel(NULL),
51 m_A2DConverterControlPanel(NULL),
52 m_PulseAnalyserControlPanel(NULL),
53 m_PowerSupplyControlPanel(NULL),
54 m_BM12ControlPanel(NULL),
57 m_Pens[0].setColor(Qt::black);
58 m_Pens[1].setColor(Qt::red);
59 m_Pens[2].setColor(Qt::green);
60 m_Pens[3].setColor(Qt::blue);
61 m_Pens[4].setColor(Qt::cyan);
62 m_Pens[5].setColor(Qt::magenta);
63 m_Pens[6].setColor(Qt::darkYellow);
64 m_Pens[7].setColor(Qt::darkRed);
65 m_Pens[8].setColor(Qt::darkGreen);
66 m_Pens[9].setColor(Qt::darkBlue);
67 m_Pens[10].setColor(Qt::darkCyan);
68 m_Pens[11].setColor(Qt::darkMagenta);
70 for (
int i = 0; i<
NPENS; i++) {
74 m_Plot->setCanvasBackground(QColor(255,255,250,255));
76 m_Zoomer =
new QwtPlotZoomer(QwtPlot::xBottom, QwtPlot::yLeft,
m_Plot->canvas());
77 m_Zoomer -> setStateMachine(
new QwtPickerDragRectMachine());
78 m_Zoomer -> setTrackerMode(QwtPicker::AlwaysOn);
79 m_Zoomer -> setRubberBand(QwtPicker::RectRubberBand);
82 m_Zoomer -> setMousePattern(QwtEventPattern::MouseSelect2,
83 Qt::LeftButton, Qt::ControlModifier | Qt::ShiftModifier);
84 m_Zoomer -> setMousePattern(QwtEventPattern::MouseSelect3,
85 Qt::LeftButton, Qt::ControlModifier);
88 m_Panner -> setMouseButton(Qt::MidButton);
92 m_Legend -> setFrameStyle(QFrame::Box|QFrame::Sunken);
93 m_Legend -> setDefaultItemMode(QwtLegendData::Checkable);
119 }
else if (arg ==
"-amp") {
121 }
else if (arg ==
"-adc") {
123 }
else if (arg ==
"-tca") {
125 }
else if (arg ==
"-hvps") {
127 }
else if (arg ==
"-bm12") {
187 if (
m_Zoomer -> zoomRectIndex() == 0) {
199 QPrinter printer(QPrinter::HighResolution);
201 printer.setCreator(
"qmca");
202 printer.setOrientation(QPrinter::Landscape);
204 QPrintDialog dialog(&printer);
207 QwtPlotRenderer filter;
214 QRect geo =
m_Plot -> geometry();
215 QPainter p(&printer);
218 filter.renderTo(
m_Plot, printer);
224 if (QMessageBox::question(NULL, tr(
"Really Quit?"),
225 tr(
"Do you really want to exit the application?"),
226 QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) {
247 m_Plot -> setAxisAutoScale(QwtPlot::xBottom);
248 m_Plot -> setAxisAutoScale(QwtPlot::yLeft);
332 QwtPlotCurve *pc1 =
new QwtPlotCurve(pc->title().text()+suffix);
333 QwtSeriesData<QPointF> *data = pc->data();
335 QVector<double> x(data->size()), y(data->size());
337 for (
int i=0; i<data->size(); i++) {
338 x[i] = data->sample(i).x();
339 y[i] = data->sample(i).y();
342 QPen pen = pc->pen();
348 pc1 -> setSamples(x,y);
void clear_curves(QList< QwtPlotCurve * > &crvs)
MCAController(MCAMainWindow *w, QObject *parent=0)
QList< QwtPlotCurve * > m_MCACurvesB
PulseAnalyserControlPanel * m_PulseAnalyserControlPanel
QList< QwtPlotCurve * > m_MCACurvesA
QList< QwtPlotCurve * > m_MCACurvesC
static QPen m_Pens[NPENS]
MCAControlPanel * m_MCAControlPanel
PowerSupplyControlPanel * m_PowerSupplyControlPanel
AmplifierControlPanel * m_AmplifierControlPanel
A2DConverterControlPanel * m_A2DConverterControlPanel
QList< QwtPlotCurve * > m_MCACurves
void append(EpicsAmplifier *amp)
BM12ControlPanel * m_BM12ControlPanel
void addArgument(QString arg)
QMCAControlPanel * m_MainControlPanel
void save_curves(QList< QwtPlotCurve * > &crvs, QString suffix, Qt::PenStyle style)
MCAMainWindow * m_MainWindow
void append(EpicsPulseAnalyser *conv)
void append(EpicsA2DConverter *conv)
void append(EpicsMCA *mca)