UltraScan III
us_convert_gui.h
Go to the documentation of this file.
1 #ifndef US_CONVERT_GUI_H
3 #define US_CONVERT_GUI_H
4 
5 #include <QtGui>
6 
7 #include "us_extern.h"
8 #include "us_widgets.h"
9 #include "us_help.h"
10 #include "us_plot.h"
11 #include "us_convert.h"
12 #include "us_experiment.h"
13 #include "us_dataIO.h"
14 #include "us_solution.h"
15 #include "us_simparms.h"
16 #include "us_selectbox.h"
17 #include "us_mwl_data.h"
18 #ifndef DbgLv
19 #define DbgLv(a) if(dbg_level>=a)qDebug()
20 #endif
21 
22 class US_ConvertGui : public US_Widgets
23 {
24  Q_OBJECT
25 
26  public:
27 
29  enum aucStatus
30  {
35  };
36 
38  US_ConvertGui();
39 
41  bool save_diskDB;
42 
43  QList< double > subsets;
44 
45  signals:
46 
47  public slots:
48 
49  private:
50 
51  enum { SPLIT, REFERENCE, NONE } step;
52 
56 
57  QString runType;
58  QString oldRunType;
59  QString runID;
60  QString tmst_fnamei;
61 
62  QLabel* lb_description;
63 
64  QLineEdit* le_investigator;
65  QLineEdit* le_status;
66  QLineEdit* le_runID;
67  QLineEdit* le_runID2;
68  QLineEdit* le_dir;
69  QLineEdit* le_description;
70  QLineEdit* le_solutionDesc;
71 
72  QLabel* lb_triple;
73  QListWidget* lw_triple; // cell, channel, wavelength
74  QListWidget* lw_todoinfo; // to do list
75 
76  QLabel* lb_scan;
77  QLabel* lb_from;
78  QLabel* lb_to;
79  QwtCounter* ct_from;
80  QwtCounter* ct_to;
81 
82  QwtCounter* ct_tolerance;
83 
84  QLabel* lb_mwlctrl;
85  QLabel* lb_mwlctre;
86  QLabel* lb_lambstrt;
87  QLabel* lb_lambstop;
88  QLabel* lb_lambplot;
89  QLineEdit* le_lambraw;
90  QComboBox* cb_lambstrt;
91  QComboBox* cb_lambstop;
92  QComboBox* cb_lambplot;
93  QCheckBox* ck_average;
94  QPushButton* pb_lambprev;
95  QPushButton* pb_lambnext;
96  QGridLayout* lo_average;
97  QVector< int > all_lambdas;
98  QVector< int > exp_lambdas;
99 
100  QPushButton* pb_editRuninfo;
101  QPushButton* pb_import;
102  QPushButton* pb_loadUS3;
103  QPushButton* pb_details;
104  QPushButton* pb_applyAll;
105  QPushButton* pb_solution;
106  QPushButton* pb_exclude;
107  QPushButton* pb_include;
108  QPushButton* pb_define;
109  QPushButton* pb_process;
110  QPushButton* pb_reference;
111  QPushButton* pb_intensity;
112  QPushButton* pb_cancelref;
113  QPushButton* pb_dropTrips;
114  QPushButton* pb_dropChan;
115  QPushButton* pb_dropCelch;
116  QPushButton* pb_saveUS3;
117 
119 
120  QList< US_DataIO::BeckmanRawScan > legacyData;
121  QVector< US_DataIO::RawData > allData;
122  QVector< US_DataIO::RawData* > outData;
123  QList< US_Convert::TripleInfo > all_tripinfo;
124  QList< US_Convert::TripleInfo > out_tripinfo;
125  QList< US_Convert::TripleInfo > all_chaninfo;
126  QList< US_Convert::TripleInfo > out_chaninfo;
127  QStringList all_triples;
128  QStringList all_channels;
129  QStringList out_triples;
130  QStringList out_channels;
131  QList< int > out_chandatx;
132 
133  QVector< US_Convert::Excludes > allExcludes;
134 
135  QVector< SP_SPEEDPROFILE > speedsteps;
136 
138 
139  QwtPlot* data_plot;
140  QwtPlotGrid* grid;
141 
142  double reference_start; // Boundary of reference scans
144  bool referenceDefined; // True if RI averages done
145  int Pseudo_reference_triple; // Number of reference triple
146  bool isPseudo; // Is RI data pseudo-absorbance?
147  bool toleranceChanged; // Has the tolerance changed?
148  double scanTolerance; // Remember scan tolerance value
149  int countSubsets; // Number of subsets maximum = 4
150  bool isMwl; // Is Multi-Wavelength?
151  int tripDatax; // Triple data index
152  int tripListx; // Triple list index
153  int nlambda; // Lambda (wavelength) count
154  int slambda; // Start Lambda on output
155  int elambda; // End Lambda on output
156  int nlamb_i; // Lambda count for raw input
157  int dbg_level; // Debug level
158 
159  QString currentDir; // Current data file directory
160  QString saveDescription; // Saved channel description
161 
162  bool show_plot_progress; // Flag to show plot progress
163  US_Experiment ExpData; // Experiment data object
164 
165  void reset ( void );
166  void enableRunIDControl( bool );
167  void enableScanControls( void );
168  void enableSaveBtn ( void );
169  void getExpInfo ( void );
170  void setTripleInfo ( void );
171  void checkTemperature( void );
172  int findTripleIndex ( void );
173  void focus ( int, int );
174  void init_excludes ( void );
175  void start_reference ( const QwtDoublePoint& );
176  void process_reference( const QwtDoublePoint& );
177  void PseudoCalcAvg ( void );
178  void PseudoCalcAvgMWL( void );
179  bool read ( void );
180  bool read ( QString dir );
181  bool convert ( void );
182  void initTriples ( void );
183  bool centerpieceInfo ( void );
184  bool centerpieceInfoDB ( void );
185  bool centerpieceInfoDisk( void );
186  void plot_current ( void );
187  void plot_titles ( void );
188  void plot_all ( void );
189  void replot ( void );
190  void set_colors ( const QList< int >& );
191  void draw_vline ( double );
192  void db_error ( const QString& );
193  void triple_index ( void );
194 
195  private slots:
197  void sel_investigator( void );
198 
202  void assign_investigator( int );
203 
204  void import ( void );
205  void reimport ( void );
206  void importMWL ( void );
207  void importAUC ( void );
208  int getImports ( void );
209  void enableControls ( void );
210  void runIDChanged ( void );
211  void toleranceValueChanged( double ); // signal to notify of change
212  void lambdaStartChanged( int );
213  void lambdaEndChanged ( int );
214  void lambdaPlotChanged ( int );
215  void lambdaPrevClicked ( void );
216  void lambdaNextClicked ( void );
217  void editRuninfo ( void );
218  void loadUS3 ( void );
219  void loadUS3Disk ( void );
220  void loadUS3Disk ( QString );
221  void loadUS3DB ( void );
222  void updateExpInfo ( US_Experiment& );
223  void cancelExpInfo ( void );
224  void getSolutionInfo ( void );
226  void cancelSolutionInfo( void );
227  void tripleApplyAll ( void );
228  void runDetails ( void );
229  void changeDescription ( void );
230  void changeTriple ( void );
231  void getCenterpieceIndex( int );
232  void focus_from ( double );
233  void focus_to ( double );
234  void exclude_scans ( void );
235  void include ( void );
236  void define_subsets ( void );
237  void cClick ( const QwtDoublePoint& );
238  void process_subsets ( void );
239  void define_reference ( void );
240  void show_intensity ( void );
241  void cancel_reference ( void );
242  void drop_reference ( void );
243  void drop_channel ( void );
244  void drop_cellchan ( void );
245  void saveUS3 ( void );
246  int saveUS3Disk ( void );
247  void saveUS3DB ( void );
248  void saveReportsToDB ( void );
249  void resetAll ( void );
250  void source_changed ( bool );
251  void update_disk_db ( bool );
252  void show_mwl_control ( bool );
253  void mwl_connect ( bool );
254  void reset_lambdas ( void );
255  void mwl_setup ( void );
256  bool init_output_data ( void );
257  void build_output_data ( void );
258  void build_lambda_ctrl ( void );
259  void connectTolerance ( bool );
260  int countSpeeds ( QVector< int >&, int* );
261  int writeTimeStateDisk( void );
262  int writeTimeStateDB ( void );
263  void help ( void )
264  { showHelp.show_help( "convert.html" ); };
265 };
266 #endif