QXRD  0.11.16
qxrdwindow.h
Go to the documentation of this file.
1 #ifndef QXRDWINDOW_H
2 #define QXRDWINDOW_H
3 
4 #include <QMainWindow>
5 #include <QProgressBar>
6 #include <QTimer>
7 #include <QPointer>
8 #include <QScriptValue>
9 
10 #include "ui_qxrdwindow.h"
11 
12 #include "qxrdmainwindow.h"
13 #include "qcepallocator.h"
14 #include "qxrdscriptengine.h"
15 #include "qxrdacquisitiondialog.h"
17 #include "qxrddisplaydialog.h"
18 #include "qxrdcenterfinderdialog.h"
19 #include "qxrdcorrectiondialog.h"
20 #include "qxrdintegratordialog.h"
21 #include "qxrdintegratorplot.h"
22 #include "qxrdcalibrantdialog.h"
24 #include "qxrdimagecalculator.h"
25 #include "qxrdfilebrowser.h"
26 #include "qxrdslicedialog.h"
27 #include "qxrdhistogramdialog.h"
28 #include "qxrdinfodialog.h"
29 #include "qxrdscriptdialog.h"
30 #include "qxrdimagedisplaywidget.h"
31 #include "qxrdhighlighter.h"
32 #include "qxrdmaskdialog.h"
34 
35 #include "qxrdexperiment-ptr.h"
38 #include "qxrdwindowsettings.h"
39 #include "qcepobjectnamer.h"
40 
41 class QxrdWindow : public QxrdMainWindow, public Ui::QxrdWindow, public QEnableSharedFromThis<QxrdWindow>
42 {
43  Q_OBJECT
44 
45 public:
48  QxrdExperimentWPtr docw,
51  QcepAllocatorWPtr allocw,
52  QWidget *parent);
53  virtual ~QxrdWindow();
54  void initialize();
55 
56  void onAcquisitionInit();
57 
58 public slots:
59  void saveExperimentCopy();
60  void saveExperimentAs();
61  void doEditPreferences();
63  void doSaveData();
64  void doLoadData();
65  void doSaveDark();
66  void doLoadDark();
67  void doClearDark();
68  void doSaveMask();
69  void doLoadMask();
70  void doClearMask();
71  void doSaveBadPixels();
72  void doLoadBadPixels();
73  void doClearBadPixels();
74  void doSaveGainMap();
75  void doLoadGainMap();
76  void doClearGainMap();
77  void doSaveCachedGeometry();
78  void doSaveCachedIntensity();
79 // void selectLogFile();
80  void doRefineCenterTilt();
81  void doAccumulateImages();
82  void doAddImages();
83  void doSubtractImages();
84  void doIntegrateSequence();
85  void doProcessSequence();
86  void doProjectAlongX();
87  void doProjectAlongY();
88  void doProjectAlongZ();
89  void doCorrelate();
90  void doReflectVertically();
91  void doReflectHorizontally();
92 // void doOpenAcquisitionWindow();
93 
94  void doPolarTransform();
95  void doPolarNormalization();
96 
97  void updateTitle();
98  void acquireStarted();
99  void acquiredFrame(QString fileName, int isum, int nsum, int iframe, int nframe, int igroup, int ngroup);
100  void acquireComplete();
101 
102  void crashProgram();
103  void testWidget();
104 
105  void executeScript();
106  void finishedCommand(QScriptValue result);
107  void cancelScript();
108  void doLoadScript();
109  void loadScript(QString path);
110 
111  void doTest();
112 
113  QString timeStamp() const;
114  void warningMessage(QString msg);
115  void displayMessage(QString msg);
116  void displayStatusMessage(QString msg);
117  void displayCriticalMessage(QString msg);
118  void initialLogEntry(QString aline);
119  void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime());
120 
121 // void selectOutputDirectory();
122  void clearStatusMessage();
123 
124  void enableTiltRefinement(bool enable);
125 
126 signals:
127  void executeCommand(QString cmd);
128 
129 private slots:
130  void newData();
131  void newMask();
132  void allocatedMemoryChanged();
133  void integrationXUnitsChanged(int newXUnits);
134  void onMessageWindowLinesChanged(int newVal);
135  void onUpdateIntervalMsecChanged(int newVal);
140  void plotPowderRingRadii();
141  void plotPowderRingTwoTheta();
142  void plotPowderRingCenters();
143 
144 public:
145  void closeEvent (QCloseEvent * event);
146 
148 
151 
154 
156 
157  void captureSize();
158  void resizeEvent(QResizeEvent *);
159  void moveEvent(QMoveEvent *);
160 
161 private:
162  void setupRecentExperimentsMenu(QAction *action);
163 
164 private:
166  mutable QMutex m_Mutex;
192  QVector<double> m_Exposures;
193  QProgressBar *m_Progress;
194  QLabel *m_StatusMsg;
195  QProgressBar *m_AllocationStatus;
198 
203  QAtomicInt m_NewDataAvailable;
204 
207  QAtomicInt m_NewMaskAvailable;
208 
211 
212  QString m_ScriptPath;
213 
215 
218 };
219 
220 #endif
void doLoadData()
void doLoadMask()
void newData()
QxrdAcquisitionScalerDialog * m_AcquisitionScalerDialog
Definition: qxrdwindow.h:174
QxrdOutputFileBrowser * m_OutputFileBrowser
Definition: qxrdwindow.h:186
void populateRecentExperimentsMenu()
Definition: qxrdwindow.cpp:819
QcepDoubleImageDataPtr m_NewData
Definition: qxrdwindow.h:201
QxrdImageCalculator * m_Calculator
Definition: qxrdwindow.h:184
void crashProgram()
QWeakPointer< QxrdDataProcessor > QxrdDataProcessorWPtr
QcepDoubleImageDataPtr data()
void doProjectAlongY()
void doProcessSequence()
void loadScript(QString path)
void captureSize()
void executeCommand(QString cmd)
QxrdAcquisitionExtraInputsDialogPtr m_AcquisitionExtraInputsDialog
Definition: qxrdwindow.h:175
void doLoadBadPixels()
void onUpdateIntervalMsecChanged(int newVal)
QxrdDistortionCorrectionDialog * m_DistortionCorrectionDialog
Definition: qxrdwindow.h:191
QcepMaskDataPtr mask()
QxrdInputFileBrowser * m_InputFileBrowser
Definition: qxrdwindow.h:185
QVector< double > m_Exposures
Definition: qxrdwindow.h:192
void integrationXUnitsChanged(int newXUnits)
QxrdAcquisitionWPtr m_Acquisition
Definition: qxrdwindow.h:170
QxrdWindow(QxrdWindowSettingsWPtr settings, QxrdApplicationWPtr appl, QxrdExperimentWPtr docw, QxrdAcquisitionWPtr acqw, QxrdDataProcessorWPtr procw, QcepAllocatorWPtr allocw, QWidget *parent)
Definition: qxrdwindow.cpp:61
void warningMessage(QString msg)
Definition: qxrdwindow.cpp:930
void newMaskAvailable(QcepMaskDataPtr img)
void doSaveDark()
QcepDatasetBrowserDialog * m_DatasetBrowserDialog
Definition: qxrdwindow.h:182
QcepDoubleImageDataPtr m_Data
Definition: qxrdwindow.h:199
QcepObjectNamer m_ObjectNamer
Definition: qxrdwindow.h:165
void acquireStarted()
Definition: qxrdwindow.cpp:990
QcepAllocatorWPtr m_Allocator
Definition: qxrdwindow.h:172
void acquireComplete()
Definition: qxrdwindow.cpp:994
QcepMaskDataPtr m_NewMask
Definition: qxrdwindow.h:206
QxrdAcquisitionDialog * m_AcquisitionDialog
Definition: qxrdwindow.h:173
void plotPowderRingRadii()
void doSaveBadPixels()
QWeakPointer< QxrdApplication > QxrdApplicationWPtr
void saveExperimentAs()
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
void doSubtractImages()
QxrdDisplayDialog * m_DisplayDialog
Definition: qxrdwindow.h:177
void onMessageWindowLinesChanged(int newVal)
void moveEvent(QMoveEvent *)
void doEditPreferences()
void acquiredFrame(QString fileName, int isum, int nsum, int iframe, int nframe, int igroup, int ngroup)
QxrdExperimentWPtr m_Experiment
Definition: qxrdwindow.h:169
void doProjectAlongZ()
void executeScript()
void updateTitle()
Definition: qxrdwindow.cpp:739
void doSaveGainMap()
void doSaveData()
void doLoadScript()
void initialize()
Definition: qxrdwindow.cpp:120
QString m_ScriptPath
Definition: qxrdwindow.h:212
QAtomicInt m_NewDataAvailable
Definition: qxrdwindow.h:203
QString timeStamp() const
Definition: qxrdwindow.cpp:914
QProgressBar * m_AllocationStatus
Definition: qxrdwindow.h:195
void doLoadGainMap()
void resizeEvent(QResizeEvent *)
QLabel * m_StatusMsg
Definition: qxrdwindow.h:194
void cancelScript()
void onAcquisitionInit()
Definition: qxrdwindow.cpp:756
void displayStatusMessage(QString msg)
QcepMaskDataPtr m_Mask
Definition: qxrdwindow.h:205
void doReflectVertically()
QxrdHighlighter * m_Highlighter
Definition: qxrdwindow.h:210
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
Definition: qxrdwindow.cpp:919
virtual ~QxrdWindow()
Definition: qxrdwindow.cpp:722
void doPolarTransform()
QxrdIntegratorDialog * m_IntegratorDialog
Definition: qxrdwindow.h:183
QxrdDataProcessorWPtr dataProcessor() const
void displayCriticalMessage(QString msg)
Definition: qxrdwindow.cpp:966
void testWidget()
void enableTiltRefinement(bool enable)
Definition: qxrdwindow.cpp:761
void doRefineCenterTilt()
QWeakPointer< QcepAllocator > QcepAllocatorWPtr
QxrdApplicationWPtr m_Application
Definition: qxrdwindow.h:168
QWeakPointer< QxrdWindowSettings > QxrdWindowSettingsWPtr
void doSaveMask()
QTimer m_UpdateTimer
Definition: qxrdwindow.h:197
QxrdCenterFinderDialog * m_CenterFinderDialog
Definition: qxrdwindow.h:178
QxrdSliceDialog * m_SliceDialog
Definition: qxrdwindow.h:187
void doAccumulateImages()
void initialLogEntry(QString aline)
Definition: qxrdwindow.cpp:954
QString m_CachedGeometryPath
Definition: qxrdwindow.h:216
void finishedCommand(QScriptValue result)
void closeEvent(QCloseEvent *event)
Definition: qxrdwindow.cpp:766
void doSaveCachedIntensity()
QxrdWindowSettingsWPtr m_WindowSettings
Definition: qxrdwindow.h:167
void saveExperimentCopy()
void plotPowderRingTwoTheta()
QxrdCalibrantDialog * m_CalibrantDialog
Definition: qxrdwindow.h:181
QMutex m_Mutex
Definition: qxrdwindow.h:166
QxrdDataProcessorWPtr m_DataProcessor
Definition: qxrdwindow.h:171
void doIntegrateSequence()
void populateConfigureDetectorMenu()
Definition: qxrdwindow.cpp:844
void doClearGainMap()
QTimer m_StatusTimer
Definition: qxrdwindow.h:196
void doAddImages()
void populateExperimentsMenu()
Definition: qxrdwindow.cpp:789
QProgressBar * m_Progress
Definition: qxrdwindow.h:193
QxrdScriptDialog * m_ScriptDialog
Definition: qxrdwindow.h:190
QWeakPointer< QxrdAcquisition > QxrdAcquisitionWPtr
void clearStatusMessage()
void doTest()
void setupRecentExperimentsMenu(QAction *action)
Definition: qxrdwindow.cpp:780
QMenu * m_RecentExperimentsMenu
Definition: qxrdwindow.h:214
void plotPowderRingCenters()
void doReflectHorizontally()
void doPolarNormalization()
QxrdHistogramDialog * m_HistogramDialog
Definition: qxrdwindow.h:188
QxrdAcquisitionWPtr acquisition() const
void displayMessage(QString msg)
Definition: qxrdwindow.cpp:942
void populateDetectorControlWindowsMenu()
Definition: qxrdwindow.cpp:879
QxrdInfoDialog * m_ImageInfoDialog
Definition: qxrdwindow.h:189
QxrdImageDisplayWidget * m_ImageDisplay
Definition: qxrdwindow.h:209
void doLoadDark()
QString m_CachedIntensityPath
Definition: qxrdwindow.h:217
void doEditDetectorPreferences()
void newMask()
void doSaveCachedGeometry()
QSharedPointer< QcepMaskData > QcepMaskDataPtr
void newDataAvailable(QcepDoubleImageDataPtr img, QcepMaskDataPtr overflow)
QxrdCorrectionDialog * m_CorrectionDialog
Definition: qxrdwindow.h:180
QxrdSynchronizedAcquisitionDialogPtr m_SynchronizedAcquisitionDialog
Definition: qxrdwindow.h:176
QcepMaskDataPtr m_NewOverflow
Definition: qxrdwindow.h:202
void doClearBadPixels()
void doCorrelate()
QcepMaskDataPtr m_Overflow
Definition: qxrdwindow.h:200
QxrdMaskDialog * m_MaskDialog
Definition: qxrdwindow.h:179
QAtomicInt m_NewMaskAvailable
Definition: qxrdwindow.h:207
void doClearDark()
void doProjectAlongX()
void allocatedMemoryChanged()
QSharedPointer< QcepDoubleImageData > QcepDoubleImageDataPtr
void doClearMask()