qavrg 0.0.28
qavrgwindow.h
Go to the documentation of this file.
00001 #ifndef QAVRGWINDOW_H
00002 #define QAVRGWINDOW_H
00003 
00004 #include <QMainWindow>
00005 #include <QPushButton>
00006 #include <QVector>
00007 #include <QTimer>
00008 #include "ui_qavrgwindow.h"
00009 #include "qcepproperty.h"
00010 #include <QScriptValue>
00011 
00012 #include "qavrgacquiredialog.h"
00013 #include "qavrginputsdialog.h"
00014 #include "qavrgoutputdialog.h"
00015 #include "qavrgtimingdialog.h"
00016 #include "qavrgviewdialog.h"
00017 
00018 class QCheckBox;
00019 class QavrgApplication;
00020 class QavrgAcquisition;
00021 class QavrgScriptingEngine;
00022 class QwtPlotZoomer;
00023 class QwtPlotMagnifier;
00024 class QwtPlotPanner;
00025 class QavrgMeasurer;
00026 class QwtLegend;
00027 class QavrgHighlighter;
00028 class QProgressBar;
00029 class QavrgSettings;
00030 
00031 class QavrgWindow : public QMainWindow, public Ui::QavrgWindow
00032 {
00033   Q_OBJECT
00034 
00035   Q_PROPERTY( int displayXUnits READ get_DisplayXUnits WRITE set_DisplayXUnits)
00036   QCEP_INTEGER_PROPERTY(DisplayXUnits)
00037 
00038   Q_PROPERTY( int displayXRange READ get_DisplayXRange WRITE set_DisplayXRange)
00039   QCEP_INTEGER_PROPERTY(DisplayXRange)
00040 
00041   Q_PROPERTY( int displayOrbit READ get_DisplayOrbit WRITE set_DisplayOrbit)
00042   QCEP_INTEGER_PROPERTY(DisplayOrbit)
00043 
00044   Q_PROPERTY( int displayBunch READ get_DisplayBunch WRITE set_DisplayBunch)
00045   QCEP_INTEGER_PROPERTY(DisplayBunch)
00046 
00047 public:
00048   QavrgWindow(QavrgApplication *app, QWidget *parent=0);
00049 
00050 public slots:
00051   void new_RawData();
00052   void new_ReferenceData();
00053   void new_DarkData();
00054   void new_FitData();
00055   void viewScalingChanged();
00056   void viewParametersChanged();
00057   void autoScale();
00058   void chooserClicked(int n);
00059   void showDeviceError();
00060   void possiblyClose();
00061   void acquireCancel();
00062   void onAcquisitionStarted();
00063   void onAcquisitionCancelled();
00064   void onAcquisitionProgress(double pct);
00065   void onAcquisitionCompleted();
00066 
00067   void displayStatusMessage(QString msg, double time=5.0);
00068   void clearStatusMessage();
00069   void doScript();
00070   void cancelScript();
00071   void printMessage(QString msg);
00072   void warningMessage(QString msg);
00073 //  void loadData();
00074 //  void saveData();
00075 
00076   void setZoomingMode();
00077   void zoomOut();
00078   void zoomAll();
00079   void setMeasuringMode();
00080 
00081   void browseOutputDirectory();
00082 
00083   void specialSecretTest(int useProxy, int useTransaction);
00084 
00085   void saveData();
00086   void loadData();
00087 
00088 signals:
00089   void executeCommand(QString cmd);
00090 public slots:
00091   void finishedCommand(QScriptValue result);
00092 
00093 public:
00094   void setAcquisition(QavrgAcquisition *acq);
00095   void setScriptingEngine(QavrgScriptingEngine *engine);
00096 
00097   void updateGraph();
00098   QPen curvePen(int ch);
00099   void closeEvent (QCloseEvent * event);
00100   bool wantToClose();
00101   void readSettings(QavrgSettings *settings);
00102   void writeSettings(QavrgSettings *settings);
00103 
00104 private slots:
00105   void fillPatternModeChanged();
00106 
00107 private:
00108   enum Signal {
00109     DataSignal,
00110     RawSignal,
00111     DarkSignal,
00112     RefSignal,
00113     FitSignal
00114   };
00115 
00116   QString signalName(Signal sig);
00117 
00118 private:
00119   QavrgApplication     *m_Application;
00120   QavrgAcquisition     *m_Acquisition;
00121   QavrgScriptingEngine *m_ScriptingEngine;
00122   QProgressBar         *m_Progress;
00123   QLabel               *m_StatusMessage;
00124   QTimer                m_StatusTimer;
00125   QwtPlotZoomer        *m_Zoomer;
00126   QwtPlotMagnifier     *m_Magnifier;
00127   QwtPlotPanner        *m_Panner;
00128   QavrgMeasurer        *m_Measurer;
00129   QwtLegend            *m_Legend;
00130   int                   m_XUnits;
00131   double                m_XStep;
00132   QavrgHighlighter     *m_Highlighter;
00133   QVector< QCheckBox*>  m_CheckBoxes;
00134 
00135   QavrgAcquireDialog   *m_AcquireDockWidget;
00136   QavrgInputsDialog    *m_InputsDockWidget;
00137   QavrgOutputDialog    *m_OutputDockWidget;
00138   QavrgTimingDialog    *m_TimingDockWidget;
00139   QavrgViewDialog      *m_ViewDockWidget;
00140 
00141   enum ViewOption {
00142     ViewAllData,
00143     ViewThreeOrbits,
00144     ViewOneOrbit,
00145     ViewOneBunch
00146   };
00147 
00148   enum ViewUnits {
00149     NanosecondUnits,
00150     MicrosecondUnits,
00151     MillisecondUnits,
00152     OrbitUnits,
00153     FilledBunchUnits
00154   };
00155 };
00156 
00157 #endif