3 @author Bruno M. Carvalho and Deniz Sarioz
4 modified by Joanna Klukowska (June 2008)
5 added two fields in LAST line for agreement with snark14
6 removed SAVE and MODIFY options of Run since snark14 does not have file12
7 licensed under (open-source) QPL v1.0
8 which accompanies this distribution in the file QPL
12 #include "variables.h"
17 #include <qbuttongroup.h>
20 #include <qcheckbox.h>
21 #include <qcombobox.h>
22 #include <qlineedit.h>
23 #include <qmultilineedit.h>
24 #include <qpushbutton.h>
25 #include <qradiobutton.h>
26 #include <qcombobox.h>
27 #include <qtabwidget.h>
33 #include <qwhatsthis.h>
34 #include <qmessagebox.h>
37 * Constructs a createwindow which is a child of 'parent', with the
38 * name 'name' and widget flags set to 'f'
40 * The dialog will by default be modeless, unless you set 'modal' to
41 * true to construct a modal dialog.
43 @author Bruno M. Carvalho
45 createwindow::createwindow( QWidget* parent, const char* name, bool modal, WFlags fl )
46 : QDialog( parent, name, modal, fl )
49 setName( "createwindow" );
51 setCaption( tr( "Create Window" ) );
53 tabwidget1 = new QTabWidget( this, "tabwidget1" );
54 tabwidget1->setGeometry( QRect( 0, 0, 750, 550 ) );
55 tabwidget1->setMinimumSize( QSize( 750, 550 ) );
56 tabwidget1->setMaximumSize( QSize( 750, 550 ) );
57 tabwidget1->setTabPosition( QTabWidget::Top );
58 tabwidget1->setTabShape( QTabWidget::Triangular );
60 /** Generates Tab number 1 - Header/Spectrum */
62 headerSpectrum = new QWidget( tabwidget1, "headerSpectrum" );
64 idheaderlabel = new QLabel( headerSpectrum, "idheaderlabel" );
65 idheaderlabel->setGeometry( QRect( 20, 30, 90, 20 ) );
66 idheaderlabel->setText( tr( "ID HEADER" ) );
68 idheader = new QLineEdit( headerSpectrum, "idheader" );
69 idheader->setGeometry( QRect( 120, 20, 500, 28 ) );
71 spectrumlabel = new QLabel( headerSpectrum, "spectrumlabel" );
72 spectrumlabel->setGeometry( QRect( 20, 70, 100, 20 ) );
73 spectrumlabel->setText( tr( "SPECTRUM" ) );
75 spectrumbuttongroup = new QButtonGroup( headerSpectrum, "spectrumbuttongroup" );
76 spectrumbuttongroup->setGeometry( QRect( 140, 70, 200, 100 ) );
77 spectrumbuttongroup->setTitle( tr( "spectrum type" ) );
78 spectrumbuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
80 monochromaticbutton = new QRadioButton( spectrumbuttongroup, "monochromaticbutton" );
81 monochromaticbutton->setGeometry( QRect( 10, 30, 170, 24 ) );
82 monochromaticbutton->setText( tr( "MONOCHROMATIC" ) );
83 monochromaticbutton->setChecked(true);
84 QObject::connect(monochromaticbutton,SIGNAL(clicked()),this,SLOT(activateMonochromaticFields()));
86 energy = new QLineEdit( headerSpectrum, "energy" );
87 energy->setGeometry( QRect( 350, 90, 60, 28 ) );
88 energy->setEnabled(true);
90 energylabel = new QLabel( headerSpectrum, "energylabel" );
91 energylabel->setGeometry( QRect( 355, 70, 50, 20 ) );
92 energylabel->setText( tr( "energy" ) );
93 energylabel->setEnabled(true);
95 polychromaticbutton = new QRadioButton( spectrumbuttongroup, "polychromaticbutton" );
96 polychromaticbutton->setGeometry( QRect( 10, 60, 170, 24 ) );
97 polychromaticbutton->setText( tr( "POLYCHROMATIC" ) );
98 QObject::connect(polychromaticbutton,SIGNAL(clicked()),this,SLOT(activatePolychromaticFields()));
100 nergy = new QLineEdit( headerSpectrum, "nergy" );
101 nergy->setGeometry( QRect( 350, 140, 60, 28 ) );
102 nergy->setEnabled(false);
104 nergylabel = new QLabel( headerSpectrum, "nergylabel" );
105 nergylabel->setGeometry( QRect( 360, 120, 40, 20 ) );
106 nergylabel->setText( tr( "nergy" ) );
107 nergylabel->setEnabled(false);
109 energy1 = new QLineEdit( headerSpectrum, "energy1" );
110 energy1->setGeometry( QRect( 30, 200, 70, 28 ) );
111 energy1->setEnabled(false);
113 energy1label = new QLabel( headerSpectrum, "energy1label" );
114 energy1label->setGeometry( QRect( 35, 180, 70, 20 ) );
115 energy1label->setText( tr( "energy1" ) );
116 energy1label->setEnabled(false);
118 percent1 = new QLineEdit( headerSpectrum, "percent1" );
119 percent1->setGeometry( QRect( 110, 200, 70, 28 ) );
120 percent1->setEnabled(false);
122 percent1label = new QLabel( headerSpectrum, "percent1label" );
123 percent1label->setGeometry( QRect( 115, 180, 70, 20 ) );
124 percent1label->setText( tr( "percent1" ) );
125 percent1label->setEnabled(false);
127 energy2 = new QLineEdit( headerSpectrum, "energy2" );
128 energy2->setGeometry( QRect( 190, 200, 70, 28 ) );
129 energy2->setEnabled(false);
131 energy2label = new QLabel( headerSpectrum, "energy2label" );
132 energy2label->setGeometry( QRect( 195, 180, 70, 20 ) );
133 energy2label->setText( tr( "energy2" ) );
134 energy2label->setEnabled(false);
136 percent2 = new QLineEdit( headerSpectrum, "percent2" );
137 percent2->setGeometry( QRect( 270, 200, 70, 28 ) );
138 percent2->setEnabled(false);
140 percent2label = new QLabel( headerSpectrum, "percent2label" );
141 percent2label->setGeometry( QRect( 275, 180, 70, 20 ) );
142 percent2label->setText( tr( "percent2" ) );
143 percent2label->setEnabled(false);
145 energy3 = new QLineEdit( headerSpectrum, "energy3" );
146 energy3->setGeometry( QRect( 350, 200, 70, 28 ) );
147 energy3->setEnabled(false);
149 energy3label = new QLabel( headerSpectrum, "energy3label" );
150 energy3label->setGeometry( QRect( 355, 180, 70, 20 ) );
151 energy3label->setText( tr( "energy3" ) );
152 energy3label->setEnabled(false);
154 percent3 = new QLineEdit( headerSpectrum, "percent3" );
155 percent3->setGeometry( QRect( 430, 200, 70, 28 ) );
156 percent3->setEnabled(false);
158 percent3label = new QLabel( headerSpectrum, "percent3label" );
159 percent3label->setGeometry( QRect( 435, 180, 70, 20 ) );
160 percent3label->setText( tr( "percent3" ) );
161 percent3label->setEnabled(false);
163 energy4 = new QLineEdit( headerSpectrum, "energy4" );
164 energy4->setGeometry( QRect( 510, 200, 70, 28 ) );
165 energy4->setEnabled(false);
167 energy4label = new QLabel( headerSpectrum, "energy4label" );
168 energy4label->setGeometry( QRect( 515, 180, 70, 20 ) );
169 energy4label->setText( tr( "energy4" ) );
170 energy4label->setEnabled(false);
172 percent4 = new QLineEdit( headerSpectrum, "percent4" );
173 percent4->setGeometry( QRect( 590, 200, 70, 28 ) );
174 percent4->setEnabled(false);
176 percent4label = new QLabel( headerSpectrum, "percent4label" );
177 percent4label->setGeometry( QRect( 595, 180, 70, 20 ) );
178 percent4label->setText( tr( "percent4" ) );
179 percent4label->setEnabled(false);
181 energy5 = new QLineEdit( headerSpectrum, "energy5" );
182 energy5->setGeometry( QRect( 30, 260, 70, 28 ) );
183 energy5->setEnabled(false);
185 energy5label = new QLabel( headerSpectrum, "energy5label" );
186 energy5label->setGeometry( QRect( 35, 240, 70, 20 ) );
187 energy5label->setText( tr( "energy5" ) );
188 energy5label->setEnabled(false);
190 percent5 = new QLineEdit( headerSpectrum, "percent5" );
191 percent5->setGeometry( QRect( 110, 260, 70, 28 ) );
192 percent5->setEnabled(false);
194 percent5label = new QLabel( headerSpectrum, "percent5label" );
195 percent5label->setGeometry( QRect( 115, 240, 70, 20 ) );
196 percent5label->setText( tr( "percent5" ) );
197 percent5label->setEnabled(false);
199 energy6 = new QLineEdit( headerSpectrum, "energy6" );
200 energy6->setGeometry( QRect( 190, 260, 70, 28 ) );
201 energy6->setEnabled(false);
203 energy6label = new QLabel( headerSpectrum, "energy6label" );
204 energy6label->setGeometry( QRect( 195, 240, 70, 20 ) );
205 energy6label->setText( tr( "energy6" ) );
206 energy6label->setEnabled(false);
208 percent6 = new QLineEdit( headerSpectrum, "percent6" );
209 percent6->setGeometry( QRect( 270, 260, 70, 28 ) );
210 percent6->setEnabled(false);
212 percent6label = new QLabel( headerSpectrum, "percent6label" );
213 percent6label->setGeometry( QRect( 270, 240, 70, 20 ) );
214 percent6label->setText( tr( "percent6" ) );
215 percent6label->setEnabled(false);
217 energy7 = new QLineEdit( headerSpectrum, "energy7" );
218 energy7->setGeometry( QRect( 350, 260, 70, 28 ) );
219 energy7->setEnabled(false);
221 energy7label = new QLabel( headerSpectrum, "energy7label" );
222 energy7label->setGeometry( QRect( 355, 240, 70, 20 ) );
223 energy7label->setText( tr( "energy7" ) );
224 energy7label->setEnabled(false);
226 percent7 = new QLineEdit( headerSpectrum, "percent7" );
227 percent7->setGeometry( QRect( 430, 260, 70, 28 ) );
228 percent7->setEnabled(false);
230 percent7label = new QLabel( headerSpectrum, "percent7label" );
231 percent7label->setGeometry( QRect( 435, 240, 70, 20 ) );
232 percent7label->setText( tr( "percent7" ) );
233 percent7label->setEnabled(false);
235 tabwidget1->insertTab( headerSpectrum, tr( "Header/Spectrum" ) );
237 /** Generates Tab number 2 - Objects */
239 objects = new QWidget( tabwidget1, "objects" );
241 objectslabel = new QLabel( objects, "objectslabel" );
242 objectslabel->setGeometry( QRect( 10, 20, 80, 20 ) );
243 objectslabel->setText( tr( "OBJECTS" ) );
245 shape = new QComboBox( objects, "shape" );
246 shape->setGeometry( QRect( 100, 55, 100, 28 ) );
247 shape->insertItem("RECT",-1);
248 shape->insertItem("ELIP",-1);
249 shape->insertItem("TRIA",-1);
250 shape->insertItem("SEGM",-1);
251 shape->insertItem("SECT",-1);
253 shapelabel = new QLabel( objects, "shapelabel" );
254 shapelabel->setGeometry( QRect( 125, 35, 60, 20 ) );
255 shapelabel->setText( tr( "shape" ) );
257 cx = new QLineEdit( objects, "cx" );
258 cx->setGeometry( QRect( 210, 55, 65, 28 ) );
260 cxlabel = new QLabel( objects, "cxlabel" );
261 cxlabel->setGeometry( QRect( 230, 35, 60, 20 ) );
262 cxlabel->setText( tr( "cx" ) );
264 cy = new QLineEdit( objects, "cy" );
265 cy->setGeometry( QRect( 285, 55, 65, 28 ) );
267 cylabel = new QLabel( objects, "cylabel" );
268 cylabel->setGeometry( QRect( 305, 35, 60, 20 ) );
269 cylabel->setText( tr( "cy" ) );
271 u = new QLineEdit( objects, "u" );
272 u->setGeometry( QRect( 360, 55, 65, 28 ) );
274 ulabel = new QLabel( objects, "ulabel" );
275 ulabel->setGeometry( QRect( 385, 35, 60, 20 ) );
276 ulabel->setText( tr( "u" ) );
278 v = new QLineEdit( objects, "v" );
279 v->setGeometry( QRect( 435, 55, 65, 28 ) );
281 vlabel = new QLabel( objects, "vlabel" );
282 vlabel->setGeometry( QRect( 460, 35, 60, 20 ) );
283 vlabel->setText( tr( "v" ) );
285 ang = new QLineEdit( objects, "ang" );
286 ang->setGeometry( QRect( 510, 55, 65, 28 ) );
288 anglabel = new QLabel( objects, "anglabel" );
289 anglabel->setGeometry( QRect( 520, 35, 60, 20 ) );
290 anglabel->setText( tr( "ang" ) );
292 den1 = new QLineEdit( objects, "den" );
293 den1->setGeometry( QRect( 585, 55, 65, 28 ) );
295 den1label = new QLabel( objects, "den1label" );
296 den1label->setGeometry( QRect( 595, 35, 60, 20 ) );
297 den1label->setText( tr( "den(1)" ) );
299 deni = new QLineEdit( objects, "deni" );
300 deni->setGeometry( QRect( 100, 108, 150, 28 ) );
301 deni->setEnabled(false);
303 denilabel = new QLabel( objects, "denilabel" );
304 denilabel->setGeometry( QRect( 150, 88, 60, 20 ) );
305 denilabel->setText( tr( "den(i)" ) );
306 denilabel->setEnabled(false);
308 addshapebutton = new QPushButton( objects, "addshape" );
309 addshapebutton->setGeometry( QRect( 15, 50, 80, 37 ) );
310 addshapebutton->setText( tr( "ADD" ) );
311 QObject::connect(addshapebutton,SIGNAL(clicked()),this,SLOT(addShape()));
313 objectsdescription = new QMultiLineEdit( objects, "objectsdescription" );
314 objectsdescription->setGeometry( QRect( 100, 150, 550, 300 ) );
316 lastlabel = new QLabel( objects, "lastlabel" );
317 lastlabel->setGeometry( QRect( 100, 485, 50, 20 ) );
318 lastlabel->setText( tr( "LAST" ) );
320 scale = new QLineEdit( objects, "scale" );
321 scale->setGeometry( QRect( 160, 480, 60, 28 ) );
323 scalelabel = new QLabel( objects, "scalelabel" );
324 scalelabel->setGeometry( QRect( 170, 460, 40, 20 ) );
325 scalelabel->setText( tr( "scale" ) );
327 /* jk 06/13/2008 added variabled to reflect tissue variabilit in snark14*/
328 seedvar = new QLineEdit( objects, "seedvar");
329 seedvar->setGeometry( QRect( 240, 480, 60, 28));
330 seedvar->setText( tr("0"));
332 seedvarlabel = new QLabel( objects, "seedvarlabel");
333 seedvarlabel->setGeometry( QRect( 250, 460, 40, 20));
334 seedvarlabel->setText( tr( "seed"));
336 var = new QLineEdit( objects, "var");
337 var->setGeometry( QRect( 320, 480, 60, 28));
338 var->setText( tr("0.0"));
340 varlabel = new QLabel( objects, "varlabel");
341 varlabel->setGeometry( QRect( 330, 460, 40, 20));
342 varlabel->setText( tr( "var"));
345 tabwidget1->insertTab( objects, tr( "Objects" ) );
347 /** Generates Tab number 3 - Phantom/Raysum */
348 phantomRaysum = new QWidget( tabwidget1, "phantomRaysum" );
350 phantomlabel = new QLabel( phantomRaysum, "phantomlabel" );
351 phantomlabel->setGeometry( QRect( 10, 40, 90, 20 ) );
352 phantomlabel->setText( tr( "PHANTOM" ) );
354 phantomaveragebutton = new QRadioButton( phantomRaysum, "phantomaveragebutton" );
355 phantomaveragebutton->setGeometry( QRect( 130, 40, 110, 24 ) );
356 phantomaveragebutton->setText( tr( "AVERAGE" ) );
357 QObject::connect(phantomaveragebutton,SIGNAL(clicked()),this,SLOT(activatePhantomAverageFields()));
359 nave1 = new QLineEdit( phantomRaysum, "nave1" );
360 nave1->setGeometry( QRect( 250, 30, 90, 28 ) );
361 nave1->setEnabled(false);
363 nave1label = new QLabel( phantomRaysum, "nave1label" );
364 nave1label->setGeometry( QRect( 270, 10, 50, 20 ) );
365 nave1label->setText( tr( "nave1" ) );
366 nave1label->setEnabled(false);
368 nelem = new QLineEdit( phantomRaysum, "nelem" );
369 nelem->setGeometry( QRect( 350, 30, 90, 28 ) );
370 nelem->setEnabled(false);
372 nelemlabel = new QLabel( phantomRaysum, "nelemlabel" );
373 nelemlabel->setGeometry( QRect( 370, 10, 50, 20 ) );
374 nelemlabel->setText( tr( "nelem" ) );
375 nelemlabel->setEnabled(false);
377 pixelsize = new QLineEdit( phantomRaysum, "pixelsize" );
378 pixelsize->setGeometry( QRect( 450, 30, 90, 28 ) );
379 pixelsize->setEnabled(false);
381 pixelsizelabel = new QLabel( phantomRaysum, "pixelsizelabel" );
382 pixelsizelabel->setGeometry( QRect( 460, 10, 70, 20 ) );
383 pixelsizelabel->setText( tr( "pixel_size" ) );
384 pixelsizelabel->setEnabled(false);
386 raysumlabel = new QLabel( phantomRaysum, "raysumlabel" );
387 raysumlabel->setGeometry( QRect( 10, 110, 90, 20 ) );
388 raysumlabel->setText( tr( "RAYSUM" ) );
390 raysumaveragebutton = new QRadioButton( phantomRaysum, "raysumaveragebutton" );
391 raysumaveragebutton->setGeometry( QRect( 130, 110, 110, 24 ) );
392 raysumaveragebutton->setText( tr( "AVERAGE" ) );
393 QObject::connect(raysumaveragebutton,SIGNAL(clicked()),this,SLOT(activateRaysumAverageFields()));
394 israysumaveragepresent=false;
396 nave2 = new QLineEdit( phantomRaysum, "nave2" );
397 nave2->setGeometry( QRect( 250, 100, 90, 28 ) );
398 nave2->setEnabled(false);
400 nave2label = new QLabel( phantomRaysum, "nave2label" );
401 nave2label->setGeometry( QRect( 270, 80, 50, 20 ) );
402 nave2label->setText( tr( "nave2" ) );
403 nave2label->setEnabled(false);
405 naper1 = new QLineEdit( phantomRaysum, "naper1" );
406 naper1->setGeometry( QRect( 20, 160, 70, 28 ) );
407 naper1->setEnabled(false);
409 naper1label = new QLabel( phantomRaysum, "naper1label" );
410 naper1label->setGeometry( QRect( 30, 140, 60, 20 ) );
411 naper1label->setText( tr( "naper1" ) );
412 naper1label->setEnabled(false);
414 naper2 = new QLineEdit( phantomRaysum, "naper2" );
415 naper2->setGeometry( QRect( 100, 160, 70, 28 ) );
416 naper2->setEnabled(false);
418 naper2label = new QLabel( phantomRaysum, "naper2label" );
419 naper2label->setGeometry( QRect( 110, 140, 50, 20 ) );
420 naper2label->setText( tr( "naper2" ) );
421 naper2label->setEnabled(false);
423 naper3 = new QLineEdit( phantomRaysum, "naper3" );
424 naper3->setGeometry( QRect( 180, 160, 70, 28 ) );
425 naper3->setEnabled(false);
427 naper3label = new QLabel( phantomRaysum, "naper3label" );
428 naper3label->setGeometry( QRect( 190, 140, 50, 20 ) );
429 naper3label->setText( tr( "naper3" ) );
430 naper3label->setEnabled(false);
432 naper4 = new QLineEdit( phantomRaysum, "naper4" );
433 naper4->setGeometry( QRect( 260, 160, 70, 28 ) );
434 naper4->setEnabled(false);
436 naper4label = new QLabel( phantomRaysum, "naper4label" );
437 naper4label->setGeometry( QRect( 270, 140, 50, 20 ) );
438 naper4label->setText( tr( "naper4" ) );
439 naper4label->setEnabled(false);
441 naper5 = new QLineEdit( phantomRaysum, "naper5" );
442 naper5->setGeometry( QRect( 340, 160, 70, 28 ) );
443 naper5->setEnabled(false);
445 naper5label = new QLabel( phantomRaysum, "naper5label" );
446 naper5label->setGeometry( QRect( 350, 140, 50, 20 ) );
447 naper5label->setText( tr( "naper5" ) );
448 naper5label->setEnabled(false);
450 naper6 = new QLineEdit( phantomRaysum, "naper6" );
451 naper6->setGeometry( QRect( 420, 160, 70, 28 ) );
452 naper6->setEnabled(false);
454 naper6label = new QLabel( phantomRaysum, "naper6label" );
455 naper6label->setGeometry( QRect( 430, 140, 50, 20 ) );
456 naper6label->setText( tr( "naper6" ) );
457 naper6label->setEnabled(false);
459 naper7 = new QLineEdit( phantomRaysum, "naper7" );
460 naper7->setGeometry( QRect( 500, 160, 70, 28 ) );
461 naper7->setEnabled(false);
463 naper7label = new QLabel( phantomRaysum, "naper7label" );
464 naper7label->setGeometry( QRect( 510, 140, 50, 20 ) );
465 naper7label->setText( tr( "naper7" ) );
466 naper7label->setEnabled(false);
468 naper8 = new QLineEdit( phantomRaysum, "naper8" );
469 naper8->setGeometry( QRect( 20, 220, 70, 28 ) );
470 naper8->setEnabled(false);
472 naper8label = new QLabel( phantomRaysum, "naper8label" );
473 naper8label->setGeometry( QRect( 30, 200, 50, 20 ) );
474 naper8label->setText( tr( "naper8" ) );
475 naper8label->setEnabled(false);
477 naper9 = new QLineEdit( phantomRaysum, "naper9" );
478 naper9->setGeometry( QRect( 100, 220, 70, 28 ) );
479 naper9->setEnabled(false);
481 naper9label = new QLabel( phantomRaysum, "naper9label" );
482 naper9label->setGeometry( QRect( 110, 200, 50, 20 ) );
483 naper9label->setText( tr( "naper9" ) );
484 naper9label->setEnabled(false);
486 naper10 = new QLineEdit( phantomRaysum, "naper10" );
487 naper10->setGeometry( QRect( 180, 220, 70, 28 ) );
488 naper10->setEnabled(false);
490 naper10label = new QLabel( phantomRaysum, "naper10label" );
491 naper10label->setGeometry( QRect( 185, 200, 60, 20 ) );
492 naper10label->setText( tr( "naper10" ) );
493 naper10label->setEnabled(false);
495 naper11 = new QLineEdit( phantomRaysum, "naper11" );
496 naper11->setGeometry( QRect( 260, 220, 70, 28 ) );
497 naper11->setEnabled(false);
499 naper11label = new QLabel( phantomRaysum, "naper11label" );
500 naper11label->setGeometry( QRect( 265, 200, 60, 20 ) );
501 naper11label->setText( tr( "naper11" ) );
502 naper11label->setEnabled(false);
504 naper12 = new QLineEdit( phantomRaysum, "naper12" );
505 naper12->setGeometry( QRect( 340, 220, 70, 28 ) );
506 naper12->setEnabled(false);
508 naper12label = new QLabel( phantomRaysum, "naper12label" );
509 naper12label->setGeometry( QRect( 345, 200, 60, 20 ) );
510 naper12label->setText( tr( "naper12" ) );
511 naper12label->setEnabled(false);
513 naper13 = new QLineEdit( phantomRaysum, "naper13" );
514 naper13->setGeometry( QRect( 420, 220, 70, 28 ) );
515 naper13->setEnabled(false);
517 naper13label = new QLabel( phantomRaysum, "naper13label" );
518 naper13label->setGeometry( QRect( 425, 200, 60, 20 ) );
519 naper13label->setText( tr( "naper13" ) );
520 naper13label->setEnabled(false);
522 tabwidget1->insertTab( phantomRaysum, tr( "Phantom/Raysum" ) );
524 /** Generates Tab number 4 - Geometry/Raysums */
526 geometryRaysums = new QWidget( tabwidget1, "geometryRaysums" );
528 geometrylabel = new QLabel( geometryRaysums, "geometrylabel" );
529 geometrylabel->setGeometry( QRect( 10, 20, 100, 20 ) );
530 geometrylabel->setText( tr( "GEOMETRY" ) );
532 geometrybuttongroup = new QButtonGroup( geometryRaysums, "geometrybuttongroup" );
533 // geometrybuttongroup->setGeometry( QRect( 120, 10, 570, 160 ) );
534 geometrybuttongroup->setGeometry( QRect( 120, 10, 570, 210 ) );
535 geometrybuttongroup->setTitle( tr( "" ) );
536 geometrybuttongroup->setEnabled(false);
538 parallelbutton = new QRadioButton( geometrybuttongroup, "parallelbutton" );
539 parallelbutton->setGeometry( QRect( 10, 20, 100, 24 ) );
540 parallelbutton->setText( tr( "PARALLEL" ) );
541 parallelbutton->setChecked(true);
542 QObject::connect(parallelbutton,SIGNAL(clicked()),this,SLOT(activateParallelFields()));
544 parallelbuttongroup = new QButtonGroup( geometrybuttongroup, "parallelbuttongroup" );
545 parallelbuttongroup->setGeometry( QRect( 130, 10, 120, 70 ) );
546 parallelbuttongroup->setTitle( tr( "" ) );
547 parallelbuttongroup->setEnabled(true);
549 uniformbutton = new QRadioButton( parallelbuttongroup, "uniformbutton" );
550 uniformbutton->setGeometry( QRect( 10, 10, 100, 24 ) );
551 uniformbutton->setText( tr( "UNIFORM" ) );
552 uniformbutton->setChecked(true);
554 variablebutton = new QRadioButton( parallelbuttongroup, "variablebutton" );
555 variablebutton->setGeometry( QRect( 10, 40, 100, 24 ) );
556 variablebutton->setText( tr( "VARIABLE" ) );
558 parallelbuttongroup2 = new QButtonGroup( geometrybuttongroup, "parallelbuttongroup2" );
559 parallelbuttongroup2->setGeometry( QRect( 260, 10, 90, 70 ) );
560 parallelbuttongroup2->setTitle( tr( "" ) );
561 parallelbuttongroup2->setEnabled(true);
563 stripbutton = new QRadioButton( parallelbuttongroup2, "stripbutton" );
564 stripbutton->setGeometry( QRect( 10, 10, 70, 24 ) );
565 stripbutton->setText( tr( "STRIP" ) );
567 linebutton = new QRadioButton( parallelbuttongroup2, "linebutton" );
568 linebutton->setGeometry( QRect( 10, 40, 70, 24 ) );
569 linebutton->setText( tr( "LINE" ) );
570 linebutton->setChecked(true);
572 divergentbutton = new QRadioButton( geometrybuttongroup, "divergentbutton" );
573 divergentbutton->setGeometry( QRect( 10, 100, 120, 24 ) );
574 divergentbutton->setText( tr( "DIVERGENT" ) );
575 QObject::connect(divergentbutton,SIGNAL(clicked()),this,SLOT(activateDivergentFields()));
577 divergentbuttongroup = new QButtonGroup( geometrybuttongroup, "divergentbuttongroup" );
578 divergentbuttongroup->setGeometry( QRect( 130, 80, 120, 70 ) );
579 divergentbuttongroup->setTitle( tr( "" ) );
580 divergentbuttongroup->setEnabled(false);
582 arcbutton = new QRadioButton( divergentbuttongroup, "arcbutton" );
583 arcbutton->setGeometry( QRect( 10, 10, 60, 24 ) );
584 arcbutton->setText( tr( "ARC" ) );
586 tangentbutton = new QRadioButton( divergentbuttongroup, "tangentbutton" );
587 tangentbutton->setGeometry( QRect( 10, 40, 100, 20 ) );
588 tangentbutton->setText( tr( "TANGENT" ) );
590 sourcetoorigin = new QLineEdit( geometrybuttongroup, "sourcetoorigin" );
591 sourcetoorigin->setGeometry( QRect( 260, 100, 140, 28 ) );
592 sourcetoorigin->setEnabled(false);
594 sourcetooriginlabel = new QLabel( geometrybuttongroup, "sourcetooriginlabel" );
595 sourcetooriginlabel->setGeometry( QRect( 270, 80, 120, 20 ) );
596 sourcetooriginlabel->setText( tr( "source_to_origin" ) );
597 sourcetooriginlabel->setEnabled(false);
599 sourcetodetector = new QLineEdit( geometrybuttongroup, "sourcetodetector" );
600 sourcetodetector->setGeometry( QRect( 410, 100, 140, 28 ) );
601 sourcetodetector->setEnabled(false);
603 sourcetodetectorlabel = new QLabel( geometrybuttongroup, "sourcetodetectorlabel" );
604 sourcetodetectorlabel->setGeometry( QRect( 410, 80, 140, 20 ) );
605 sourcetodetectorlabel->setText( tr( "source_to_detector" ) );
606 sourcetodetectorlabel->setEnabled(false);
608 linogrambutton = new QRadioButton( geometrybuttongroup, "divergentbutton" );
609 linogrambutton->setGeometry( QRect( 10, 180, 120, 24 ) );
610 linogrambutton->setText( tr( "LINOGRAM" ) );
611 QObject::connect(linogrambutton,SIGNAL(clicked()),this,SLOT(activateLinogramFields()));
613 raysumslabel = new QLabel( geometryRaysums, "raysumslabel" );
614 // raysumslabel->setGeometry( QRect( 10, 180, 90, 20 ) );
615 raysumslabel->setGeometry( QRect( 10, 230, 90, 20 ) );
616 raysumslabel->setText( tr( "RAYSUMS" ) );
618 raysumsbuttongroup = new QButtonGroup( geometryRaysums, "raysumsbuttongroup" );
619 // raysumsbuttongroup->setGeometry( QRect( 120, 180, 570, 120 ) );
620 raysumsbuttongroup->setGeometry( QRect( 120, 230, 570, 120 ) );
621 raysumsbuttongroup->setTitle( tr( "" ) );
622 raysumsbuttongroup->setEnabled(false);
624 userbutton = new QRadioButton( raysumsbuttongroup, "userbutton" );
625 userbutton->setGeometry( QRect( 10, 40, 70, 24 ) );
626 userbutton->setText( tr( "USER" ) );
627 userbutton->setChecked(true);
628 QObject::connect(userbutton,SIGNAL(clicked()),this,SLOT(activateUserFields()));
630 userrays = new QLineEdit( raysumsbuttongroup, "userrays" );
631 userrays->setGeometry( QRect( 130, 30, 90, 28 ) );
632 userrays->setEnabled(true);
634 userrayslabel = new QLabel( raysumsbuttongroup, "userrayslabel" );
635 userrayslabel->setGeometry( QRect( 140, 10, 70, 20 ) );
636 userrayslabel->setText( tr( "user_rays" ) );
637 userrayslabel->setEnabled(true);
639 programbutton = new QRadioButton( raysumsbuttongroup, "programbutton" );
640 programbutton->setGeometry( QRect( 10, 90, 110, 24 ) );
641 programbutton->setText( tr( "PROGRAM" ) );
642 QObject::connect(programbutton,SIGNAL(clicked()),this,SLOT(activateProgramFields()));
644 raysumsnelem = new QLineEdit( raysumsbuttongroup, "raysumsnelem" );
645 raysumsnelem->setGeometry( QRect( 130, 80, 90, 28 ) );
646 raysumsnelem->setEnabled(false);
648 raysumsnelemlabel = new QLabel( raysumsbuttongroup, "raysumsnelemlabel" );
649 raysumsnelemlabel->setGeometry( QRect( 150, 60, 50, 20 ) );
650 raysumsnelemlabel->setText( tr( "nelem" ) );
651 raysumsnelemlabel->setEnabled(false);
653 raysumspixelsize = new QLineEdit( raysumsbuttongroup, "raysumspixelsize" );
654 raysumspixelsize->setGeometry( QRect( 240, 80, 90, 28 ) );
655 raysumspixelsize->setEnabled(false);
657 raysumspixelsizelabel = new QLabel( raysumsbuttongroup, "raysumspixelsizelabel" );
658 raysumspixelsizelabel->setGeometry( QRect( 250, 60, 70, 20 ) );
659 raysumspixelsizelabel->setText( tr( "pixel_size" ) );
660 raysumspixelsizelabel->setEnabled(false);
662 detectorspacing = new QLineEdit( raysumsbuttongroup, "detectorspacing" );
663 detectorspacing->setGeometry( QRect( 370, 50, 140, 28 ) );
665 detectorspacinglabel = new QLabel( raysumsbuttongroup, "detectorspacinglabel" );
666 detectorspacinglabel->setGeometry( QRect( 380, 30, 130, 20 ) );
667 detectorspacinglabel->setText( tr( "detector_spacing" ) );
669 angleslabel = new QLabel( geometryRaysums, "angleslabel" );
670 // angleslabel->setGeometry( QRect( 8, 310, 70, 20 ) );
671 angleslabel->setGeometry( QRect( 10, 360, 70, 20 ) );
672 angleslabel->setText( tr( "ANGLES" ) );
674 anglesbuttongroup = new QButtonGroup( geometryRaysums, "anglesbuttongroup" );
675 // anglesbuttongroup->setGeometry( QRect( 120, 310, 570, 100 ) );
676 anglesbuttongroup->setGeometry( QRect( 120, 360, 570, 100 ) );
677 anglesbuttongroup->setTitle( tr( "" ) );
678 anglesbuttongroup->setEnabled(false);
680 prjnum = new QLineEdit( anglesbuttongroup, "prjnum" );
681 prjnum->setGeometry( QRect( 17, 40, 120, 28 ) );
683 prjnumlabel = new QLabel( anglesbuttongroup, "prjnumlabel" );
684 prjnumlabel->setGeometry( QRect( 50, 20, 50, 20 ) );
685 prjnumlabel->setText( tr( "prjnum" ) );
687 // linobutton = new QRadioButton( anglesbuttongroup, "linobutton" );
688 // linobutton->setGeometry( QRect( 160, 10, 60, 24 ) );
689 // linobutton->setText( tr( "LINO" ) );
690 // QObject::connect(linobutton,SIGNAL(clicked()),this,SLOT(deactivateEqualSpacingFields()));
692 equalspacingbutton = new QRadioButton( anglesbuttongroup, "equalspacingbutton" );
693 equalspacingbutton->setGeometry( QRect( 160, 40, 160, 24 ) );
694 equalspacingbutton->setText( tr( "EQUAL SPACING" ) );
695 QObject::connect(equalspacingbutton,SIGNAL(clicked()),this,SLOT(activateEqualSpacingFields()));
697 nonebutton = new QRadioButton( anglesbuttongroup, "nonebutton" );
698 nonebutton->setGeometry( QRect( 160, 70, 70, 24 ) );
699 nonebutton->setText( tr( "NONE" ) );
700 nonebutton->setChecked(true);
701 QObject::connect(nonebutton,SIGNAL(clicked()),this,SLOT(deactivateEqualSpacingFields()));
703 firstangle = new QLineEdit( anglesbuttongroup, "firstangle" );
704 firstangle->setGeometry( QRect( 340, 40, 80, 28 ) );
705 firstangle->setEnabled(false);
707 firstanglelabel = new QLabel( anglesbuttongroup, "firstanglelabel" );
708 firstanglelabel->setGeometry( QRect( 345, 20, 80, 20 ) );
709 firstanglelabel->setText( tr( "first_angle" ) );
710 firstanglelabel->setEnabled(false);
712 lastangle = new QLineEdit( anglesbuttongroup, "lastangle" );
713 lastangle->setGeometry( QRect( 440, 40, 80, 28 ) );
714 lastangle->setEnabled(false);
716 lastanglelabel = new QLabel( anglesbuttongroup, "lastanglelabel" );
717 lastanglelabel->setGeometry( QRect( 445, 20, 80, 20 ) );
718 lastanglelabel->setText( tr( "last_angle" ) );
719 lastanglelabel->setEnabled(false);
721 // angles = new QMultiLineEdit( geometryRaysums, "angles" );
722 angles = new QLineEdit( geometryRaysums, "angles" );
723 // angles->setGeometry( QRect( 120, 415, 570, 105 ) );
724 angles->setGeometry( QRect( 120, 465, 570, 55 ) );
725 angles->setEnabled(false);
727 tabwidget1->insertTab( geometryRaysums, tr( "Geometry/Raysums" ) );
729 /** Generates Tab number 5 - Measurement/Run */
731 measurementRun = new QWidget( tabwidget1, "measurementRun" );
733 measurementlabel = new QLabel( measurementRun, "measurementlabel" );
734 measurementlabel->setGeometry( QRect( 10, 20, 130, 20 ) );
735 measurementlabel->setText( tr( "MEASUREMENT" ) );
737 measurementbuttongroup = new QButtonGroup( measurementRun, "measurementbuttongroup" );
738 measurementbuttongroup->setGeometry( QRect( 20, 50, 710, 410 ) );
739 measurementbuttongroup->setTitle( tr( "" ) );
740 measurementbuttongroup->setEnabled(false);
742 perfectbutton = new QRadioButton( measurementbuttongroup, "perfectbutton" );
743 perfectbutton->setGeometry( QRect( 10, 10, 100, 24 ) );
744 perfectbutton->setText( tr( "PERFECT" ) );
745 perfectbutton->setChecked(true);
746 QObject::connect(perfectbutton,SIGNAL(clicked()),this,SLOT(deactivateNoisyFields()));
748 noisybutton = new QRadioButton( measurementbuttongroup, "noisybutton" );
749 noisybutton->setGeometry( QRect( 10, 40, 70, 24 ) );
750 noisybutton->setText( tr( "NOISY" ) );
751 QObject::connect(noisybutton,SIGNAL(clicked()),this,SLOT(activateNoisyFields()));
753 noisyframe = new QFrame( measurementbuttongroup, "noisyframe" );
754 noisyframe->setGeometry( QRect( 90, 40, 570, 250 ) );
755 noisyframe->setFrameStyle( 49 );
756 noisyframe->setEnabled(false);
758 quantumbutton = new QCheckBox( noisyframe, "quantumbutton" );
759 quantumbutton->setGeometry( QRect( 20, 30, 110, 24 ) );
760 quantumbutton->setText( tr( "QUANTUM" ) );
761 quantumbutton->setEnabled(false);
762 QObject::connect(quantumbutton,SIGNAL(clicked()),this,SLOT(activateQuantumFields()));
764 quanmn = new QLineEdit( noisyframe, "quanmn" );
765 quanmn->setGeometry( QRect( 180, 30, 80, 28 ) );
766 quanmn->setEnabled(false);
768 quanmnlabel = new QLabel( noisyframe, "quanmnlabel" );
769 quanmnlabel->setGeometry( QRect( 190, 10, 60, 20 ) );
770 quanmnlabel->setText( tr( "quanmn" ) );
771 quanmnlabel->setEnabled(false);
773 quancm = new QLineEdit( noisyframe, "quancm" );
774 quancm->setGeometry( QRect( 270, 30, 80, 28 ) );
775 quancm->setEnabled(false);
777 quancmlabel = new QLabel( noisyframe, "quancmlabel" );
778 quancmlabel->setGeometry( QRect( 280, 10, 60, 20 ) );
779 quancmlabel->setText( tr( "quancm" ) );
780 quancmlabel->setEnabled(false);
782 calibrationlabel = new QLabel( noisyframe, "calibrationlabel" );
783 calibrationlabel->setGeometry( QRect( 360, 30, 110, 20 ) );
784 calibrationlabel->setText( tr( "CALIBRATION" ) );
785 calibrationlabel->setEnabled(false);
787 quanin = new QComboBox( noisyframe, "quanin" );
788 quanin->setGeometry( QRect( 480, 30, 80, 28 ) );
789 quanin->insertItem("1",-1);
790 quanin->insertItem("2",-1);
791 quanin->insertItem("3",-1);
792 quanin->insertItem("4",-1);
793 quanin->setEnabled(false);
795 quaninlabel = new QLabel( noisyframe, "quaninlabel" );
796 quaninlabel->setGeometry( QRect( 490, 10, 50, 20 ) );
797 quaninlabel->setText( tr( "quanin" ) );
798 quaninlabel->setEnabled(false);
800 scatterbutton = new QCheckBox( noisyframe, "scatterbutton" );
801 scatterbutton->setGeometry( QRect( 20, 90, 100, 24 ) );
802 scatterbutton->setText( tr( "SCATTER" ) );
803 QObject::connect(scatterbutton,SIGNAL(clicked()),this,SLOT(activateScatterFields()));
805 sctnpk = new QLineEdit( noisyframe, "sctnpk" );
806 sctnpk->setGeometry( QRect( 180, 90, 80, 28 ) );
807 sctnpk->setEnabled(false);
809 sctnpklabel = new QLabel( noisyframe, "sctnpklabel" );
810 sctnpklabel->setGeometry( QRect( 190, 70, 50, 20 ) );
811 sctnpklabel->setText( tr( "sctnpk" ) );
812 sctnpklabel->setEnabled(false);
814 sctnwd = new QLineEdit( noisyframe, "sctnwd" );
815 sctnwd->setGeometry( QRect( 270, 90, 80, 28 ) );
816 sctnwd->setEnabled(false);
818 sctnwdlabel = new QLabel( noisyframe, "sctnwdlabel" );
819 sctnwdlabel->setGeometry( QRect( 280, 70, 60, 20 ) );
820 sctnwdlabel->setText( tr( "sctnwd" ) );
821 sctnwdlabel->setEnabled(false);
823 additivebutton = new QCheckBox( noisyframe, "additivebutton" );
824 additivebutton->setGeometry( QRect( 20, 150, 90, 24 ) );
825 additivebutton->setText( tr( "ADDITIVE" ) );
826 additivebutton->setChecked(false);
827 QObject::connect(additivebutton,SIGNAL(clicked()),this,SLOT(activateAdditiveFields()));
829 addnmn = new QLineEdit( noisyframe, "addnmn" );
830 addnmn->setGeometry( QRect( 180, 150, 80, 28 ) );
831 addnmn->setEnabled(false);
833 addnmnlabel = new QLabel( noisyframe, "addnmnlabel" );
834 addnmnlabel->setGeometry( QRect( 190, 130, 60, 20 ) );
835 addnmnlabel->setText( tr( "addnmn" ) );
836 addnmnlabel->setEnabled(false);
838 addnsd = new QLineEdit( noisyframe, "addnsd" );
839 addnsd->setGeometry( QRect( 270, 150, 80, 28 ) );
840 addnsd->setEnabled(false);
842 addnsdlabel = new QLabel( noisyframe, "addnsdlabel" );
843 addnsdlabel->setGeometry( QRect( 280, 130, 60, 20 ) );
844 addnsdlabel->setText( tr( "addnsd" ) );
845 addnsdlabel->setEnabled(false);
847 multiplicativebutton = new QCheckBox( noisyframe, "multiplicativebutton" );
848 multiplicativebutton->setGeometry( QRect( 20, 210, 150, 24 ) );
849 multiplicativebutton->setText( tr( "MULTIPLICATIVE" ) );
850 QObject::connect(multiplicativebutton,SIGNAL(clicked()),this,SLOT(activateMultiplicativeFields()));
852 multnmn = new QLineEdit( noisyframe, "multnmn" );
853 multnmn->setGeometry( QRect( 180, 210, 80, 28 ) );
854 multnmn->setEnabled(false);
856 multnmnlabel = new QLabel( noisyframe, "multnmnlabel" );
857 multnmnlabel->setGeometry( QRect( 190, 190, 70, 20 ) );
858 multnmnlabel->setText( tr( "multnmn" ) );
859 multnmnlabel->setEnabled(false);
861 multnsd = new QLineEdit( noisyframe, "multnsd" );
862 multnsd->setGeometry( QRect( 270, 210, 80, 28 ) );
863 multnsd->setEnabled(false);
865 multnsdlabel = new QLabel( noisyframe, "multnsdlabel" );
866 multnsdlabel->setGeometry( QRect( 280, 190, 70, 20 ) );
867 multnsdlabel->setText( tr( "multnsd" ) );
868 multnsdlabel->setEnabled(false);
870 seedlabel = new QLabel( measurementbuttongroup, "seedlabel" );
871 seedlabel->setGeometry( QRect( 10, 310, 110, 20 ) );
872 seedlabel->setText( tr( "SEED" ) );
873 seedlabel->setEnabled(false);
875 seed = new QLineEdit( measurementbuttongroup, "seed" );
876 seed->setGeometry( QRect( 140, 310, 70, 28 ) );
877 seed->setEnabled(false);
879 seedlabel1 = new QLabel( measurementbuttongroup, "seedlabel1" );
880 seedlabel1->setGeometry( QRect( 155, 290, 70, 20 ) );
881 seedlabel1->setText( tr( "seed" ) );
882 seedlabel1->setEnabled(false);
884 backgroundlabel = new QLabel( measurementbuttongroup, "backgroundlabel" );
885 backgroundlabel->setGeometry( QRect( 10, 370, 120, 20 ) );
886 backgroundlabel->setText( tr( "BACKGROUND" ) );
888 backgr1 = new QLineEdit( measurementbuttongroup, "backgr1" );
889 backgr1->setGeometry( QRect( 140, 370, 70, 28 ) );
891 backgr1label = new QLabel( measurementbuttongroup, "backgr1label" );
892 backgr1label->setGeometry( QRect( 145, 350, 70, 20 ) );
893 backgr1label->setText( tr( "backgr(1)" ) );
895 backgr2 = new QLineEdit( measurementbuttongroup, "backgr2" );
896 backgr2->setGeometry( QRect( 220, 370, 70, 28 ) );
897 backgr2->setEnabled(false);
899 backgr2label = new QLabel( measurementbuttongroup, "backgr2label" );
900 backgr2label->setGeometry( QRect( 225, 350, 70, 20 ) );
901 backgr2label->setText( tr( "backgr(2)" ) );
902 backgr2label->setEnabled(false);
904 backgr3 = new QLineEdit( measurementbuttongroup, "backgr3" );
905 backgr3->setGeometry( QRect( 300, 370, 70, 28 ) );
906 backgr3->setEnabled(false);
908 backgr3label = new QLabel( measurementbuttongroup, "backgr3label" );
909 backgr3label->setGeometry( QRect( 305, 350, 70, 20 ) );
910 backgr3label->setText( tr( "backgr(3)" ) );
911 backgr3label->setEnabled(false);
913 backgr4 = new QLineEdit( measurementbuttongroup, "backgr4" );
914 backgr4->setGeometry( QRect( 380, 370, 70, 28 ) );
915 backgr4->setEnabled(false);
917 backgr4label = new QLabel( measurementbuttongroup, "backgr4label" );
918 backgr4label->setGeometry( QRect( 385, 350, 70, 20 ) );
919 backgr4label->setText( tr( "backgr(4)" ) );
920 backgr4label->setEnabled(false);
922 backgr5 = new QLineEdit( measurementbuttongroup, "backgr5" );
923 backgr5->setGeometry( QRect( 460, 370, 70, 28 ) );
924 backgr5->setEnabled(false);
926 backgr5label = new QLabel( measurementbuttongroup, "backgr5label" );
927 backgr5label->setGeometry( QRect( 465, 350, 70, 20 ) );
928 backgr5label->setText( tr( "backgr(5)" ) );
929 backgr5label->setEnabled(false);
931 backgr6 = new QLineEdit( measurementbuttongroup, "backgr6" );
932 backgr6->setGeometry( QRect( 540, 370, 70, 28 ) );
933 backgr6->setEnabled(false);
935 backgr6label = new QLabel( measurementbuttongroup, "backgr6label" );
936 backgr6label->setGeometry( QRect( 545, 350, 70, 20 ) );
937 backgr6label->setText( tr( "backgr(6)" ) );
938 backgr6label->setEnabled(false);
940 backgr7 = new QLineEdit( measurementbuttongroup, "backgr7" );
941 backgr7->setGeometry( QRect( 620, 370, 70, 28 ) );
942 backgr7->setEnabled(false);
944 backgr7label = new QLabel( measurementbuttongroup, "backgr7label" );
945 backgr7label->setGeometry( QRect( 625, 350, 70, 20 ) );
946 backgr7label->setText( tr( "backgr(7)" ) );
947 backgr7label->setEnabled(false);
949 // jk 06/14/08 removal of file12 changes
950 /*runlabel = new QLabel( measurementRun, "runlabel" );
951 runlabel->setGeometry( QRect( 10, 490, 40, 20 ) );
952 runlabel->setText( tr( "RUN" ) );
954 runbuttongroup = new QButtonGroup( measurementRun, "runbuttongroup" );
955 //runbuttongroup->setGeometry( QRect( 80, 480, 320, 40 ) );
956 runbuttongroup->setGeometry( QRect( 80, 480, 120, 40 ) );
957 runbuttongroup->setTitle( tr( "" ) );
958 runbuttongroup->setEnabled(false);
960 /*savebutton = new QRadioButton( runbuttongroup, "savebutton" );
961 savebutton->setGeometry( QRect( 10, 10, 60, 24 ) );
962 savebutton->setText( tr( "SAVE" ) );
964 modifybutton = new QRadioButton( runbuttongroup, "modifybutton" );
965 modifybutton->setGeometry( QRect( 110, 10, 80, 24 ) );
966 modifybutton->setText( tr( "MODIFY" ) );
968 /*nonebutton_2 = new QRadioButton( runbuttongroup, "nonebutton_2" );
969 //nonebutton_2->setGeometry( QRect( 230, 10, 70, 24 ) );
970 nonebutton_2->setGeometry( QRect( 10, 10, 70, 24 ) );
971 nonebutton_2->setText( tr( "NONE" ) );
972 nonebutton_2->setChecked(true);
974 tabwidget1->insertTab( measurementRun, tr( "Measurement/Run" ) );
975 QObject::connect(tabwidget1,SIGNAL(currentChanged(QWidget*)),this,SLOT(activateOKButton()));
977 okbutton = new QPushButton( this, "okbutton" );
978 okbutton->setGeometry( QRect( 100, 560, 100, 40 ) );
979 okbutton->setText( tr( "OK" ) );
980 QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
981 okbutton->setEnabled(false);
983 cancelbutton = new QPushButton( this, "cancelbutton" );
984 cancelbutton->setGeometry( QRect( 510, 560, 100, 40 ) );
985 cancelbutton->setText( tr( "Cancel" ) );
986 QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
991 * Destroys the object and frees any allocated resources
993 createwindow::~createwindow()
995 // no need to delete child widgets, Qt does it all for us
998 /** Activates monochromatic fields and deactivates polychromatic fields
1000 @author Bruno M. Carvalho
1002 void createwindow::activateMonochromaticFields()
1004 if(monochromaticbutton->isChecked()) {
1005 energy->setEnabled(true);
1006 energylabel->setEnabled(true);
1007 nergy->setEnabled(false);
1008 nergylabel->setEnabled(false);
1009 energy1->setEnabled(false);
1010 energy1label->setEnabled(false);
1011 percent1->setEnabled(false);
1012 percent1label->setEnabled(false);
1013 energy2->setEnabled(false);
1014 energy2label->setEnabled(false);
1015 percent2->setEnabled(false);
1016 percent2label->setEnabled(false);
1017 energy3->setEnabled(false);
1018 energy3label->setEnabled(false);
1019 percent3->setEnabled(false);
1020 percent3label->setEnabled(false);
1021 energy4->setEnabled(false);
1022 energy4label->setEnabled(false);
1023 percent4->setEnabled(false);
1024 percent4label->setEnabled(false);
1025 energy5->setEnabled(false);
1026 energy5label->setEnabled(false);
1027 percent5->setEnabled(false);
1028 percent5label->setEnabled(false);
1029 energy6->setEnabled(false);
1030 energy6label->setEnabled(false);
1031 percent6->setEnabled(false);
1032 percent6label->setEnabled(false);
1033 energy7->setEnabled(false);
1034 energy7label->setEnabled(false);
1035 percent7->setEnabled(false);
1036 percent7label->setEnabled(false);
1037 deni->setEnabled(false);
1038 denilabel->setEnabled(false);
1039 backgr2->setEnabled(false);
1040 backgr2label->setEnabled(false);
1041 backgr3->setEnabled(false);
1042 backgr3label->setEnabled(false);
1043 backgr4->setEnabled(false);
1044 backgr4label->setEnabled(false);
1045 backgr5->setEnabled(false);
1046 backgr5label->setEnabled(false);
1047 backgr6->setEnabled(false);
1048 backgr6label->setEnabled(false);
1049 backgr7->setEnabled(false);
1050 backgr7label->setEnabled(false);
1054 energy->setEnabled(false);
1055 energylabel->setEnabled(false);
1060 /** Activates polychromatic fields and deactivates monochromatic fields
1062 @author Bruno M. Carvalho
1064 void createwindow::activatePolychromaticFields()
1066 if(polychromaticbutton->isChecked()) {
1067 nergy->setEnabled(true);
1068 nergylabel->setEnabled(true);
1069 energy1->setEnabled(true);
1070 energy1label->setEnabled(true);
1071 percent1->setEnabled(true);
1072 percent1label->setEnabled(true);
1073 energy2->setEnabled(true);
1074 energy2label->setEnabled(true);
1075 percent2->setEnabled(true);
1076 percent2label->setEnabled(true);
1077 energy3->setEnabled(true);
1078 energy3label->setEnabled(true);
1079 percent3->setEnabled(true);
1080 percent3label->setEnabled(true);
1081 energy4->setEnabled(true);
1082 energy4label->setEnabled(true);
1083 percent4->setEnabled(true);
1084 percent4label->setEnabled(true);
1085 energy5->setEnabled(true);
1086 energy5label->setEnabled(true);
1087 percent5->setEnabled(true);
1088 percent5label->setEnabled(true);
1089 energy6->setEnabled(true);
1090 energy6label->setEnabled(true);
1091 percent6->setEnabled(true);
1092 percent6label->setEnabled(true);
1093 energy7->setEnabled(true);
1094 energy7label->setEnabled(true);
1095 percent7->setEnabled(true);
1096 percent7label->setEnabled(true);
1097 deni->setEnabled(true);
1098 denilabel->setEnabled(true);
1099 backgr2->setEnabled(true);
1100 backgr2label->setEnabled(true);
1101 backgr3->setEnabled(true);
1102 backgr3label->setEnabled(true);
1103 backgr4->setEnabled(true);
1104 backgr4label->setEnabled(true);
1105 backgr5->setEnabled(true);
1106 backgr5label->setEnabled(true);
1107 backgr6->setEnabled(true);
1108 backgr6label->setEnabled(true);
1109 backgr7->setEnabled(true);
1110 backgr7label->setEnabled(true);
1111 energy->setEnabled(false);
1112 energylabel->setEnabled(false);
1116 nergy->setEnabled(false);
1117 nergylabel->setEnabled(false);
1118 energy1->setEnabled(false);
1119 energy1label->setEnabled(false);
1120 percent1->setEnabled(false);
1121 percent1label->setEnabled(false);
1122 energy2->setEnabled(false);
1123 energy2label->setEnabled(false);
1124 percent2->setEnabled(false);
1125 percent2label->setEnabled(false);
1126 energy3->setEnabled(false);
1127 energy3label->setEnabled(false);
1128 percent3->setEnabled(false);
1129 percent3label->setEnabled(false);
1130 energy4->setEnabled(false);
1131 energy4label->setEnabled(false);
1132 percent4->setEnabled(false);
1133 percent4label->setEnabled(false);
1134 energy5->setEnabled(false);
1135 energy5label->setEnabled(false);
1136 percent5->setEnabled(false);
1137 percent5label->setEnabled(false);
1138 energy6->setEnabled(false);
1139 energy6label->setEnabled(false);
1140 percent6->setEnabled(false);
1141 percent6label->setEnabled(false);
1142 energy7->setEnabled(false);
1143 energy7label->setEnabled(false);
1144 percent7->setEnabled(false);
1145 percent7label->setEnabled(false);
1150 /** Adds a shape to object description
1152 @author Bruno M. Carvalho
1154 void createwindow::addShape()
1161 switch(shape->currentItem()) {
1162 case 0:ts.append("RECT ");break;
1163 case 1:ts.append("ELIP ");break;
1164 case 2:ts.append("TRIA ");break;
1165 case 3:ts.append("SEGM ");break;
1166 case 4:ts.append("SECT ");break;
1168 ft=strtof((const char *)cx->text().lower());
1171 ft=strtof((const char *)cy->text().lower());
1174 ft=strtof((const char *)u->text().lower());
1177 ft=strtof((const char *)v->text().lower());
1180 ft=strtof((const char *)ang->text().lower());
1183 ft=strtof((const char *)den1->text().lower());
1187 case 0: ts.append(cx->text());
1189 ts.append(cy->text());
1191 ts.append(u->text());
1193 ts.append(v->text());
1195 ts.append(ang->text());
1197 ts.append(den1->text());
1198 objectsdescription->insertLine(ts,-1);
1199 ft=strtof((const char *)deni->text().lower());
1200 if((errnum!=2) && (polychromaticbutton->isChecked())) {
1201 ts2.append("DENS ");
1202 ts2.append(deni->text());
1203 // objectsdescription->insertLine(deni->text(),-1);
1204 objectsdescription->insertLine(ts2,-1);
1214 case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
1215 "Invalid cx format.");
1218 case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
1219 "Invalid cy format.");
1222 case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
1223 "Invalid u format.");
1226 case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
1227 "Invalid v format.");
1230 case 5: QMessageBox::information(this,"SnarkInput","Error!\n"
1231 "Invalid ang format.");
1234 case 6: QMessageBox::information(this,"SnarkInput","Error!\n"
1235 "Invalid den(1) format.");
1242 /** Activates phantom average fields
1244 @author Bruno M. Carvalho
1246 void createwindow::activatePhantomAverageFields()
1248 if(phantomaveragebutton->isChecked()) {
1249 nave1->setEnabled(true);
1250 nave1label->setEnabled(true);
1251 nelem->setEnabled(true);
1252 nelemlabel->setEnabled(true);
1253 pixelsize->setEnabled(true);
1254 pixelsizelabel->setEnabled(true);
1258 nave1->setEnabled(false);
1259 nave1label->setEnabled(false);
1260 nelem->setEnabled(false);
1261 nelemlabel->setEnabled(false);
1262 pixelsize->setEnabled(false);
1263 pixelsizelabel->setEnabled(false);
1269 /** Activates raysum average fields
1271 @author Bruno M. Carvalho
1273 void createwindow::activateRaysumAverageFields()
1275 if(raysumaveragebutton->isChecked()) {
1276 nave2->setEnabled(true);
1277 nave2label->setEnabled(true);
1278 naper1->setEnabled(true);
1279 naper1label->setEnabled(true);
1280 naper2->setEnabled(true);
1281 naper2label->setEnabled(true);
1282 naper3->setEnabled(true);
1283 naper3label->setEnabled(true);
1284 naper4->setEnabled(true);
1285 naper4label->setEnabled(true);
1286 naper5->setEnabled(true);
1287 naper5label->setEnabled(true);
1288 naper6->setEnabled(true);
1289 naper6label->setEnabled(true);
1290 naper7->setEnabled(true);
1291 naper7label->setEnabled(true);
1292 naper8->setEnabled(true);
1293 naper8label->setEnabled(true);
1294 naper9->setEnabled(true);
1295 naper9label->setEnabled(true);
1296 naper10->setEnabled(true);
1297 naper10label->setEnabled(true);
1298 naper11->setEnabled(true);
1299 naper11label->setEnabled(true);
1300 naper12->setEnabled(true);
1301 naper12label->setEnabled(true);
1302 naper13->setEnabled(true);
1303 naper13label->setEnabled(true);
1304 geometrybuttongroup->setEnabled(true);
1305 if(! (linogrambutton->isChecked()) ) { // a little caveat
1306 raysumsbuttongroup->setEnabled(true);
1307 anglesbuttongroup->setEnabled(true);
1308 angles->setEnabled(true);
1310 measurementbuttongroup->setEnabled(true);
1311 //runbuttongroup->setEnabled(true);
1312 israysumaveragepresent=true;
1316 nave2->setEnabled(false);
1317 nave2label->setEnabled(false);
1318 naper1->setEnabled(false);
1319 naper1label->setEnabled(false);
1320 naper2->setEnabled(false);
1321 naper2label->setEnabled(false);
1322 naper3->setEnabled(false);
1323 naper3label->setEnabled(false);
1324 naper4->setEnabled(false);
1325 naper4label->setEnabled(false);
1326 naper5->setEnabled(false);
1327 naper5label->setEnabled(false);
1328 naper6->setEnabled(false);
1329 naper6label->setEnabled(false);
1330 naper7->setEnabled(false);
1331 naper7label->setEnabled(false);
1332 naper8->setEnabled(false);
1333 naper8label->setEnabled(false);
1334 naper9->setEnabled(false);
1335 naper9label->setEnabled(false);
1336 naper10->setEnabled(false);
1337 naper10label->setEnabled(false);
1338 naper11->setEnabled(false);
1339 naper11label->setEnabled(false);
1340 naper12->setEnabled(false);
1341 naper12label->setEnabled(false);
1342 naper13->setEnabled(false);
1343 naper13label->setEnabled(false);
1344 geometrybuttongroup->setEnabled(false);
1345 raysumsbuttongroup->setEnabled(false);
1346 anglesbuttongroup->setEnabled(false);
1347 angles->setEnabled(false);
1348 measurementbuttongroup->setEnabled(false);
1349 //runbuttongroup->setEnabled(false);
1350 israysumaveragepresent=false;
1356 bool createwindow::isRaysumAveragePresent()
1358 return israysumaveragepresent;
1362 /** Activates parallel fields and deactivates divergent fields
1364 @author Bruno M. Carvalho
1366 void createwindow::activateParallelFields()
1368 if(parallelbutton->isChecked()) {
1369 parallelbuttongroup->setEnabled(true);
1370 parallelbuttongroup2->setEnabled(true);
1371 divergentbuttongroup->setEnabled(false);
1372 sourcetoorigin->setEnabled(false);
1373 sourcetooriginlabel->setEnabled(false);
1374 sourcetodetector->setEnabled(false);
1375 sourcetodetectorlabel->setEnabled(false);
1376 activate__6_3__6_4__6_5( true );
1380 parallelbuttongroup->setEnabled(false);
1381 parallelbuttongroup2->setEnabled(false);
1386 /** Activates divergent fields and deactivates parallel fields
1388 @author Bruno M. Carvalho
1390 void createwindow::activateDivergentFields()
1392 if(divergentbutton->isChecked()) {
1393 divergentbuttongroup->setEnabled(true);
1394 sourcetoorigin->setEnabled(true);
1395 sourcetooriginlabel->setEnabled(true);
1396 sourcetodetector->setEnabled(true);
1397 sourcetodetectorlabel->setEnabled(true);
1398 parallelbuttongroup->setEnabled(false);
1399 parallelbuttongroup2->setEnabled(false);
1400 activate__6_3__6_4__6_5( true );
1404 divergentbuttongroup->setEnabled(false);
1405 sourcetoorigin->setEnabled(false);
1406 sourcetooriginlabel->setEnabled(false);
1407 sourcetodetector->setEnabled(false);
1408 sourcetodetectorlabel->setEnabled(false);
1411 } // --createwindow::activateDivergentFields()
1414 @param enable, if false, will turn these off, on if true */
1415 void createwindow::activate__6_3__6_4__6_5(bool enable) {
1416 raysumsbuttongroup->setEnabled ( enable );
1417 anglesbuttongroup->setEnabled ( enable );
1418 angles->setEnabled( enable );
1421 /** Deactivates divergent fields as well as parallel fields
1422 also deactivates everything below LINOGRAM
1423 @author Deniz Sarioz
1425 void createwindow::activateLinogramFields() {
1426 if(linogrambutton->isChecked()) {
1427 parallelbuttongroup->setEnabled(false); // hate on parallel
1428 parallelbuttongroup2->setEnabled(false);
1430 divergentbuttongroup->setEnabled(false); // hate on divergent
1431 sourcetoorigin->setEnabled(false);
1432 sourcetooriginlabel->setEnabled(false);
1433 sourcetodetector->setEnabled(false);
1434 sourcetodetectorlabel->setEnabled(false);
1436 activate__6_3__6_4__6_5( false );
1438 activate__6_3__6_4__6_5( true );
1441 } // --createwindow::activateLinogramFields()
1443 /** Activates user fields and deactivates program fields
1445 @author Bruno M. Carvalho
1447 void createwindow::activateUserFields()
1449 if(userbutton->isChecked()) {
1450 userrays->setEnabled(true);
1451 userrayslabel->setEnabled(true);
1452 raysumsnelem->setEnabled(false);
1453 raysumsnelemlabel->setEnabled(false);
1454 raysumspixelsize->setEnabled(false);
1455 raysumspixelsizelabel->setEnabled(false);
1459 userrays->setEnabled(false);
1460 userrayslabel->setEnabled(false);
1463 } // --createwindow::activateUserFields()
1465 /** Activates program fields and deactivates user fields
1467 @author Bruno M. Carvalho
1469 void createwindow::activateProgramFields()
1471 if(programbutton->isChecked()) {
1472 raysumsnelem->setEnabled(true);
1473 raysumsnelemlabel->setEnabled(true);
1474 raysumspixelsize->setEnabled(true);
1475 raysumspixelsizelabel->setEnabled(true);
1476 userrays->setEnabled(false);
1477 userrayslabel->setEnabled(false);
1481 raysumsnelem->setEnabled(false);
1482 raysumsnelemlabel->setEnabled(false);
1483 raysumspixelsize->setEnabled(false);
1484 raysumspixelsizelabel->setEnabled(false);
1487 } // --createwindow::activateProgramFields()
1489 /** Activates equal spacing fields
1491 @author Bruno M. Carvalho
1493 void createwindow::activateEqualSpacingFields()
1495 if(equalspacingbutton->isChecked()) {
1496 firstangle->setEnabled(true);
1497 firstanglelabel->setEnabled(true);
1498 lastangle->setEnabled(true);
1499 lastanglelabel->setEnabled(true);
1500 angles->setEnabled(false);
1504 firstangle->setEnabled(false);
1505 firstanglelabel->setEnabled(false);
1506 lastangle->setEnabled(false);
1507 lastanglelabel->setEnabled(false);
1508 angles->setEnabled(true);
1511 } // --createwindow::activateEqualSpacingFields()
1513 /** Deactivates equal spacing fields
1515 @author Bruno M. Carvalho
1517 void createwindow::deactivateEqualSpacingFields()
1519 firstangle->setEnabled(false);
1520 firstanglelabel->setEnabled(false);
1521 lastangle->setEnabled(false);
1522 lastanglelabel->setEnabled(false);
1523 // if(linobutton->isChecked())
1524 // angles->setEnabled(false);
1526 // if(nonebutton->isChecked())
1527 angles->setEnabled(true);
1529 } // --createwindow::deactivateEqualSpacingFields()
1531 /** Activates noisy fields
1533 @author Bruno M. Carvalho
1535 void createwindow::activateNoisyFields()
1537 if(noisybutton->isChecked()) {
1538 noisyframe->setEnabled(true);
1539 quantumbutton->setChecked(true);
1540 quantumbutton->setEnabled(true);
1541 quanmn->setEnabled(true);
1542 quanmnlabel->setEnabled(true);
1543 quancm->setEnabled(true);
1544 quancmlabel->setEnabled(true);
1545 calibrationlabel->setEnabled(true);
1546 quanin->setEnabled(true);
1547 quaninlabel->setEnabled(true);
1548 seedlabel->setEnabled(true);
1549 seed->setEnabled(true);
1550 seedlabel1->setEnabled(true);
1554 noisyframe->setEnabled(false);
1557 } // --createwindow::activateNoisyFields()
1559 /** Deactivates noisy fields
1561 @author Bruno M. Carvalho
1563 void createwindow::deactivateNoisyFields()
1565 noisyframe->setEnabled(false);
1566 seedlabel->setEnabled(false);
1567 seed->setEnabled(false);
1568 seedlabel1->setEnabled(false);
1570 } // --createwindow::deactivateNoisyFields()
1572 /** Activates quantum fields and deactivates scatter, additive and
1573 multiplicative fields
1575 @author Bruno M. Carvalho
1577 void createwindow::activateQuantumFields()
1579 if(quantumbutton->isChecked()) {
1580 quanmn->setEnabled(true);
1581 quanmnlabel->setEnabled(true);
1582 quancm->setEnabled(true);
1583 quancmlabel->setEnabled(true);
1584 calibrationlabel->setEnabled(true);
1585 quanin->setEnabled(true);
1586 quaninlabel->setEnabled(true);
1587 seed->setEnabled(true);
1588 seedlabel->setEnabled(true);
1589 seedlabel1->setEnabled(true);
1593 quanmn->setEnabled(false);
1594 quanmnlabel->setEnabled(false);
1595 quancm->setEnabled(false);
1596 quancmlabel->setEnabled(false);
1597 calibrationlabel->setEnabled(false);
1598 quanin->setEnabled(false);
1599 quaninlabel->setEnabled(false);
1600 if(!additivebutton->isChecked() && !multiplicativebutton->isChecked()) {
1601 seed->setEnabled(false);
1602 seedlabel->setEnabled(false);
1603 seedlabel1->setEnabled(false);
1607 } // --createwindow::activateQuantumFields()
1609 /** Activates scatter fields and deactivates quantum, additive and
1610 multiplicative fields
1612 @author Bruno M. Carvalho
1614 void createwindow::activateScatterFields()
1616 if(scatterbutton->isChecked()) {
1617 sctnpk->setEnabled(true);
1618 sctnpklabel->setEnabled(true);
1619 sctnwd->setEnabled(true);
1620 sctnwdlabel->setEnabled(true);
1624 sctnpk->setEnabled(false);
1625 sctnpklabel->setEnabled(false);
1626 sctnwd->setEnabled(false);
1627 sctnwdlabel->setEnabled(false);
1630 } // --createwindow::activateScatterFields()
1632 /** Activates additive fields and deactivates quantum, scatter and
1633 multiplicative fields
1635 @author Bruno M. Carvalho
1637 void createwindow::activateAdditiveFields()
1639 if(additivebutton->isChecked()) {
1640 addnmn->setEnabled(true);
1641 addnmnlabel->setEnabled(true);
1642 addnsd->setEnabled(true);
1643 addnsdlabel->setEnabled(true);
1644 seed->setEnabled(true);
1645 seedlabel->setEnabled(true);
1646 seedlabel1->setEnabled(true);
1650 addnmn->setEnabled(false);
1651 addnmnlabel->setEnabled(false);
1652 addnsd->setEnabled(false);
1653 addnsdlabel->setEnabled(false);
1654 if(!quantumbutton->isChecked() && !multiplicativebutton->isChecked()) {
1655 seed->setEnabled(false);
1656 seedlabel->setEnabled(false);
1657 seedlabel1->setEnabled(false);
1661 } // --createwindow::activateAdditiveFields()
1663 /** Activates multiplicative fields and deactivates quantum, scatter and
1666 @author Bruno M. Carvalho
1668 void createwindow::activateMultiplicativeFields()
1670 if(multiplicativebutton->isChecked()) {
1671 multnmn->setEnabled(true);
1672 multnmnlabel->setEnabled(true);
1673 multnsd->setEnabled(true);
1674 multnsdlabel->setEnabled(true);
1675 seed->setEnabled(true);
1676 seedlabel->setEnabled(true);
1677 seedlabel1->setEnabled(true);
1681 multnmn->setEnabled(false);
1682 multnmnlabel->setEnabled(false);
1683 multnsd->setEnabled(false);
1684 multnsdlabel->setEnabled(false);
1685 if(!quantumbutton->isChecked() && !additivebutton->isChecked()) {
1686 seed->setEnabled(false);
1687 seedlabel->setEnabled(false);
1688 seedlabel1->setEnabled(false);
1692 } // --createwindow::activateMultiplicativeFields()
1694 /** Activates OK Button if the minimum information for create command is present
1696 @author Bruno M. Carvalho
1698 void createwindow::activateOKButton()
1703 if(!strcmp((const char *)idheader->text(),""))
1705 if(monochromaticbutton->isChecked()) {
1706 en=strtoi((const char *)energy->text());
1711 en=strtoi((const char *)nergy->text());
1715 if(raysumaveragebutton->isChecked() && (! ( linogrambutton->isChecked() ) ) ) {
1716 ds=strtof((const char *)detectorspacing->text().lower());
1719 pn=strtoi((const char *)prjnum->text());
1724 okbutton->setEnabled(true);
1726 okbutton->setEnabled(false);
1728 } // --createwindow::activateOKButton()
1731 /** Returns a string for set 1 of CREATE input sequence
1733 @return indentifying header
1734 @author Bruno M. Carvalho
1736 QString createwindow::getOutput1()
1740 output.sprintf("CREATE\n");
1741 output+=idheader->text();
1742 //output.append("\n");
1744 } // --createwindow::getOutput1()
1746 /** Returns a string for set 2 of CREATE input sequence
1748 @return energy spectrum
1749 @author Bruno M. Carvalho
1751 QString createwindow::getOutput2()
1755 output.sprintf("SPECTRUM ");
1756 if(monochromaticbutton->isChecked()) {
1757 output.append("MONOCHROMATIC ");
1758 output+=energy->text();
1759 //output.append("\n");
1762 if(polychromaticbutton->isChecked()) {
1763 output.append("POLYCHROMATIC ");
1764 output+=nergy->text();
1765 output.append("\n");
1766 output+=energy1->text();
1768 output+=percent1->text();
1770 output+=energy2->text();
1772 output+=percent2->text();
1774 output+=energy3->text();
1776 output+=percent3->text();
1778 output+=energy4->text();
1780 output+=percent4->text();
1782 output+=energy5->text();
1784 output+=percent5->text();
1786 output+=energy6->text();
1788 output+=percent6->text();
1790 output+=energy7->text();
1792 output+=percent7->text();
1793 //output.append("\n");
1796 } // --createwindow::getOutput2()
1798 /** Returns a string for set 3 of CREATE input sequence
1800 @return elemental objects
1801 @author Bruno M. Carvalho
1802 @notes slight bug (91-related) fix by Deniz
1804 QString createwindow::getOutput3()
1808 output.sprintf("OBJECTS\n");
1809 output+=objectsdescription->text(); // which might already have a newline
1810 if(!(output.endsWith( "\n" ))) {
1811 output.append("\n");
1813 output.append("LAST ");
1814 output+=scale->text();
1815 //output.append("\n");
1817 /* jk 06/13/2008 added variabled to reflect tissue variabilit in snark14*/
1819 output+=seedvar->text();
1821 output+=var->text();
1824 } // --createwindow::getOutput3()
1826 /** Returns a string for set 4 of CREATE input sequence
1828 @return phantom generation
1829 @author Bruno M. Carvalho
1831 QString createwindow::getOutput4()
1835 output.sprintf("PHANTOM ");
1836 if(phantomaveragebutton->isChecked()) {
1837 output.append("AVERAGE ");
1838 output+=nave1->text();
1839 output.append("\n");
1840 output+=nelem->text();
1842 output+=pixelsize->text();
1844 //output.append("\n");
1846 } // --createwindow::getOutput4()
1848 /** Returns a string for set 5 of CREATE input sequence
1850 @return raysum generation
1851 @author Bruno M. Carvalho
1853 QString createwindow::getOutput5()
1857 output.sprintf("RAYSUM ");
1858 if(raysumaveragebutton->isChecked()) {
1859 output.append("AVERAGE ");
1860 output+=nave2->text();
1861 output.append("\n");
1862 output+=naper1->text();
1864 output+=naper2->text();
1866 output+=naper3->text();
1868 output+=naper4->text();
1870 output+=naper5->text();
1872 output+=naper6->text();
1874 output+=naper7->text();
1876 output+=naper8->text();
1878 output+=naper9->text();
1880 output+=naper10->text();
1882 output+=naper11->text();
1884 output+=naper12->text();
1886 output+=naper13->text();
1889 //output.append("\n");
1891 } // --createwindow::getOutput5()
1893 /** Returns a string for set 6 of CREATE input sequence
1895 @return projection geometry specification
1896 @author Bruno M. Carvalho
1898 QString createwindow::getOutput6()
1902 if(israysumaveragepresent) {
1903 output.sprintf("GEOMETRY\n");
1904 if(parallelbutton->isChecked()) {
1905 output.append("PARALLEL ");
1906 if(uniformbutton->isChecked()) {
1907 output.append("UNIFORM ");
1909 if(variablebutton->isChecked()) {
1910 output.append("VARIABLE ");
1913 if(stripbutton->isChecked()) {
1914 output.append("STRIP ");
1916 if(linebutton->isChecked()) {
1917 output.append("LINE ");
1921 if(divergentbutton->isChecked()) {
1922 output.append("DIVERGENT ");
1923 if(arcbutton->isChecked()) {
1924 output.append("ARC ");
1926 if(tangentbutton->isChecked()) {
1927 output.append("TANGENT ");
1930 output+=sourcetoorigin->text();
1932 output+=sourcetodetector->text();
1934 if(linogrambutton->isChecked()) {
1935 output.append("LINOGRAM ");
1941 output.append("\n");
1942 output.append("RAYS ");
1943 if(userbutton->isChecked()) {
1944 output.append("USER ");
1945 output+=userrays->text();
1948 if(programbutton->isChecked()) {
1949 output.append("PROGRAM ");
1950 output+=raysumsnelem->text();
1952 output+=raysumspixelsize->text();
1956 output+=detectorspacing->text();
1957 output.append("\n");
1958 output.append("ANGLES ");
1959 output+=prjnum->text();
1961 // if(linobutton->isChecked()) {
1962 // output.append("LINO ");
1963 //output.append("\n");
1966 if(equalspacingbutton->isChecked()) {
1967 output.append("EQUAL SPACING ");
1968 output.append("\n");
1969 output+=firstangle->text();
1971 output+=lastangle->text();
1972 //output.append("\n");
1974 output.append("\n");
1975 output+=angles->text();
1976 //output.append("\n");
1980 } // --createwindow::getOutput6()
1983 /** Returns a string for set 7 of CREATE input sequence
1985 @return measurement statistics
1986 @author Bruno M. Carvalho
1988 QString createwindow::getOutput7()
1992 if(israysumaveragepresent) {
1993 output.sprintf("MEASUREMENT ");
1994 if(perfectbutton->isChecked()) {
1995 output.append("PERFECT ");
1996 output.append("\n");
1999 if(noisybutton->isChecked()) {
2000 output.append("NOISY ");
2001 output.append("\n");
2002 if(quantumbutton->isChecked()) {
2003 output.append("QUANTUM ");
2004 output+=quanmn->text();
2006 output+=quancm->text();
2008 t.sprintf("CALIBRATION %d \n",quanin->currentItem()+1);
2010 output.append("SEED ");
2011 output+=seed->text();
2012 output.append("\n");
2015 if(scatterbutton->isChecked()) {
2016 output.append("SCATTER ");
2017 output+=sctnpk->text();
2019 output+=sctnwd->text();
2020 output.append("\n");
2023 if(additivebutton->isChecked()) {
2024 output.append("ADDITIVE ");
2025 output+=addnmn->text();
2027 output+=addnsd->text();
2028 output.append("\n");
2029 output.append("SEED ");
2030 output+=seed->text();
2031 output.append("\n");
2034 if(multiplicativebutton->isChecked()) {
2035 output.append("MULTIPLICATIVE ");
2036 output+=multnmn->text();
2038 output+=multnsd->text();
2039 output.append("\n");
2040 output.append("SEED ");
2041 output+=seed->text();
2042 output.append("\n");
2045 output.append("BACKGROUND ");
2046 output+=backgr1->text();
2048 if(polychromaticbutton->isChecked()) {
2049 output+=backgr2->text();
2051 output+=backgr3->text();
2053 output+=backgr4->text();
2055 output+=backgr5->text();
2057 output+=backgr6->text();
2059 output+=backgr7->text();
2062 //output.append("\n");
2064 } // --createwindow::getOutput7()
2066 /** Returns a string for set 8 of CREATE input sequence
2068 @return run descriptors
2069 @author Bruno M. Carvalho
2071 QString createwindow::getOutput8()
2075 if(israysumaveragepresent) {
2076 output.sprintf("RUN ");
2077 //jk 6/14/2008 removed since snark14 has no file12 anytmore
2078 /*if(savebutton->isChecked()) {
2079 output.append("SAVE ");
2082 if(modifybutton->isChecked()) {
2083 output.append("MODIFY ");
2087 //output.append("\n");
2089 } // --createwindow::getOutput8()
2091 void createwindow::checkValues()
2093 int f=0,en,ne,enes[7],percs[7],sump,i,nv1,nlm,nv2,sv;
2094 int np1,np2,np3,np4,np5,np6,np7,np8,np9,np10,np11,np12,np13,npsum=0;
2095 int usr,pnlm,pn,sed;
2096 float sca,pxls,stoo,stod,ppxls,decs,fa,la,qm,qc,sw,sp,am,as,mm,ms,vrb;
2097 float b1,b2,b3,b4,b5,b6,b7;
2099 /* Consistency check for header/spectrum section */
2101 if(monochromaticbutton->isChecked()) {
2102 en=strtoi((const char *)energy->text());
2109 if(polychromaticbutton->isChecked()) {
2110 ne=strtoi((const char *)nergy->text());
2118 case 7: enes[6]=strtoi((const char *)energy7->text());
2124 percs[6]=strtoi((const char *)percent7->text());
2130 case 6: enes[5]=strtoi((const char *)energy6->text());
2136 percs[5]=strtoi((const char *)percent6->text());
2142 case 5: enes[4]=strtoi((const char *)energy5->text());
2148 percs[4]=strtoi((const char *)percent5->text());
2154 case 4: enes[3]=strtoi((const char *)energy4->text());
2160 percs[3]=strtoi((const char *)percent4->text());
2166 case 3: enes[2]=strtoi((const char *)energy3->text());
2172 percs[2]=strtoi((const char *)percent3->text());
2178 case 2: enes[1]=strtoi((const char *)energy2->text());
2184 percs[1]=strtoi((const char *)percent2->text());
2190 case 1: enes[0]=strtoi((const char *)energy1->text());
2196 percs[0]=strtoi((const char *)percent1->text());
2211 /* Consistency check for objects section */
2212 /* falta object descriptions */
2213 sca=strtof((const char *)scale->text().lower());
2218 /* jk 06/14/2008 added check for LAST line*/
2219 sv = strtoi((const char *)seedvar->text());
2222 vrb = strtof((const char *)var->text());
2224 ; /* this is fine, both seed and var are not there so no variability*/
2226 f=55; /*seed has to have a value if var has a value*/
2230 vrb = strtof((const char *)var->text());
2232 f=57; /*var has to have a value if seed has a value*/
2234 ; /* this is fine, both seed and var have a value*/
2236 /* RD 09/21/2012 added check for SEED Bug 274*/
2240 /* Consistency check for phantom/raysum section */
2242 if(phantomaveragebutton->isChecked()) {
2243 nv1=strtoi((const char *)nave1->text());
2246 if(nv1<1 || !(nv1%2))
2248 nlm=strtoi((const char *)nelem->text());
2251 if(nlm<1 || !(nlm%2))
2253 pxls=strtof((const char *)pixelsize->text().lower());
2259 if(raysumaveragebutton->isChecked()) {
2260 nv2=strtoi((const char *)nave2->text());
2263 if(nv2<1 || !(nv2%2) || nv2>13)
2267 case 13: np13=strtoi((const char *)naper13->text());
2270 np12=strtoi((const char *)naper12->text());
2273 if(np12<0 || np13<0)
2276 case 11: np11=strtoi((const char *)naper11->text());
2279 np10=strtoi((const char *)naper10->text());
2282 if(np10<0 || np11<0)
2285 case 9: np9=strtoi((const char *)naper9->text());
2288 np8=strtoi((const char *)naper8->text());
2294 case 7: np7=strtoi((const char *)naper7->text());
2297 np6=strtoi((const char *)naper6->text());
2303 case 5: np5=strtoi((const char *)naper5->text());
2306 np4=strtoi((const char *)naper4->text());
2312 case 3: np3=strtoi((const char *)naper3->text());
2315 np2=strtoi((const char *)naper2->text());
2321 case 1: np1=strtoi((const char *)naper1->text());
2333 /* Consistency check for geometry/raysums section */
2334 // if linogram, don't check anything in this section!
2335 if (! (linogrambutton->isChecked() ) ) {
2336 if(divergentbutton->isChecked()) {
2337 stoo=strtof((const char *)sourcetoorigin->text().lower());
2340 stod=strtof((const char *)sourcetodetector->text().lower());
2348 if(userbutton->isChecked()) {
2349 usr=strtoi((const char *)userrays->text());
2352 if(usr<1 || !(usr%2))
2355 if(programbutton->isChecked()) {
2356 pnlm=strtoi((const char *)raysumsnelem->text());
2359 if(pnlm<1 || !(pnlm%2))
2361 ppxls=strtof((const char *)raysumspixelsize->text().lower());
2367 if(divergentbutton->isChecked() && pnlm*ppxls*M_SQRT1_2 >= stoo)
2370 decs=strtof((const char *)detectorspacing->text().lower());
2375 if(divergentbutton->isChecked() && userbutton->isChecked())
2376 if((usr-1)*decs>=stod*M_PI)
2378 pn=strtoi((const char *)prjnum->text());
2383 // if(linobutton->isChecked())
2386 if(equalspacingbutton->isChecked()) {
2387 fa=strtof((const char *)firstangle->text().lower());
2390 la=strtof((const char *)lastangle->text().lower());
2396 if(nonebutton->isChecked()) {
2397 QString angst = angles->text();
2398 //Splits angst into strings wherever the regular expression sep occurs, and return the list of those strings.
2399 // If allowEmptyEntries is TRUE, a null string is inserted in the list wherever the separator matches twice without intervening text.
2400 QRegExp sep("\\s+");
2401 // whitespace. the first '\' is for escaping '\'
2402 QStringList angleStringList = QStringList::split(sep, angst);
2405 for ( QStringList::Iterator it = angleStringList.begin();
2406 it != angleStringList.end(); ++it ) {
2407 // check (*it) is really a float
2408 // double QString::toDouble ( bool * ok = 0 ) const
2410 (*it).toDouble(&ok);
2414 // pn is already numerified value in prjnum field
2415 if(angleCount != pn) f=39;
2416 } // --if nonebutton checked
2417 } // --if linogrambutton not checked
2419 /* Consistency check for measurement/run section */
2421 if(noisybutton->isChecked()) {
2422 if(scatterbutton->isChecked()) {
2423 sp=strtof((const char *)sctnpk->text().lower());
2428 sw=strtof((const char *)sctnwd->text().lower());
2435 if(quantumbutton->isChecked() || additivebutton->isChecked() || multiplicativebutton->isChecked()) {
2436 sed=strtoi((const char *)seed->text());
2440 if(quantumbutton->isChecked()) {
2441 qm=strtof((const char *)quanmn->text().lower());
2444 qc=strtof((const char *)quancm->text().lower());
2450 if(additivebutton->isChecked()) {
2451 am=strtof((const char *)addnmn->text().lower());
2454 as=strtof((const char *)addnsd->text().lower());
2458 if(multiplicativebutton->isChecked()) {
2459 mm=strtof((const char *)multnmn->text().lower());
2464 ms=strtof((const char *)multnsd->text().lower());
2469 if(!quantumbutton->isChecked() && !scatterbutton->isChecked() && !additivebutton->isChecked() && !multiplicativebutton->isChecked())
2473 case 7: b7=strtof((const char *)backgr7->text().lower());
2476 case 6: b6=strtof((const char *)backgr6->text().lower());
2479 case 5: b5=strtof((const char *)backgr5->text().lower());
2482 case 4: b4=strtof((const char *)backgr4->text().lower());
2485 case 3: b3=strtof((const char *)backgr3->text().lower());
2488 case 2: b2=strtof((const char *)backgr2->text().lower());
2491 case 1: b1=strtof((const char *)backgr1->text().lower());
2500 case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
2501 "Invalid energy format.");
2502 tabwidget1->setCurrentPage(0);
2505 case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
2506 "Invalid nergy format.");
2507 tabwidget1->setCurrentPage(0);
2510 case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
2511 "Invalid energy(i) format.");
2512 tabwidget1->setCurrentPage(0);
2513 energy1->setFocus();
2515 case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
2516 "Invalid percent(i) format.");
2517 tabwidget1->setCurrentPage(0);
2518 percent1->setFocus();
2520 case 5: QMessageBox::information(this,"SnarkInput","Error!\n"
2521 "energy must be greater than 0.");
2522 tabwidget1->setCurrentPage(0);
2525 case 6: QMessageBox::information(this,"SnarkInput","Error!\n"
2526 "nergy must be greater or equal to 1 and less or equal to 7.");
2527 tabwidget1->setCurrentPage(0);
2530 case 7: QMessageBox::information(this,"SnarkInput","Error!\n"
2531 "percent(i) must be nonnegative.");
2532 tabwidget1->setCurrentPage(0);
2533 percent1->setFocus();
2535 case 8: QMessageBox::information(this,"SnarkInput","Error!\n"
2536 "percent(1) ... percent(nergy) must add to 100.");
2537 tabwidget1->setCurrentPage(0);
2538 percent1->setFocus();
2540 case 9: QMessageBox::information(this,"SnarkInput","Error!\n"
2541 "Invalid scale format.");
2542 tabwidget1->setCurrentPage(1);
2545 case 10: QMessageBox::information(this,"SnarkInput","Error!\n"
2546 "scale must be positive.");
2547 tabwidget1->setCurrentPage(1);
2550 case 11: QMessageBox::information(this,"SnarkInput","Error!\n"
2551 "Invalid nave1 format.");
2552 tabwidget1->setCurrentPage(2);
2555 case 12: QMessageBox::information(this,"SnarkInput","Error!\n"
2556 "Invalid nelem format.");
2557 tabwidget1->setCurrentPage(2);
2560 case 13: QMessageBox::information(this,"SnarkInput","Error!\n"
2561 "Invalid pixel_size format.");
2562 tabwidget1->setCurrentPage(2);
2563 pixelsize->setFocus();
2565 case 14: QMessageBox::information(this,"SnarkInput","Error!\n"
2566 "Invalid nave2 format.");
2567 tabwidget1->setCurrentPage(2);
2570 case 15: QMessageBox::information(this,"SnarkInput","Error!\n"
2571 "Invalid naper(i) format.");
2572 tabwidget1->setCurrentPage(2);
2575 case 16: QMessageBox::information(this,"SnarkInput","Error!\n"
2576 "nave1 must be positive and odd.");
2577 tabwidget1->setCurrentPage(2);
2580 case 17: QMessageBox::information(this,"SnarkInput","Error!\n"
2581 "nelem must be positive and odd.");
2582 tabwidget1->setCurrentPage(2);
2585 case 18: QMessageBox::information(this,"SnarkInput","Error!\n"
2586 "nave2 must be positive, odd and smaller than 14.");
2587 tabwidget1->setCurrentPage(2);
2590 case 19: QMessageBox::information(this,"SnarkInput","Error!\n"
2591 "pixel_size must be positive.");
2592 tabwidget1->setCurrentPage(2);
2593 pixelsize->setFocus();
2595 case 20: QMessageBox::information(this,"SnarkInput","Error!\n"
2596 "naper(i) must be nonnegative and the\n"
2597 "sum of naper(i) must be positive.");
2598 tabwidget1->setCurrentPage(2);
2601 case 21: QMessageBox::information(this,"SnarkInput","Error!\n"
2602 "Invalid source_to_origin format.");
2603 tabwidget1->setCurrentPage(3);
2604 sourcetoorigin->setFocus();
2606 case 22: QMessageBox::information(this,"SnarkInput","Error!\n"
2607 "Invalid source_to_detector format.");
2608 tabwidget1->setCurrentPage(3);
2609 sourcetodetector->setFocus();
2611 case 23: QMessageBox::information(this,"SnarkInput","Error!\n"
2612 "Invalid user_rays format.");
2613 tabwidget1->setCurrentPage(3);
2614 userrays->setFocus();
2616 case 24: QMessageBox::information(this,"SnarkInput","Error!\n"
2617 "Invalid nelem format.");
2618 tabwidget1->setCurrentPage(3);
2619 raysumsnelem->setFocus();
2621 case 25: QMessageBox::information(this,"SnarkInput","Error!\n"
2622 "Invalid pixel_size format.");
2623 tabwidget1->setCurrentPage(3);
2624 raysumspixelsize->setFocus();
2626 case 26: QMessageBox::information(this,"SnarkInput","Error!\n"
2627 "Invalid detector_spacing format.");
2628 tabwidget1->setCurrentPage(3);
2629 detectorspacing->setFocus();
2631 case 27: QMessageBox::information(this,"SnarkInput","Error!\n"
2632 "Invalid prjnum format.");
2633 tabwidget1->setCurrentPage(3);
2636 case 28: QMessageBox::information(this,"SnarkInput","Error!\n"
2637 "Invalid first_angle format.");
2638 tabwidget1->setCurrentPage(3);
2639 firstangle->setFocus();
2641 case 29: QMessageBox::information(this,"SnarkInput","Error!\n"
2642 "Invalid last_angle format.");
2643 tabwidget1->setCurrentPage(3);
2644 lastangle->setFocus();
2646 case 30: QMessageBox::information(this,"SnarkInput","Error!\n"
2647 "source_to_origin must be positive.");
2648 tabwidget1->setCurrentPage(3);
2649 sourcetoorigin->setFocus();
2651 case 31: QMessageBox::information(this,"SnarkInput","Error!\n"
2652 "source_to_detector must be positive.");
2653 tabwidget1->setCurrentPage(3);
2654 sourcetodetector->setFocus();
2656 case 32: QMessageBox::information(this,"SnarkInput","Error!\n"
2657 "pixel_size must be positive.");
2658 tabwidget1->setCurrentPage(3);
2659 raysumspixelsize->setFocus();
2661 case 33: QMessageBox::information(this,"SnarkInput","Error!\n"
2662 "detector_spacing must be equal or greater than 0.");
2663 tabwidget1->setCurrentPage(3);
2664 detectorspacing->setFocus();
2666 case 34: QMessageBox::information(this,"SnarkInput","Error!\n"
2667 "user_rays must be positive and odd.");
2668 tabwidget1->setCurrentPage(3);
2669 userrays->setFocus();
2671 case 35: QMessageBox::information(this,"SnarkInput","Error!\n"
2672 "nelem must be positive and odd.");
2673 tabwidget1->setCurrentPage(3);
2674 raysumsnelem->setFocus();
2676 case 36: QMessageBox::information(this,"SnarkInput","Error!\n"
2677 "projnum must be positive, and greater than 1\n"
2678 "if LINO or EQUAL_SPACING is selected.");
2679 tabwidget1->setCurrentPage(3);
2682 case 37: QMessageBox::information(this,"SnarkInput","Error!\n"
2683 "nelem * pixel_size/sqrt(2) must be smaller than source_to_detector.");
2684 tabwidget1->setCurrentPage(3);
2685 raysumsnelem->setFocus();
2687 case 38: QMessageBox::information(this,"SnarkInput","Error!\n"
2688 "(user_rays-1) * detector_spacing must be smaller than source_to_detector * PI.");
2689 tabwidget1->setCurrentPage(3);
2690 detectorspacing->setFocus();
2692 // case 39 is never reached, since this was only half implemented.
2693 case 39: QMessageBox::information(this,"SnarkInput","Error!\n"
2694 "number of angles must be equal to prjnum and each angle must be a floating-point number.");
2695 tabwidget1->setCurrentPage(3);
2698 case 40: QMessageBox::information(this,"SnarkInput","Error!\n"
2699 "Invalid quanmn format.");
2700 tabwidget1->setCurrentPage(4);
2703 case 41: QMessageBox::information(this,"SnarkInput","Error!\n"
2704 "Invalid quancm format.");
2705 tabwidget1->setCurrentPage(4);
2708 case 42: QMessageBox::information(this,"SnarkInput","Error!\n"
2709 "Invalid sctnpk format.");
2710 tabwidget1->setCurrentPage(4);
2713 case 43: QMessageBox::information(this,"SnarkInput","Error!\n"
2714 "Invalid sctnwd format.");
2715 tabwidget1->setCurrentPage(4);
2718 case 44: QMessageBox::information(this,"SnarkInput","Error!\n"
2719 "Invalid addnmn format.");
2720 tabwidget1->setCurrentPage(4);
2723 case 45: QMessageBox::information(this,"SnarkInput","Error!\n"
2724 "Invalid addnsd format.");
2725 tabwidget1->setCurrentPage(4);
2728 case 46: QMessageBox::information(this,"SnarkInput","Error!\n"
2729 "Invalid multnmn format.");
2730 tabwidget1->setCurrentPage(4);
2731 multnmn->setFocus();
2733 case 47: QMessageBox::information(this,"SnarkInput","Error!\n"
2734 "Invalid multnsd format.");
2735 tabwidget1->setCurrentPage(4);
2736 multnsd->setFocus();
2738 case 48: QMessageBox::information(this,"SnarkInput","Error!\n"
2739 "Invalid seed format.");
2740 tabwidget1->setCurrentPage(4);
2743 case 49: QMessageBox::information(this,"SnarkInput","Error!\n"
2744 "Invalid backgr(i) format.");
2745 tabwidget1->setCurrentPage(4);
2746 backgr1->setFocus();
2748 case 50: QMessageBox::information(this,"SnarkInput","Error!\n"
2749 "quancm must be positive.");
2750 tabwidget1->setCurrentPage(4);
2753 case 51: QMessageBox::information(this,"SnarkInput","Error!\n"
2754 "sctnpk must be positive");
2755 tabwidget1->setCurrentPage(4);
2758 case 52: QMessageBox::information(this,"SnarkInput","Error!\n"
2759 "multnmn must be nonzero.");
2760 tabwidget1->setCurrentPage(4);
2761 multnmn->setFocus();
2763 case 53: QMessageBox::information(this,"SnarkInput","Error!\n"
2764 "sctnwd must be greater than detector_spacing.");
2765 tabwidget1->setCurrentPage(4);
2768 case 54: QMessageBox::information(this,"SnarkInput","Error!\n"
2769 "if NOISY is selected at least one of the options\n"
2770 " QUANTUM, SCATTER, ADDITIVE OR MULTIPLICATIVE must be selected too.");
2771 tabwidget1->setCurrentPage(4);
2772 quantumbutton->setFocus();
2774 /* jk 06/14/2008 added check for LAST line*/
2775 /* RD 09/21/2012 added check for SEED and VAR separately */ // Bug 274
2776 case 55: QMessageBox::information(this,"SnarkInput","Error!\n"
2777 "Please enter a valid value for SEED");
2778 tabwidget1->setCurrentPage(1);
2781 /* RD 09/21/2012 added check for SEED*/ // Bug 274
2782 case 56: QMessageBox::information(this,"SnarkInput","Error!\n"
2783 "The length of SEED needs to be between \n"
2784 "one and nine digits");
2785 tabwidget1->setCurrentPage(1);
2788 /* RD 09/21/2012 added check for SEED and VAR separately */ // Bug 274
2789 case 57: QMessageBox::information(this,"SnarkInput","Error!\n"
2790 "Please enter a valid value for VAR");
2791 tabwidget1->setCurrentPage(1);