diff --git a/trimsp/src/Chem.pm b/trimsp/src/Chem.pm index 06dd152..b2d01a0 100644 --- a/trimsp/src/Chem.pm +++ b/trimsp/src/Chem.pm @@ -11,7 +11,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Foobar. If not, see . +# along with TrimSPGUI. If not, see . # # Copyright 2009 by Zaher Salman and the LEM Group. diff --git a/trimsp/src/TrimSPGUI/Chem.pm b/trimsp/src/TrimSPGUI/Chem.pm new file mode 120000 index 0000000..0d75d18 --- /dev/null +++ b/trimsp/src/TrimSPGUI/Chem.pm @@ -0,0 +1 @@ +../Chem.pm \ No newline at end of file diff --git a/trimsp/src/TrimSPGUI4/Chem.pm b/trimsp/src/TrimSPGUI4/Chem.pm new file mode 120000 index 0000000..0d75d18 --- /dev/null +++ b/trimsp/src/TrimSPGUI4/Chem.pm @@ -0,0 +1 @@ +../Chem.pm \ No newline at end of file diff --git a/trimsp/src/TrimSPGUI4/PQtNotes.txt b/trimsp/src/TrimSPGUI4/PQtNotes.txt new file mode 100644 index 0000000..a903eeb --- /dev/null +++ b/trimsp/src/TrimSPGUI4/PQtNotes.txt @@ -0,0 +1,5 @@ +- Change TrimSPGUI4.ui file using qt4-designer +- Compile TrimSPGUI4.ui file to generate Ui_TrimSPGUI4.pm + puic4 TrimSPGUI4.ui -o Ui_TrimSPGUI4.pm +- Edit Ui_TrimSPGUI4.pm to connect signal to slot is setupUi subroutine, e.g. + Qt::Object::connect($plotMeanAction, SIGNAL 'activated()' , $trimSPGUI4, SLOT 'PlotMean()' ); diff --git a/trimsp/src/TrimSPGUI4/TrimSP b/trimsp/src/TrimSPGUI4/TrimSP index b5f9107..203a5bc 100755 --- a/trimsp/src/TrimSPGUI4/TrimSP +++ b/trimsp/src/TrimSPGUI4/TrimSP @@ -1,6 +1,6 @@ #!/bin/bash # Copyright 2009-2013 by Zaher Salman and the LEM Group. -export TRIMBIN=$HOME/bin/trimsp7l -export PERLLIB=$HOME/LEM/simulation/trimsp/TrimSPGUI4 -perl $PERLLIB/TrimSPGUI.pl +export TRIMBIN=$HOME/bin/trimspNL +export PERLLIB=$HOME/LEM/git/simulation/trimsp/src/TrimSPGUI4 +perl $PERLLIB/TrimSP.pl diff --git a/trimsp/src/TrimSPGUI4/TrimSPGUI4-test.ui b/trimsp/src/TrimSPGUI4/TrimSPGUI4-test.ui new file mode 100644 index 0000000..546b993 --- /dev/null +++ b/trimsp/src/TrimSPGUI4/TrimSPGUI4-test.ui @@ -0,0 +1,2100 @@ + + + TrimSPGUI4 + + + + 0 + 0 + 722 + 622 + + + + + 0 + 0 + + + + TrimSP GUI + + + + icon.pngicon.png + + + + + + + 0 + + + + + + + 0 + + + + Layers + + + + + 10 + 10 + 431 + 511 + + + + Layers + + + + + 10 + 21 + 411 + 481 + + + + + + + Number of Layers + + + false + + + + + + + Select the number of the layers of your structure (maximum 7 layers). + + + 1 + + + 100 + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 240 + 20 + + + + + + + + 1 + + + 3 + + + 30 + + + + + Composition + + + + + Density [g/cm^3] + + + + + Thickness [A] + + + + + SrTiO3 + + + + + 5.12 + + + + + 1000 + + + + + + + + + + + 450 + 10 + 240 + 241 + + + + + 0 + 0 + + + + Projectile parameters + + + + + 11 + 68 + 113 + 16 + + + + Starting depth [Å] + + + false + + + + + + 11 + 45 + 134 + 16 + + + + + 0 + 0 + + + + Number of projectiles + + + false + + + + + + 151 + 21 + 80 + 20 + + + + + 0 + 0 + + + + + Muon + + + + + Li8 + + + + + B12 + + + + + H + + + + + + + 151 + 92 + 80 + 20 + + + + + 0 + 0 + + + + 10.0 + + + + + + 11 + 115 + 73 + 16 + + + + Energy [eV] + + + false + + + + + + 151 + 45 + 80 + 20 + + + + + 0 + 0 + + + + + 32767 + 32767 + + + + + + + + + + Qt::ImhDigitsOnly|Qt::ImhPreferNumbers + + + 10000 + + + + + + 11 + 21 + 58 + 16 + + + + Projectile + + + false + + + + + + 151 + 162 + 80 + 21 + + + + + 0 + 0 + + + + 0 + + + + + + 11 + 186 + 114 + 16 + + + + Angle sigma [deg] + + + false + + + + + + 151 + 186 + 80 + 20 + + + + + 0 + 0 + + + + 15 + + + + + + 11 + 209 + 86 + 16 + + + + Random seed + + + false + + + + + + 151 + 139 + 80 + 20 + + + + + 0 + 0 + + + + 450 + + + + + + 151 + 68 + 80 + 21 + + + + + 0 + 0 + + + + + 32767 + 32767 + + + + 0.0 + + + + + + 151 + 115 + 80 + 21 + + + + + 0 + 0 + + + + 2000 + + + + + + 151 + 209 + 80 + 21 + + + + + 0 + 0 + + + + 78741 + + + + + + 11 + 162 + 73 + 16 + + + + Angle [deg] + + + false + + + + + + 11 + 139 + 114 + 16 + + + + Energy sigma [eV] + + + false + + + + + + 11 + 92 + 127 + 16 + + + + Depth increment [Å] + + + false + + + + + + + 450 + 260 + 240 + 261 + + + + File Names + + + + + 10 + 20 + 221 + 100 + + + + + 0 + + + 0 + + + + + File names prefix + + + false + + + + + + + SrTiO3 + + + + + + + Save in subdirectory + + + false + + + + + + + + + ./ + + + + + + + + 0 + 0 + + + + Browse + + + + + + + + + + + 10 + 220 + 221 + 24 + + + + + 0 + 0 + + + + Qt::Horizontal + + + + + 0 + 25 + + + + Start + + + Start + + + + + + 0 + 25 + + + + Quit + + + Quit + + + + + + + + Additional Parameters + + + + + 10 + 10 + 251 + 211 + + + + Additional parameters + + + + false + + + + 10 + 170 + 63 + 25 + + + + + + + false + + + + + + 10 + 21 + 63 + 25 + + + + EF + + + false + + + + + + 183 + 45 + 52 + 26 + + + + 0 + + + 4 + + + 2 + + + + + + 75 + 147 + 52 + 25 + + + + + 0 + 0 + + + + 1.0 + + + + + + 129 + 172 + 53 + 25 + + + + IRL + + + false + + + + + + 183 + 20 + 52 + 26 + + + + 0 + + + 4 + + + 2 + + + + + + 129 + 20 + 53 + 25 + + + + KK0 + + + false + + + + + + 10 + 122 + 63 + 25 + + + + RD + + + false + + + + + + 184 + 171 + 52 + 26 + + + + 1 + + + + + + 129 + 147 + 53 + 25 + + + + IPOTR + + + false + + + + + + 183 + 145 + 52 + 26 + + + + 1 + + + 3 + + + + + + 10 + 46 + 63 + 25 + + + + ESB + + + false + + + + + + 75 + 122 + 52 + 25 + + + + + 0 + 0 + + + + 50.0 + + + + + + 10 + 147 + 63 + 25 + + + + CA + + + false + + + + + + 75 + 46 + 52 + 25 + + + + + 0 + 0 + + + + 0.0 + + + + + + 10 + 71 + 63 + 25 + + + + SHEATH + + + false + + + + + + 129 + 96 + 53 + 25 + + + + KDEE2 + + + false + + + + + + 129 + 71 + 53 + 25 + + + + KDEE1 + + + false + + + + + + 75 + 21 + 52 + 25 + + + + + 0 + 0 + + + + 0.5 + + + + + false + + + + 75 + 170 + 52 + 25 + + + + + 0 + 0 + + + + + + + + + + 183 + 95 + 52 + 26 + + + + 1 + + + 3 + + + 3 + + + + + + 75 + 96 + 52 + 26 + + + + + 0 + 0 + + + + 0.0 + + + + + + 129 + 46 + 53 + 25 + + + + KK0R + + + false + + + + + + 129 + 121 + 53 + 26 + + + + IPOT + + + false + + + + + + 183 + 120 + 52 + 26 + + + + 1 + + + 3 + + + 2 + + + + + + 10 + 96 + 63 + 26 + + + + ERC + + + false + + + + + + 75 + 71 + 52 + 25 + + + + + 0 + 0 + + + + 0.0 + + + + + + 183 + 70 + 52 + 26 + + + + 1 + + + 5 + + + 4 + + + + + + + Scans (Disbaled) + + + + + 10 + 10 + 421 + 221 + + + + Scan sequence + + + true + + + false + + + + + 10 + 20 + 401 + 191 + + + + + + + + + Scan + + + + + + + + 0 + 0 + + + + + Energy + + + + + Energy Sigma + + + + + Angle + + + + + Angle Sigma + + + + + Number of Projectiles + + + + + Thickness of layer + + + + + + + + false + + + 1 + + + 7 + + + + + + + + + List of values + + + listGroup + + + + + + + 1000,6000,10000 + + + + + + + Corresponding depth increment (optional) + + + false + + + + + + + false + + + + + + + + + + Loop + + + true + + + listGroup + + + + + + + 0 + + + 0 + + + + + From + + + false + + + + + + + + 0 + 0 + + + + 1000 + + + + + + + To + + + false + + + + + + + + 0 + 0 + + + + 28000 + + + + + + + Step + + + false + + + + + + + + 0 + 0 + + + + 1000 + + + + + + + + + + + + Configure + + + + + 10 + 31 + 671 + 101 + + + + + + + + + + 0 + 0 + + + + + 110 + 0 + + + + + 140 + 16777215 + + + + Trim.SP binary + + + + + + + + + + Browse + + + + + + + + + + + + 0 + 0 + + + + + 110 + 0 + + + + + 140 + 16777215 + + + + Trim.SP GUI path + + + + + + + + + + Browse + + + + + + + + + + + + + + + + 0 + 0 + 722 + 20 + + + + + &File + + + + + + + + + + + + + &Plot + + + + + + + + &Help + + + + + + + + + + + &Save + + + Save + + + Ctrl+S + + + true + + + + + Save &As... + + + Save As + + + + + + + + &Change Folder + + + Change Folder + + + Ctrl+C + + + + + &Quit + + + Quit + + + Ctrl+Q + + + + + + ../../.designer/backup/PlotProfiles.png../../.designer/backup/PlotProfiles.png + + + &Plot Profiles + + + &Plot Profiles + + + Ctrl+P, Ctrl+R + + + + + + ../../.designer/backup/image13../../.designer/backup/image13 + + + &Contents... + + + Contents + + + + + + + + + ../../.designer/backup/image0../../.designer/backup/image0 + + + &About + + + About + + + + + + + + false + + + false + + + true + + + + ../../.designer/backup/PlotFraction.png../../.designer/backup/PlotFraction.png + + + Plot Fractions + + + Plot Fractions + + + Ctrl+P, Ctrl+F + + + + + Start + + + &Start + + + Alt+S + + + + + &Open... + + + Open + + + Ctrl+O + + + + + Plot Mean/Stragg. + + + Ctrl+P, Ctrl+M + + + + + + tabs + projComboBox + numberProj + z0 + dz + valEnergy + sigEnergy + valAngle + sigAngle + ranSeed + fileNamePrefix + workPath + Browse + Start + Quit + parEF + parESB + parSHEATH + parERC + parRD + parCA + lineEditEmpty + parKK0 + parKK0R + parKDEE1 + parKDEE2 + parIPOT + parIPOTR + parIRL + scanSeq + radioList + scanList + scanListdz + radioLoop + scanFrom + scanTo + scanStep + + + + + Start + clicked() + TrimSPGUI4 + CollectValues() + + + 490 + 552 + + + 20 + 20 + + + + + Browse + clicked() + TrimSPGUI4 + DirectoryBrowse() + + + 689 + 427 + + + 20 + 20 + + + + + Quit + clicked() + TrimSPGUI4 + ConfirmQuit() + + + 594 + 550 + + + 20 + 20 + + + + + fileSaveAction + activated() + TrimSPGUI4 + SaveFile() + + + -1 + -1 + + + 367 + 317 + + + + + fileQuitAction + activated() + TrimSPGUI4 + close() + + + -1 + -1 + + + 367 + 317 + + + + + fileSaveAsAction + activated() + TrimSPGUI4 + SaveFileAs() + + + -1 + -1 + + + 367 + 317 + + + + + fileChangeDirAction + activated() + TrimSPGUI4 + DirectoryBrowse() + + + -1 + -1 + + + 367 + 317 + + + + + plotFractionsAction + activated() + TrimSPGUI4 + PlotFraction() + + + -1 + -1 + + + 367 + 317 + + + + + plotProfilesAction + activated() + TrimSPGUI4 + PlotProfiles() + + + -1 + -1 + + + 367 + 317 + + + + + Start + clicked() + TrimSPGUI4 + StartSequenceOne() + + + 547 + 542 + + + 721 + 568 + + + + + fileOpenAction + activated() + TrimSPGUI4 + OpenFile() + + + -1 + -1 + + + 367 + 317 + + + + + helpAboutAction + activated() + TrimSPGUI4 + helpAboutAction() + + + -1 + -1 + + + 367 + 317 + + + + + helpContentsAction + activated() + TrimSPGUI4 + helpContentsAction() + + + -1 + -1 + + + 367 + 317 + + + + + numberProj + editingFinished() + TrimSPGUI4 + test() + + + 670 + 110 + + + 721 + 129 + + + + + scanSeq + toggled(bool) + TrimSPGUI4 + ToggleScanSingle() + + + 313 + 71 + + + 721 + 323 + + + + + comboScan + currentIndexChanged(int) + TrimSPGUI4 + ToggleScanSingle() + + + 236 + 91 + + + 720 + 509 + + + + + radioList + toggled(bool) + TrimSPGUI4 + ToggleScanSingle() + + + 93 + 124 + + + 720 + 540 + + + + + radioLoop + toggled(bool) + TrimSPGUI4 + ToggleScanSingle() + + + 53 + 228 + + + 720 + 462 + + + + + scandL + valueChanged(int) + TrimSPGUI4 + ToggleScanSingle() + + + 378 + 94 + + + 717 + 237 + + + + + projComboBox + currentIndexChanged(int) + TrimSPGUI4 + ProjSmartDefaults() + + + 645 + 89 + + + 715 + 230 + + + + + TrimBinBrowse + clicked() + TrimSPGUI4 + TrimBin() + + + 648 + 107 + + + 721 + 221 + + + + + guiPathBrowse + clicked() + TrimSPGUI4 + GUIPath() + + + 625 + 162 + + + 722 + 307 + + + + + + DirectoryBrowse() + StartSequenceOne() + ToggleScanSingle() + PrepLayers() + ProjSmartDefaults() + helpContentsAction() + CollectValues() + CreateInpFile() + ConfirmQuit() + PlotProfiles() + PlotFraction() + helpAboutAction() + OpenFile() + SaveFile() + SaveFileAs() + test() + TrimBin() + GUIPath() + findDensity() + + + + + diff --git a/trimsp/src/TrimSPGUI4/TrimSPGUI4.pm b/trimsp/src/TrimSPGUI4/TrimSPGUI4.pm index efda7ff..488afaf 100644 --- a/trimsp/src/TrimSPGUI4/TrimSPGUI4.pm +++ b/trimsp/src/TrimSPGUI4/TrimSPGUI4.pm @@ -27,6 +27,7 @@ use QtCore4::slots ConfirmQuit => [], PlotProfiles => [], PlotFraction => [], + PlotMean => [], OpenFile => [], SaveFile => [], SaveFileAs => []; @@ -199,17 +200,14 @@ sub CollectValues() $All{"numLayer"}=this->{ui}->numLayer->value(); # Collect layers parameters for (my $i=1;$i<=$All{"numLayer"};$i++) { - my $LComp = "layer".$i."Comp"; - my $Lrho="layer".$i."rho"; - my $Ld="layer".$i."d"; - my $LCompAttrib = child("Qt::LineEdit",$LComp); - my $LrhoAttrib = child("Qt::LineEdit",$Lrho); - my $LdAttrib = child("Qt::LineEdit",$Ld); - $All{"$LComp"}=$LCompAttrib->text(); - $All{"$Lrho"}=$LrhoAttrib->text(); - $All{"$Ld"}=$LdAttrib->text(); + my $LComp = "L".$i."Comp"; + my $Lrho="L".$i."rho"; + my $Ld="L".$i."d"; + $All{"$LComp"}=this->{ui}->layerTable->item($i-1,0)->text(); + $All{"$Lrho"}=this->{ui}->layerTable->item($i-1,1)->text(); + $All{"$Ld"}=this->{ui}->layerTable->item($i-1,2)->text(); } - + # Collect projectile parameters $All{"projComboBox"}=this->{ui}->projComboBox->currentIndex(); $All{"numberProj"}=this->{ui}->numberProj->text(); @@ -297,28 +295,33 @@ sub CollectValues() # binary sub CreateInpFile() { -# use lib '$ENV{HOME}/Projects/TrimSPGUI/Chem'; -# push @INC, "$ENV{HOME}/Projects/TrimSPGUI"; use Chem; # The proper way I think is not to have scan sequences implimented -# here but rather call this multiple times to generate the scan. To -# achieve this, the function CreateInpFile will expect a unique +# here but rather call this multiple times to generate the scan To +# resolve this, the function CreateInpFile will expect a unique # thickness for each layer, one energy value, one energy sigma and one -# projectile number. These will be stored in keys layer1/2/3/4/5/6/7d, -# valEnergy, sigEnergy and numberProj, respectively. +# projectile number. These will be stored in keys L1/2/3/4/5/6/7d, E, +# SigE and NProj, respectively. # Chemical formulas will be parsed on the fly for each layer. However, -# I will check if all the layers have inputs for composition, -# thickness and density. If not complain and stop :) +# we will check if all the layers have inputs for composition, +# thickness and density. If not fail and crash :) # Values of Z,A as well as other needed parameters are obtained from # Chem.pm. -# This is the form of the input file: +# This is the form of the begining of the input file: my $TemplateFile= " ProjZ ProjAM valEnergy sigEnergy valAngle sigAngle parEF parESB parSHEATH parERC - numberProj ranSeed ranSeed ranSeed z0 parRD dz parCA parKK0 parKK0R parKDEE1 parKDEE2 parIPOT parIPOTR parIRL - layer1d layer2d layer3d layer4d layer5d layer6d layer7d layer1rho layer2rho layer3rho layer4rho layer5rho layer6rho layer7rho L1CK L2CK L3CK L4CK L5CK L6CK L7CK + numberProj ranSeed ranSeed ranSeed z0 parRD dz parCA parKK0 parKK0R parKDEE1 parKDEE2 parIPOT parIPOTR parIRL"; + +# Then comes the number of layers (new format) for example 4 layers: +# N_Layers=4 + $TemplateFile=$TemplateFile."\n"."N_Layers=numLayer"."\n"; + +# Then loop over the layers and for each give the following structure + my $TemplateLayer= + "L1d L1rho L1CK L1ELZ1 L1ELZ2 L1ELZ3 L1ELZ4 L1ELZ5 L1ELW1 L1ELW2 L1ELW3 L1ELW4 L1ELW5 L1ELC1 L1ELC2 L1ELC3 L1ELC4 L1ELC5 @@ -330,73 +333,7 @@ sub CreateInpFile() L1ELST13 L1ELST23 L1ELST33 L1ELST43 L1ELST53 L1ELST14 L1ELST24 L1ELST34 L1ELST44 L1ELST54 L1ELST15 L1ELST25 L1ELST35 L1ELST45 L1ELST55 - L2ELZ1 L2ELZ2 L2ELZ3 L2ELZ4 L2ELZ5 - L2ELW1 L2ELW2 L2ELW3 L2ELW4 L2ELW5 - L2ELC1 L2ELC2 L2ELC3 L2ELC4 L2ELC5 - L2ELE1 L2ELE2 L2ELE3 L2ELE4 L2ELE5 - L20301 L20302 L20303 L20304 L20305 - 0.0000 0.0000 0.0000 0.0000 0.0000 - L2ELST11 L2ELST21 L2ELST31 L2ELST41 L2ELST51 - L2ELST12 L2ELST22 L2ELST32 L2ELST42 L2ELST52 - L2ELST13 L2ELST23 L2ELST33 L2ELST43 L2ELST53 - L2ELST14 L2ELST24 L2ELST34 L2ELST44 L2ELST54 - L2ELST15 L2ELST25 L2ELST35 L2ELST45 L2ELST55 - L3ELZ1 L3ELZ2 L3ELZ3 L3ELZ4 L3ELZ5 - L3ELW1 L3ELW2 L3ELW3 L3ELW4 L3ELW5 - L3ELC1 L3ELC2 L3ELC3 L3ELC4 L3ELC5 - L3ELE1 L3ELE2 L3ELE3 L3ELE4 L3ELE5 - L30301 L30302 L30303 L30304 L30305 - 0.0000 0.0000 0.0000 0.0000 0.0000 - L3ELST11 L3ELST21 L3ELST31 L3ELST41 L3ELST51 - L3ELST12 L3ELST22 L3ELST32 L3ELST42 L3ELST52 - L3ELST13 L3ELST23 L3ELST33 L3ELST43 L3ELST53 - L3ELST14 L3ELST24 L3ELST34 L3ELST44 L3ELST54 - L3ELST15 L3ELST25 L3ELST35 L3ELST45 L3ELST55 - L4ELZ1 L4ELZ2 L4ELZ3 L4ELZ4 L4ELZ5 - L4ELW1 L4ELW2 L4ELW3 L4ELW4 L4ELW5 - L4ELC1 L4ELC2 L4ELC3 L4ELC4 L4ELC5 - L4ELE1 L4ELE2 L4ELE3 L4ELE4 L4ELE5 - L40301 L40302 L40303 L40304 L40305 - 0.0000 0.0000 0.0000 0.0000 0.0000 - L4ELST11 L4ELST21 L4ELST31 L4ELST41 L4ELST51 - L4ELST12 L4ELST22 L4ELST32 L4ELST42 L4ELST52 - L4ELST13 L4ELST23 L4ELST33 L4ELST43 L4ELST53 - L4ELST14 L4ELST24 L4ELST34 L4ELST44 L4ELST54 - L4ELST15 L4ELST25 L4ELST35 L4ELST45 L4ELST55 - L5ELZ1 L5ELZ2 L5ELZ3 L5ELZ4 L5ELZ5 - L5ELW1 L5ELW2 L5ELW3 L5ELW4 L5ELW5 - L5ELC1 L5ELC2 L5ELC3 L5ELC4 L5ELC5 - L5ELE1 L5ELE2 L5ELE3 L5ELE4 L5ELE5 - L50301 L50302 L50303 L50304 L50305 - 0.0000 0.0000 0.0000 0.0000 0.0000 - L5ELST11 L5ELST21 L5ELST31 L5ELST41 L5ELST51 - L5ELST12 L5ELST22 L5ELST32 L5ELST42 L5ELST52 - L5ELST13 L5ELST23 L5ELST33 L5ELST43 L5ELST53 - L5ELST14 L5ELST24 L5ELST34 L5ELST44 L5ELST54 - L5ELST15 L5ELST25 L5ELST35 L5ELST45 L5ELST55 - L6ELZ1 L6ELZ2 L6ELZ3 L6ELZ4 L6ELZ5 - L6ELW1 L6ELW2 L6ELW3 L6ELW4 L6ELW5 - L6ELC1 L6ELC2 L6ELC3 L6ELC4 L6ELC5 - L6ELE1 L6ELE2 L6ELE3 L6ELE4 L6ELE5 - L60301 L60302 L60303 L60304 L60305 - 0.0000 0.0000 0.0000 0.0000 0.0000 - L6ELST11 L6ELST21 L6ELST31 L6ELST41 L6ELST51 - L6ELST12 L6ELST22 L6ELST32 L6ELST42 L6ELST52 - L6ELST13 L6ELST23 L6ELST33 L6ELST43 L6ELST53 - L6ELST14 L6ELST24 L6ELST34 L6ELST44 L6ELST54 - L6ELST15 L6ELST25 L6ELST35 L6ELST45 L6ELST55 - L7ELZ1 L7ELZ2 L7ELZ3 L7ELZ4 L7ELZ5 - L7ELW1 L7ELW2 L7ELW3 L7ELW4 L7ELW5 - L7ELC1 L7ELC2 L7ELC3 L7ELC4 L7ELC5 - L7ELE1 L7ELE2 L7ELE3 L7ELE4 L7ELE5 - L70301 L70302 L70303 L70304 L70305 - 0.0000 0.0000 0.0000 0.0000 0.0000 - L7ELST11 L7ELST21 L7ELST31 L7ELST41 L7ELST51 - L7ELST12 L7ELST22 L7ELST32 L7ELST42 L7ELST52 - L7ELST13 L7ELST23 L7ELST33 L7ELST43 L7ELST53 - L7ELST14 L7ELST24 L7ELST34 L7ELST44 L7ELST54 - L7ELST15 L7ELST25 L7ELST35 L7ELST45 L7ELST55 - "; + "; # Get values from form my %All = CollectValues(); @@ -406,32 +343,36 @@ sub CreateInpFile() # This is the flag for checking layers my $Check=0; + my $Layer=""; + my $Li=""; # Loop over layers an create appropriate values - for (my $i=1;$i<=7;$i++){ + for (my $i=1;$i<=$All{"numLayer"};$i++){ + $Li = "L".$i; + $Layer = $TemplateLayer; + $Layer =~ s/L1/$Li/g; + $TemplateFile=$TemplateFile.$Layer; $Check=0; # Composition of layers - my $LComp="layer".$i."Comp"; - my $LCompAttrib = child("Qt::LineEdit",$LComp); - my $Comp = $LCompAttrib->text(); + my $LComp="L".$i."Comp"; + my $Comp = this->{ui}->layerTable->item($i-1,0)->text(); + $All{$LComp} = $Comp; my %LElComp=Chem::parse_formula($Comp); if ($Comp eq "") {$Check++;} # Densities of layers - my $Lrho="layer".$i."rho"; - my $LrhoAttrib = child("Qt::LineEdit",$Lrho); - my $rho = 1*$LrhoAttrib->text(); + my $Lrho="L".$i."rho"; + my $rho = this->{ui}->layerTable->item($i-1,1)->text(); $All{$Lrho}=sprintf("%6.2f",$rho); if ($rho eq "") {$Check++;} # Thickness of layers - my $Ld ="layer".$i."d"; - my $LdAttrib = child("Qt::LineEdit",$Ld); - my $d = $LdAttrib->text(); + my $Ld ="L".$i."d"; + my $d = this->{ui}->layerTable->item($i-1,2)->text(); $All{$Ld}=sprintf("%8.2f",$d); if ($d eq "") {$Check++;} # Sanity check, is the layer supposed to have value? are they all there? - if ($Check!=0 & $i<=$All{"numLayer"}) { + if ($Check!=0) { my $ErrMsg="Error: Layer $i is empty. Expecting it to be defined!\n"; print STDERR $ErrMsg; my $HelpWindow = Qt::MessageBox::information( this, "Error!",$ErrMsg); @@ -446,10 +387,7 @@ sub CreateInpFile() $Sum=$Sum+$LElComp{$_}; } if ($Sum==0) {$Sum=1;} - -# print STDOUT "Layer: ".$i."\n"; -# print STDOUT "Composition: ".$Comp."\n"; - + my @Els = keys %LElComp; for (my $NEl=1;$NEl<=5;$NEl++) { @@ -461,7 +399,7 @@ sub CreateInpFile() my $ElE = Chem::Elastof($El); my $El030 = 30; if ($El eq "") { $El030 = 0.0;} -# print STDOUT "$El, ElC=$ElC ElZ=$ElZ ElW=$ElW ElE=$ElE\n"; + $All{$LEkey."Z".$NEl}=sprintf("%8.4f",$ElZ); $All{$LEkey."W".$NEl}=sprintf("%8.4f",$ElW); $All{$LEkey."C".$NEl}=sprintf("%8.4f",$ElC); @@ -592,7 +530,7 @@ sub StartSequenceOne() my $iScan=0; foreach (@SValues) { if ($All{"comboScan"}==5) { - layerTable->setText($All{"ScandL"}-1,2,$_); + this->{ui}->layerTable->setText($All{"ScandL"}-1,2,$_); } else { $ScanAttrib->setText($_); } @@ -609,8 +547,6 @@ sub StartSequenceOne() open (INPF,q{>}, "$FILENAME.inp" ); print INPF $eingabe1; close(INPF); -# Use windoz version -# system("cp $FILENAME.inp eingabe1.inp; wine TrimSP7L.exe"); # Use Linux version $Progress=$Progress+90/$#SValues; this->{ui}->progress->setValue($Progress); @@ -637,8 +573,6 @@ sub StartSequenceOne() $Progress=20; this->{ui}->progress->setValue($Progress); -# Use windoz version -# system("cp $FILENAME.inp eingabe1.inp; wine TrimSP7L.exe"); # Use Linux version $cmd = "cp $FILENAME.inp eingabe1.inp; ".$ENV{'TRIMBIN'}; system($cmd); @@ -656,8 +590,8 @@ sub StartSequenceOne() system($cmd); $Progress=100; this->{ui}->progress->setValue($Progress); - return 1; -} + return 1; +} # Subroutine: Select or create work directory @@ -938,6 +872,27 @@ sub PlotFraction() } +# Subroutine: Plot mean depth and straggeling +# a root macro +sub PlotMean() +{ + my $Path=this->{ui}->workPath->text(); + my $file=Qt::FileDialog::getOpenFileName( + this, + "Choose a sequence data file", + $Path, + "Implantation sequence file (*.dat)"); + + if ($file ne "" ) { + my $TrimPath = $ENV{'PERLLIB'}; +# Now that we have the file name send it to root macro for plotting. + my $cmd='root -n -l "'.$TrimPath.'/plotMean.C(\"'.$file.'\")"&'; + + my $pid=system($cmd); + } + +} + # Subroutine: Help window contents sub helpContentsAction() { diff --git a/trimsp/src/TrimSPGUI4/TrimSPGUI4.ui b/trimsp/src/TrimSPGUI4/TrimSPGUI4.ui index c9c8390..64fae5d 100644 --- a/trimsp/src/TrimSPGUI4/TrimSPGUI4.ui +++ b/trimsp/src/TrimSPGUI4/TrimSPGUI4.ui @@ -365,10 +365,6 @@ - layer4Comp - layer4rho - layer4d - layer1Comp @@ -1859,7 +1855,7 @@ 0 0 722 - 19 + 20 @@ -1881,6 +1877,7 @@ + @@ -2031,6 +2028,14 @@ Ctrl+O + + + Plot Mean/Stragg. + + + Ctrl+P, Ctrl+M + + diff --git a/trimsp/src/TrimSPGUI4/Ui_TrimSPGUI4.pm b/trimsp/src/TrimSPGUI4/Ui_TrimSPGUI4.pm index f0da9c7..2af8c26 100644 --- a/trimsp/src/TrimSPGUI4/Ui_TrimSPGUI4.pm +++ b/trimsp/src/TrimSPGUI4/Ui_TrimSPGUI4.pm @@ -3,10 +3,10 @@ ############################################################################### ################################################################################# -## Form generated from reading UI file 'TrimSPGUI4.ui' +## Form generated from reading UI file 'TrimSPGUI4-test.ui' ## -## Created: Thu Feb 7 17:19:56 2013 -## by: Qt User Interface Compiler version 4.8.4 +## Created: Fri Feb 20 16:50:06 2015 +## by: Qt User Interface Compiler version 4.8.6 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -58,6 +58,10 @@ sub fileOpenAction { return shift->{fileOpenAction}; } +sub plotMeanAction { + return shift->{plotMeanAction}; +} + sub widget { return shift->{widget}; } @@ -82,16 +86,12 @@ sub groupBox1 { return shift->{groupBox1}; } -sub layout27 { - return shift->{layout27}; +sub layoutWidget { + return shift->{layoutWidget}; } -sub vboxLayout { - return shift->{vboxLayout}; -} - -sub hboxLayout { - return shift->{hboxLayout}; +sub gridLayout1 { + return shift->{gridLayout1}; } sub textLabel1_4 { @@ -106,136 +106,8 @@ sub spacer2 { return shift->{spacer2}; } -sub hboxLayout1 { - return shift->{hboxLayout1}; -} - -sub textLabel2_4 { - return shift->{textLabel2_4}; -} - -sub spacer1 { - return shift->{spacer1}; -} - -sub textLabel3 { - return shift->{textLabel3}; -} - -sub textLabel4 { - return shift->{textLabel4}; -} - -sub boxL1 { - return shift->{boxL1}; -} - -sub layer1Comp { - return shift->{layer1Comp}; -} - -sub layer1rho { - return shift->{layer1rho}; -} - -sub layer1d { - return shift->{layer1d}; -} - -sub boxL2 { - return shift->{boxL2}; -} - -sub layer2Comp { - return shift->{layer2Comp}; -} - -sub layer2rho { - return shift->{layer2rho}; -} - -sub layer2d { - return shift->{layer2d}; -} - -sub boxL3 { - return shift->{boxL3}; -} - -sub layer3Comp { - return shift->{layer3Comp}; -} - -sub layer3rho { - return shift->{layer3rho}; -} - -sub layer3d { - return shift->{layer3d}; -} - -sub boxL4 { - return shift->{boxL4}; -} - -sub layer4Comp { - return shift->{layer4Comp}; -} - -sub layer4rho { - return shift->{layer4rho}; -} - -sub layer4d { - return shift->{layer4d}; -} - -sub boxL5 { - return shift->{boxL5}; -} - -sub layer5Comp { - return shift->{layer5Comp}; -} - -sub layer5rho { - return shift->{layer5rho}; -} - -sub layer5d { - return shift->{layer5d}; -} - -sub boxL6 { - return shift->{boxL6}; -} - -sub layer6Comp { - return shift->{layer6Comp}; -} - -sub layer6rho { - return shift->{layer6rho}; -} - -sub layer6d { - return shift->{layer6d}; -} - -sub boxL7 { - return shift->{boxL7}; -} - -sub layer7Comp { - return shift->{layer7Comp}; -} - -sub layer7rho { - return shift->{layer7rho}; -} - -sub layer7d { - return shift->{layer7d}; +sub layerTable { + return shift->{layerTable}; } sub projParam { @@ -322,8 +194,8 @@ sub layout14 { return shift->{layout14}; } -sub vboxLayout1 { - return shift->{vboxLayout1}; +sub vboxLayout { + return shift->{vboxLayout}; } sub textLabelFN { @@ -338,8 +210,8 @@ sub textLabelPath { return shift->{textLabelPath}; } -sub hboxLayout2 { - return shift->{hboxLayout2}; +sub hboxLayout { + return shift->{hboxLayout}; } sub workPath { @@ -490,8 +362,8 @@ sub scanSeq { return shift->{scanSeq}; } -sub layoutWidget { - return shift->{layoutWidget}; +sub layoutWidget1 { + return shift->{layoutWidget1}; } sub verticalLayout { @@ -685,6 +557,9 @@ sub setupUi { my $fileOpenAction = Qt::Action($trimSPGUI4); $self->{fileOpenAction} = $fileOpenAction; $fileOpenAction->setObjectName( "fileOpenAction" ); + my $plotMeanAction = Qt::Action($trimSPGUI4); + $self->{plotMeanAction} = $plotMeanAction; + $plotMeanAction->setObjectName( "plotMeanAction" ); my $widget = Qt::Widget( $trimSPGUI4 ); $self->{widget} = $widget; $widget->setObjectName( "widget" ); @@ -710,235 +585,42 @@ sub setupUi { $self->{groupBox1} = $groupBox1; $groupBox1->setObjectName( "groupBox1" ); $groupBox1->setGeometry( Qt::Rect(10, 10, 431, 511) ); - my $layout27 = Qt::Widget( $groupBox1 ); - $self->{layout27} = $layout27; - $layout27->setObjectName( "layout27" ); - $layout27->setGeometry( Qt::Rect(5, 20, 421, 481) ); - my $vboxLayout = Qt::VBoxLayout( $layout27 ); - $self->{vboxLayout} = $vboxLayout; - $vboxLayout->setSpacing( 3 ); - $vboxLayout->setMargin( 11 ); - $vboxLayout->setObjectName( "vboxLayout" ); - $vboxLayout->setContentsMargins(0, 0, 0, 10 ); - my $hboxLayout = Qt::HBoxLayout( ); - $self->{hboxLayout} = $hboxLayout; - $hboxLayout->setSpacing( 6 ); - $hboxLayout->setObjectName( "hboxLayout" ); - my $textLabel1_4 = Qt::Label( $layout27 ); + my $layoutWidget = Qt::Widget( $groupBox1 ); + $self->{layoutWidget} = $layoutWidget; + $layoutWidget->setObjectName( "layoutWidget" ); + $layoutWidget->setGeometry( Qt::Rect(10, 21, 411, 481) ); + my $gridLayout1 = Qt::GridLayout( $layoutWidget ); + $self->{gridLayout1} = $gridLayout1; + $gridLayout1->setSpacing( 6 ); + $gridLayout1->setMargin( 11 ); + $gridLayout1->setObjectName( "gridLayout1" ); + $gridLayout1->setContentsMargins(0, 0, 0, 0 ); + my $textLabel1_4 = Qt::Label( $layoutWidget ); $self->{textLabel1_4} = $textLabel1_4; $textLabel1_4->setObjectName( "textLabel1_4" ); $textLabel1_4->setWordWrap( 0 ); - $hboxLayout->addWidget( $textLabel1_4 ); + $gridLayout1->addWidget( $textLabel1_4, 0, 0, 1, 1 ); - my $numLayer = Qt::SpinBox( $layout27 ); + my $numLayer = Qt::SpinBox( $layoutWidget ); $self->{numLayer} = $numLayer; $numLayer->setObjectName( "numLayer" ); $numLayer->setMinimum( 1 ); - $numLayer->setMaximum( 7 ); + $numLayer->setMaximum( 100 ); - $hboxLayout->addWidget( $numLayer ); + $gridLayout1->addWidget( $numLayer, 0, 1, 1, 1 ); - my $spacer2 = Qt::SpacerItem( 251, 20, Qt::SizePolicy::Expanding(), Qt::SizePolicy::Minimum() ); + my $spacer2 = Qt::SpacerItem( 240, 20, Qt::SizePolicy::Expanding(), Qt::SizePolicy::Minimum() ); - $hboxLayout->addItem( $spacer2 ); + $gridLayout1->addItem( $spacer2, 0, 2, 1, 1 ); + my $layerTable = Qt::TableWidget( $layoutWidget ); + $self->{layerTable} = $layerTable; + $layerTable->setObjectName( "layerTable" ); + $layerTable->setRowCount( 1 ); + $layerTable->setColumnCount( 3 ); - $vboxLayout->addLayout( $hboxLayout ); - - my $hboxLayout1 = Qt::HBoxLayout( ); - $self->{hboxLayout1} = $hboxLayout1; - $hboxLayout1->setSpacing( 6 ); - $hboxLayout1->setObjectName( "hboxLayout1" ); - my $textLabel2_4 = Qt::Label( $layout27 ); - $self->{textLabel2_4} = $textLabel2_4; - $textLabel2_4->setObjectName( "textLabel2_4" ); - my $sizePolicy1 = Qt::SizePolicy( Qt::SizePolicy::Fixed(), Qt::SizePolicy::Minimum() ); - $self->{$sizePolicy1} = $sizePolicy1; - $sizePolicy1->setHorizontalStretch( 0 ); - $sizePolicy1->setVerticalStretch( 0 ); - $sizePolicy1->setHeightForWidth( $textLabel2_4->sizePolicy()->hasHeightForWidth() ); - $textLabel2_4->setSizePolicy( $sizePolicy1 ); - $textLabel2_4->setWordWrap( 0 ); - - $hboxLayout1->addWidget( $textLabel2_4 ); - - my $spacer1 = Qt::SpacerItem( 101, 20, Qt::SizePolicy::Fixed(), Qt::SizePolicy::Minimum() ); - - $hboxLayout1->addItem( $spacer1 ); - - my $textLabel3 = Qt::Label( $layout27 ); - $self->{textLabel3} = $textLabel3; - $textLabel3->setObjectName( "textLabel3" ); - my $sizePolicy2 = Qt::SizePolicy( Qt::SizePolicy::Minimum(), Qt::SizePolicy::Preferred() ); - $self->{$sizePolicy2} = $sizePolicy2; - $sizePolicy2->setHorizontalStretch( 0 ); - $sizePolicy2->setVerticalStretch( 0 ); - $sizePolicy2->setHeightForWidth( $textLabel3->sizePolicy()->hasHeightForWidth() ); - $textLabel3->setSizePolicy( $sizePolicy2 ); - $textLabel3->setWordWrap( 0 ); - - $hboxLayout1->addWidget( $textLabel3 ); - - my $textLabel4 = Qt::Label( $layout27 ); - $self->{textLabel4} = $textLabel4; - $textLabel4->setObjectName( "textLabel4" ); - $textLabel4->setWordWrap( 0 ); - - $hboxLayout1->addWidget( $textLabel4 ); - - - $vboxLayout->addLayout( $hboxLayout1 ); - - my $boxL1 = Qt::GroupBox( $layout27 ); - $self->{boxL1} = $boxL1; - $boxL1->setObjectName( "boxL1" ); - my $layer1Comp = Qt::LineEdit( $boxL1 ); - $self->{layer1Comp} = $layer1Comp; - $layer1Comp->setObjectName( "layer1Comp" ); - $layer1Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); - my $layer1rho = Qt::LineEdit( $boxL1 ); - $self->{layer1rho} = $layer1rho; - $layer1rho->setObjectName( "layer1rho" ); - $layer1rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); - my $layer1d = Qt::LineEdit( $boxL1 ); - $self->{layer1d} = $layer1d; - $layer1d->setObjectName( "layer1d" ); - $layer1d->setGeometry( Qt::Rect(320, 20, 85, 25) ); - $sizePolicy->setHeightForWidth( $layer1d->sizePolicy()->hasHeightForWidth() ); - $layer1d->setSizePolicy( $sizePolicy ); - - $vboxLayout->addWidget( $boxL1 ); - - my $boxL2 = Qt::GroupBox( $layout27 ); - $self->{boxL2} = $boxL2; - $boxL2->setObjectName( "boxL2" ); - $boxL2->setEnabled( 0 ); - my $layer2Comp = Qt::LineEdit( $boxL2 ); - $self->{layer2Comp} = $layer2Comp; - $layer2Comp->setObjectName( "layer2Comp" ); - $layer2Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); - my $layer2rho = Qt::LineEdit( $boxL2 ); - $self->{layer2rho} = $layer2rho; - $layer2rho->setObjectName( "layer2rho" ); - $layer2rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); - my $layer2d = Qt::LineEdit( $boxL2 ); - $self->{layer2d} = $layer2d; - $layer2d->setObjectName( "layer2d" ); - $layer2d->setGeometry( Qt::Rect(320, 20, 85, 25) ); - $sizePolicy->setHeightForWidth( $layer2d->sizePolicy()->hasHeightForWidth() ); - $layer2d->setSizePolicy( $sizePolicy ); - - $vboxLayout->addWidget( $boxL2 ); - - my $boxL3 = Qt::GroupBox( $layout27 ); - $self->{boxL3} = $boxL3; - $boxL3->setObjectName( "boxL3" ); - $boxL3->setEnabled( 0 ); - my $layer3Comp = Qt::LineEdit( $boxL3 ); - $self->{layer3Comp} = $layer3Comp; - $layer3Comp->setObjectName( "layer3Comp" ); - $layer3Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); - my $layer3rho = Qt::LineEdit( $boxL3 ); - $self->{layer3rho} = $layer3rho; - $layer3rho->setObjectName( "layer3rho" ); - $layer3rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); - my $layer3d = Qt::LineEdit( $boxL3 ); - $self->{layer3d} = $layer3d; - $layer3d->setObjectName( "layer3d" ); - $layer3d->setGeometry( Qt::Rect(320, 20, 85, 25) ); - $sizePolicy->setHeightForWidth( $layer3d->sizePolicy()->hasHeightForWidth() ); - $layer3d->setSizePolicy( $sizePolicy ); - - $vboxLayout->addWidget( $boxL3 ); - - my $boxL4 = Qt::GroupBox( $layout27 ); - $self->{boxL4} = $boxL4; - $boxL4->setObjectName( "boxL4" ); - $boxL4->setEnabled( 0 ); - my $layer4Comp = Qt::LineEdit( $boxL4 ); - $self->{layer4Comp} = $layer4Comp; - $layer4Comp->setObjectName( "layer4Comp" ); - $layer4Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); - my $layer4rho = Qt::LineEdit( $boxL4 ); - $self->{layer4rho} = $layer4rho; - $layer4rho->setObjectName( "layer4rho" ); - $layer4rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); - my $layer4d = Qt::LineEdit( $boxL4 ); - $self->{layer4d} = $layer4d; - $layer4d->setObjectName( "layer4d" ); - $layer4d->setGeometry( Qt::Rect(320, 20, 85, 25) ); - $sizePolicy->setHeightForWidth( $layer4d->sizePolicy()->hasHeightForWidth() ); - $layer4d->setSizePolicy( $sizePolicy ); - $layer4Comp->raise(); - $layer4rho->raise(); - $layer4d->raise(); - $layer1Comp->raise(); - - $vboxLayout->addWidget( $boxL4 ); - - my $boxL5 = Qt::GroupBox( $layout27 ); - $self->{boxL5} = $boxL5; - $boxL5->setObjectName( "boxL5" ); - $boxL5->setEnabled( 0 ); - my $layer5Comp = Qt::LineEdit( $boxL5 ); - $self->{layer5Comp} = $layer5Comp; - $layer5Comp->setObjectName( "layer5Comp" ); - $layer5Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); - my $layer5rho = Qt::LineEdit( $boxL5 ); - $self->{layer5rho} = $layer5rho; - $layer5rho->setObjectName( "layer5rho" ); - $layer5rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); - my $layer5d = Qt::LineEdit( $boxL5 ); - $self->{layer5d} = $layer5d; - $layer5d->setObjectName( "layer5d" ); - $layer5d->setGeometry( Qt::Rect(320, 20, 85, 25) ); - $sizePolicy->setHeightForWidth( $layer5d->sizePolicy()->hasHeightForWidth() ); - $layer5d->setSizePolicy( $sizePolicy ); - - $vboxLayout->addWidget( $boxL5 ); - - my $boxL6 = Qt::GroupBox( $layout27 ); - $self->{boxL6} = $boxL6; - $boxL6->setObjectName( "boxL6" ); - $boxL6->setEnabled( 0 ); - my $layer6Comp = Qt::LineEdit( $boxL6 ); - $self->{layer6Comp} = $layer6Comp; - $layer6Comp->setObjectName( "layer6Comp" ); - $layer6Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); - my $layer6rho = Qt::LineEdit( $boxL6 ); - $self->{layer6rho} = $layer6rho; - $layer6rho->setObjectName( "layer6rho" ); - $layer6rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); - my $layer6d = Qt::LineEdit( $boxL6 ); - $self->{layer6d} = $layer6d; - $layer6d->setObjectName( "layer6d" ); - $layer6d->setGeometry( Qt::Rect(320, 20, 85, 25) ); - $sizePolicy->setHeightForWidth( $layer6d->sizePolicy()->hasHeightForWidth() ); - $layer6d->setSizePolicy( $sizePolicy ); - - $vboxLayout->addWidget( $boxL6 ); - - my $boxL7 = Qt::GroupBox( $layout27 ); - $self->{boxL7} = $boxL7; - $boxL7->setObjectName( "boxL7" ); - $boxL7->setEnabled( 0 ); - my $layer7Comp = Qt::LineEdit( $boxL7 ); - $self->{layer7Comp} = $layer7Comp; - $layer7Comp->setObjectName( "layer7Comp" ); - $layer7Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); - my $layer7rho = Qt::LineEdit( $boxL7 ); - $self->{layer7rho} = $layer7rho; - $layer7rho->setObjectName( "layer7rho" ); - $layer7rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); - my $layer7d = Qt::LineEdit( $boxL7 ); - $self->{layer7d} = $layer7d; - $layer7d->setObjectName( "layer7d" ); - $layer7d->setGeometry( Qt::Rect(320, 20, 85, 25) ); - $sizePolicy->setHeightForWidth( $layer7d->sizePolicy()->hasHeightForWidth() ); - $layer7d->setSizePolicy( $sizePolicy ); - - $vboxLayout->addWidget( $boxL7 ); + $gridLayout1->addWidget( $layerTable, 1, 0, 1, 3 ); my $projParam = Qt::GroupBox( $layersTab ); $self->{projParam} = $projParam; @@ -955,29 +637,29 @@ sub setupUi { $self->{numberLabel} = $numberLabel; $numberLabel->setObjectName( "numberLabel" ); $numberLabel->setGeometry( Qt::Rect(11, 45, 134, 16) ); - my $sizePolicy3 = Qt::SizePolicy( Qt::SizePolicy::Preferred(), Qt::SizePolicy::Preferred() ); - $self->{$sizePolicy3} = $sizePolicy3; - $sizePolicy3->setHorizontalStretch( 0 ); - $sizePolicy3->setVerticalStretch( 0 ); - $sizePolicy3->setHeightForWidth( $numberLabel->sizePolicy()->hasHeightForWidth() ); - $numberLabel->setSizePolicy( $sizePolicy3 ); + my $sizePolicy1 = Qt::SizePolicy( Qt::SizePolicy::Preferred(), Qt::SizePolicy::Preferred() ); + $self->{$sizePolicy1} = $sizePolicy1; + $sizePolicy1->setHorizontalStretch( 0 ); + $sizePolicy1->setVerticalStretch( 0 ); + $sizePolicy1->setHeightForWidth( $numberLabel->sizePolicy()->hasHeightForWidth() ); + $numberLabel->setSizePolicy( $sizePolicy1 ); $numberLabel->setWordWrap( 0 ); my $projComboBox = Qt::ComboBox( $projParam ); $self->{projComboBox} = $projComboBox; $projComboBox->setObjectName( "projComboBox" ); $projComboBox->setGeometry( Qt::Rect(151, 21, 80, 20) ); - my $sizePolicy4 = Qt::SizePolicy( Qt::SizePolicy::Ignored(), Qt::SizePolicy::Preferred() ); - $self->{$sizePolicy4} = $sizePolicy4; - $sizePolicy4->setHorizontalStretch( 0 ); - $sizePolicy4->setVerticalStretch( 0 ); - $sizePolicy4->setHeightForWidth( $projComboBox->sizePolicy()->hasHeightForWidth() ); - $projComboBox->setSizePolicy( $sizePolicy4 ); + my $sizePolicy2 = Qt::SizePolicy( Qt::SizePolicy::Ignored(), Qt::SizePolicy::Preferred() ); + $self->{$sizePolicy2} = $sizePolicy2; + $sizePolicy2->setHorizontalStretch( 0 ); + $sizePolicy2->setVerticalStretch( 0 ); + $sizePolicy2->setHeightForWidth( $projComboBox->sizePolicy()->hasHeightForWidth() ); + $projComboBox->setSizePolicy( $sizePolicy2 ); my $dz = Qt::LineEdit( $projParam ); $self->{dz} = $dz; $dz->setObjectName( "dz" ); $dz->setGeometry( Qt::Rect(151, 92, 80, 20) ); - $sizePolicy4->setHeightForWidth( $dz->sizePolicy()->hasHeightForWidth() ); - $dz->setSizePolicy( $sizePolicy4 ); + $sizePolicy2->setHeightForWidth( $dz->sizePolicy()->hasHeightForWidth() ); + $dz->setSizePolicy( $sizePolicy2 ); my $energyLabel = Qt::Label( $projParam ); $self->{energyLabel} = $energyLabel; $energyLabel->setObjectName( "energyLabel" ); @@ -987,8 +669,8 @@ sub setupUi { $self->{numberProj} = $numberProj; $numberProj->setObjectName( "numberProj" ); $numberProj->setGeometry( Qt::Rect(151, 45, 80, 20) ); - $sizePolicy4->setHeightForWidth( $numberProj->sizePolicy()->hasHeightForWidth() ); - $numberProj->setSizePolicy( $sizePolicy4 ); + $sizePolicy2->setHeightForWidth( $numberProj->sizePolicy()->hasHeightForWidth() ); + $numberProj->setSizePolicy( $sizePolicy2 ); $numberProj->setMaximumSize( Qt::Size(32767, 32767) ); $numberProj->setWhatsThis( "" ); $numberProj->setAccessibleName( "" ); @@ -1002,8 +684,8 @@ sub setupUi { $self->{valAngle} = $valAngle; $valAngle->setObjectName( "valAngle" ); $valAngle->setGeometry( Qt::Rect(151, 162, 80, 21) ); - $sizePolicy4->setHeightForWidth( $valAngle->sizePolicy()->hasHeightForWidth() ); - $valAngle->setSizePolicy( $sizePolicy4 ); + $sizePolicy2->setHeightForWidth( $valAngle->sizePolicy()->hasHeightForWidth() ); + $valAngle->setSizePolicy( $sizePolicy2 ); my $sigAngleLabel = Qt::Label( $projParam ); $self->{sigAngleLabel} = $sigAngleLabel; $sigAngleLabel->setObjectName( "sigAngleLabel" ); @@ -1013,8 +695,8 @@ sub setupUi { $self->{sigAngle} = $sigAngle; $sigAngle->setObjectName( "sigAngle" ); $sigAngle->setGeometry( Qt::Rect(151, 186, 80, 20) ); - $sizePolicy4->setHeightForWidth( $sigAngle->sizePolicy()->hasHeightForWidth() ); - $sigAngle->setSizePolicy( $sizePolicy4 ); + $sizePolicy2->setHeightForWidth( $sigAngle->sizePolicy()->hasHeightForWidth() ); + $sigAngle->setSizePolicy( $sizePolicy2 ); my $seedLabel = Qt::Label( $projParam ); $self->{seedLabel} = $seedLabel; $seedLabel->setObjectName( "seedLabel" ); @@ -1024,27 +706,27 @@ sub setupUi { $self->{sigEnergy} = $sigEnergy; $sigEnergy->setObjectName( "sigEnergy" ); $sigEnergy->setGeometry( Qt::Rect(151, 139, 80, 20) ); - $sizePolicy4->setHeightForWidth( $sigEnergy->sizePolicy()->hasHeightForWidth() ); - $sigEnergy->setSizePolicy( $sizePolicy4 ); + $sizePolicy2->setHeightForWidth( $sigEnergy->sizePolicy()->hasHeightForWidth() ); + $sigEnergy->setSizePolicy( $sizePolicy2 ); my $z0 = Qt::LineEdit( $projParam ); $self->{z0} = $z0; $z0->setObjectName( "z0" ); $z0->setGeometry( Qt::Rect(151, 68, 80, 21) ); - $sizePolicy4->setHeightForWidth( $z0->sizePolicy()->hasHeightForWidth() ); - $z0->setSizePolicy( $sizePolicy4 ); + $sizePolicy2->setHeightForWidth( $z0->sizePolicy()->hasHeightForWidth() ); + $z0->setSizePolicy( $sizePolicy2 ); $z0->setMaximumSize( Qt::Size(32767, 32767) ); my $valEnergy = Qt::LineEdit( $projParam ); $self->{valEnergy} = $valEnergy; $valEnergy->setObjectName( "valEnergy" ); $valEnergy->setGeometry( Qt::Rect(151, 115, 80, 21) ); - $sizePolicy4->setHeightForWidth( $valEnergy->sizePolicy()->hasHeightForWidth() ); - $valEnergy->setSizePolicy( $sizePolicy4 ); + $sizePolicy2->setHeightForWidth( $valEnergy->sizePolicy()->hasHeightForWidth() ); + $valEnergy->setSizePolicy( $sizePolicy2 ); my $ranSeed = Qt::LineEdit( $projParam ); $self->{ranSeed} = $ranSeed; $ranSeed->setObjectName( "ranSeed" ); $ranSeed->setGeometry( Qt::Rect(151, 209, 80, 21) ); - $sizePolicy4->setHeightForWidth( $ranSeed->sizePolicy()->hasHeightForWidth() ); - $ranSeed->setSizePolicy( $sizePolicy4 ); + $sizePolicy2->setHeightForWidth( $ranSeed->sizePolicy()->hasHeightForWidth() ); + $ranSeed->setSizePolicy( $sizePolicy2 ); my $albleLabel = Qt::Label( $projParam ); $self->{albleLabel} = $albleLabel; $albleLabel->setObjectName( "albleLabel" ); @@ -1068,67 +750,67 @@ sub setupUi { $self->{layout14} = $layout14; $layout14->setObjectName( "layout14" ); $layout14->setGeometry( Qt::Rect(10, 20, 221, 100) ); - my $vboxLayout1 = Qt::VBoxLayout( $layout14 ); - $self->{vboxLayout1} = $vboxLayout1; - $vboxLayout1->setSpacing( 0 ); - $vboxLayout1->setMargin( 0 ); - $vboxLayout1->setObjectName( "vboxLayout1" ); - $vboxLayout1->setContentsMargins(0, 0, 0, 0 ); + my $vboxLayout = Qt::VBoxLayout( $layout14 ); + $self->{vboxLayout} = $vboxLayout; + $vboxLayout->setSpacing( 0 ); + $vboxLayout->setMargin( 0 ); + $vboxLayout->setObjectName( "vboxLayout" ); + $vboxLayout->setContentsMargins(0, 0, 0, 0 ); my $textLabelFN = Qt::Label( $layout14 ); $self->{textLabelFN} = $textLabelFN; $textLabelFN->setObjectName( "textLabelFN" ); $textLabelFN->setWordWrap( 0 ); - $vboxLayout1->addWidget( $textLabelFN ); + $vboxLayout->addWidget( $textLabelFN ); my $fileNamePrefix = Qt::LineEdit( $layout14 ); $self->{fileNamePrefix} = $fileNamePrefix; $fileNamePrefix->setObjectName( "fileNamePrefix" ); - $vboxLayout1->addWidget( $fileNamePrefix ); + $vboxLayout->addWidget( $fileNamePrefix ); my $textLabelPath = Qt::Label( $layout14 ); $self->{textLabelPath} = $textLabelPath; $textLabelPath->setObjectName( "textLabelPath" ); $textLabelPath->setWordWrap( 0 ); - $vboxLayout1->addWidget( $textLabelPath ); + $vboxLayout->addWidget( $textLabelPath ); - my $hboxLayout2 = Qt::HBoxLayout( ); - $self->{hboxLayout2} = $hboxLayout2; - $hboxLayout2->setSpacing( 6 ); - $hboxLayout2->setObjectName( "hboxLayout2" ); + my $hboxLayout = Qt::HBoxLayout( ); + $self->{hboxLayout} = $hboxLayout; + $hboxLayout->setSpacing( 6 ); + $hboxLayout->setObjectName( "hboxLayout" ); my $workPath = Qt::LineEdit( $layout14 ); $self->{workPath} = $workPath; $workPath->setObjectName( "workPath" ); - $hboxLayout2->addWidget( $workPath ); + $hboxLayout->addWidget( $workPath ); my $browse = Qt::PushButton( $layout14 ); $self->{browse} = $browse; $browse->setObjectName( "browse" ); - my $sizePolicy5 = Qt::SizePolicy( Qt::SizePolicy::Expanding(), Qt::SizePolicy::Fixed() ); - $self->{$sizePolicy5} = $sizePolicy5; - $sizePolicy5->setHorizontalStretch( 0 ); - $sizePolicy5->setVerticalStretch( 0 ); - $sizePolicy5->setHeightForWidth( $browse->sizePolicy()->hasHeightForWidth() ); - $browse->setSizePolicy( $sizePolicy5 ); + my $sizePolicy3 = Qt::SizePolicy( Qt::SizePolicy::Expanding(), Qt::SizePolicy::Fixed() ); + $self->{$sizePolicy3} = $sizePolicy3; + $sizePolicy3->setHorizontalStretch( 0 ); + $sizePolicy3->setVerticalStretch( 0 ); + $sizePolicy3->setHeightForWidth( $browse->sizePolicy()->hasHeightForWidth() ); + $browse->setSizePolicy( $sizePolicy3 ); - $hboxLayout2->addWidget( $browse ); + $hboxLayout->addWidget( $browse ); - $vboxLayout1->addLayout( $hboxLayout2 ); + $vboxLayout->addLayout( $hboxLayout ); my $splitter = Qt::Splitter( $groupBox15 ); $self->{splitter} = $splitter; $splitter->setObjectName( "splitter" ); $splitter->setGeometry( Qt::Rect(10, 220, 221, 24) ); - my $sizePolicy6 = Qt::SizePolicy( Qt::SizePolicy::Preferred(), Qt::SizePolicy::Minimum() ); - $self->{$sizePolicy6} = $sizePolicy6; - $sizePolicy6->setHorizontalStretch( 0 ); - $sizePolicy6->setVerticalStretch( 0 ); - $sizePolicy6->setHeightForWidth( $splitter->sizePolicy()->hasHeightForWidth() ); - $splitter->setSizePolicy( $sizePolicy6 ); + my $sizePolicy4 = Qt::SizePolicy( Qt::SizePolicy::Preferred(), Qt::SizePolicy::Minimum() ); + $self->{$sizePolicy4} = $sizePolicy4; + $sizePolicy4->setHorizontalStretch( 0 ); + $sizePolicy4->setVerticalStretch( 0 ); + $sizePolicy4->setHeightForWidth( $splitter->sizePolicy()->hasHeightForWidth() ); + $splitter->setSizePolicy( $sizePolicy4 ); $splitter->setOrientation( Qt::Horizontal() ); my $start = Qt::PushButton( $splitter ); $self->{start} = $start; @@ -1170,12 +852,12 @@ sub setupUi { $self->{parCA} = $parCA; $parCA->setObjectName( "parCA" ); $parCA->setGeometry( Qt::Rect(75, 147, 52, 25) ); - my $sizePolicy7 = Qt::SizePolicy( Qt::SizePolicy::Expanding(), Qt::SizePolicy::Expanding() ); - $self->{$sizePolicy7} = $sizePolicy7; - $sizePolicy7->setHorizontalStretch( 0 ); - $sizePolicy7->setVerticalStretch( 0 ); - $sizePolicy7->setHeightForWidth( $parCA->sizePolicy()->hasHeightForWidth() ); - $parCA->setSizePolicy( $sizePolicy7 ); + my $sizePolicy5 = Qt::SizePolicy( Qt::SizePolicy::Expanding(), Qt::SizePolicy::Expanding() ); + $self->{$sizePolicy5} = $sizePolicy5; + $sizePolicy5->setHorizontalStretch( 0 ); + $sizePolicy5->setVerticalStretch( 0 ); + $sizePolicy5->setHeightForWidth( $parCA->sizePolicy()->hasHeightForWidth() ); + $parCA->setSizePolicy( $sizePolicy5 ); my $textLabelIRL = Qt::Label( $addParam ); $self->{textLabelIRL} = $textLabelIRL; $textLabelIRL->setObjectName( "textLabelIRL" ); @@ -1223,8 +905,8 @@ sub setupUi { $self->{parRD} = $parRD; $parRD->setObjectName( "parRD" ); $parRD->setGeometry( Qt::Rect(75, 122, 52, 25) ); - $sizePolicy7->setHeightForWidth( $parRD->sizePolicy()->hasHeightForWidth() ); - $parRD->setSizePolicy( $sizePolicy7 ); + $sizePolicy5->setHeightForWidth( $parRD->sizePolicy()->hasHeightForWidth() ); + $parRD->setSizePolicy( $sizePolicy5 ); my $textLabelCA = Qt::Label( $addParam ); $self->{textLabelCA} = $textLabelCA; $textLabelCA->setObjectName( "textLabelCA" ); @@ -1234,8 +916,8 @@ sub setupUi { $self->{parESB} = $parESB; $parESB->setObjectName( "parESB" ); $parESB->setGeometry( Qt::Rect(75, 46, 52, 25) ); - $sizePolicy7->setHeightForWidth( $parESB->sizePolicy()->hasHeightForWidth() ); - $parESB->setSizePolicy( $sizePolicy7 ); + $sizePolicy5->setHeightForWidth( $parESB->sizePolicy()->hasHeightForWidth() ); + $parESB->setSizePolicy( $sizePolicy5 ); my $textLabelSHEATH = Qt::Label( $addParam ); $self->{textLabelSHEATH} = $textLabelSHEATH; $textLabelSHEATH->setObjectName( "textLabelSHEATH" ); @@ -1255,15 +937,15 @@ sub setupUi { $self->{parEF} = $parEF; $parEF->setObjectName( "parEF" ); $parEF->setGeometry( Qt::Rect(75, 21, 52, 25) ); - $sizePolicy7->setHeightForWidth( $parEF->sizePolicy()->hasHeightForWidth() ); - $parEF->setSizePolicy( $sizePolicy7 ); + $sizePolicy5->setHeightForWidth( $parEF->sizePolicy()->hasHeightForWidth() ); + $parEF->setSizePolicy( $sizePolicy5 ); my $lineEditEmpty = Qt::LineEdit( $addParam ); $self->{lineEditEmpty} = $lineEditEmpty; $lineEditEmpty->setObjectName( "lineEditEmpty" ); $lineEditEmpty->setEnabled( 0 ); $lineEditEmpty->setGeometry( Qt::Rect(75, 170, 52, 25) ); - $sizePolicy7->setHeightForWidth( $lineEditEmpty->sizePolicy()->hasHeightForWidth() ); - $lineEditEmpty->setSizePolicy( $sizePolicy7 ); + $sizePolicy5->setHeightForWidth( $lineEditEmpty->sizePolicy()->hasHeightForWidth() ); + $lineEditEmpty->setSizePolicy( $sizePolicy5 ); my $parKDEE2 = Qt::SpinBox( $addParam ); $self->{parKDEE2} = $parKDEE2; $parKDEE2->setObjectName( "parKDEE2" ); @@ -1275,8 +957,8 @@ sub setupUi { $self->{parERC} = $parERC; $parERC->setObjectName( "parERC" ); $parERC->setGeometry( Qt::Rect(75, 96, 52, 26) ); - $sizePolicy7->setHeightForWidth( $parERC->sizePolicy()->hasHeightForWidth() ); - $parERC->setSizePolicy( $sizePolicy7 ); + $sizePolicy5->setHeightForWidth( $parERC->sizePolicy()->hasHeightForWidth() ); + $parERC->setSizePolicy( $sizePolicy5 ); my $textLabelKK0R = Qt::Label( $addParam ); $self->{textLabelKK0R} = $textLabelKK0R; $textLabelKK0R->setObjectName( "textLabelKK0R" ); @@ -1303,8 +985,8 @@ sub setupUi { $self->{parSHEATH} = $parSHEATH; $parSHEATH->setObjectName( "parSHEATH" ); $parSHEATH->setGeometry( Qt::Rect(75, 71, 52, 25) ); - $sizePolicy7->setHeightForWidth( $parSHEATH->sizePolicy()->hasHeightForWidth() ); - $parSHEATH->setSizePolicy( $sizePolicy7 ); + $sizePolicy5->setHeightForWidth( $parSHEATH->sizePolicy()->hasHeightForWidth() ); + $parSHEATH->setSizePolicy( $sizePolicy5 ); my $parKDEE1 = Qt::SpinBox( $addParam ); $self->{parKDEE1} = $parKDEE1; $parKDEE1->setObjectName( "parKDEE1" ); @@ -1322,11 +1004,11 @@ sub setupUi { $scanSeq->setGeometry( Qt::Rect(10, 10, 421, 221) ); $scanSeq->setCheckable( 1 ); $scanSeq->setChecked( 0 ); - my $layoutWidget = Qt::Widget( $scanSeq ); - $self->{layoutWidget} = $layoutWidget; - $layoutWidget->setObjectName( "layoutWidget" ); - $layoutWidget->setGeometry( Qt::Rect(10, 20, 401, 191) ); - my $verticalLayout = Qt::VBoxLayout( $layoutWidget ); + my $layoutWidget1 = Qt::Widget( $scanSeq ); + $self->{layoutWidget1} = $layoutWidget1; + $layoutWidget1->setObjectName( "layoutWidget1" ); + $layoutWidget1->setGeometry( Qt::Rect(10, 20, 401, 191) ); + my $verticalLayout = Qt::VBoxLayout( $layoutWidget1 ); $self->{verticalLayout} = $verticalLayout; $verticalLayout->setSpacing( 6 ); $verticalLayout->setMargin( 11 ); @@ -1336,25 +1018,25 @@ sub setupUi { $self->{horizontalLayout_3} = $horizontalLayout_3; $horizontalLayout_3->setSpacing( 6 ); $horizontalLayout_3->setObjectName( "horizontalLayout_3" ); - my $label = Qt::Label( $layoutWidget ); + my $label = Qt::Label( $layoutWidget1 ); $self->{label} = $label; $label->setObjectName( "label" ); $horizontalLayout_3->addWidget( $label ); - my $comboScan = Qt::ComboBox( $layoutWidget ); + my $comboScan = Qt::ComboBox( $layoutWidget1 ); $self->{comboScan} = $comboScan; $comboScan->setObjectName( "comboScan" ); - my $sizePolicy8 = Qt::SizePolicy( Qt::SizePolicy::Preferred(), Qt::SizePolicy::Fixed() ); - $self->{$sizePolicy8} = $sizePolicy8; - $sizePolicy8->setHorizontalStretch( 0 ); - $sizePolicy8->setVerticalStretch( 0 ); - $sizePolicy8->setHeightForWidth( $comboScan->sizePolicy()->hasHeightForWidth() ); - $comboScan->setSizePolicy( $sizePolicy8 ); + my $sizePolicy6 = Qt::SizePolicy( Qt::SizePolicy::Preferred(), Qt::SizePolicy::Fixed() ); + $self->{$sizePolicy6} = $sizePolicy6; + $sizePolicy6->setHorizontalStretch( 0 ); + $sizePolicy6->setVerticalStretch( 0 ); + $sizePolicy6->setHeightForWidth( $comboScan->sizePolicy()->hasHeightForWidth() ); + $comboScan->setSizePolicy( $sizePolicy6 ); $horizontalLayout_3->addWidget( $comboScan ); - my $scandL = Qt::SpinBox( $layoutWidget ); + my $scandL = Qt::SpinBox( $layoutWidget1 ); $self->{scandL} = $scandL; $scandL->setObjectName( "scandL" ); $scandL->setEnabled( 0 ); @@ -1366,33 +1048,33 @@ sub setupUi { $verticalLayout->addLayout( $horizontalLayout_3 ); - my $radioList = Qt::RadioButton( $layoutWidget ); + my $radioList = Qt::RadioButton( $layoutWidget1 ); $self->{radioList} = $radioList; $radioList->setObjectName( "radioList" ); $verticalLayout->addWidget( $radioList ); - my $scanList = Qt::LineEdit( $layoutWidget ); + my $scanList = Qt::LineEdit( $layoutWidget1 ); $self->{scanList} = $scanList; $scanList->setObjectName( "scanList" ); $verticalLayout->addWidget( $scanList ); - my $dzListLabel = Qt::Label( $layoutWidget ); + my $dzListLabel = Qt::Label( $layoutWidget1 ); $self->{dzListLabel} = $dzListLabel; $dzListLabel->setObjectName( "dzListLabel" ); $dzListLabel->setWordWrap( 0 ); $verticalLayout->addWidget( $dzListLabel ); - my $scanListdz = Qt::LineEdit( $layoutWidget ); + my $scanListdz = Qt::LineEdit( $layoutWidget1 ); $self->{scanListdz} = $scanListdz; $scanListdz->setObjectName( "scanListdz" ); $scanListdz->setEnabled( 0 ); $verticalLayout->addWidget( $scanListdz ); - my $radioLoop = Qt::RadioButton( $layoutWidget ); + my $radioLoop = Qt::RadioButton( $layoutWidget1 ); $self->{radioLoop} = $radioLoop; $radioLoop->setObjectName( "radioLoop" ); $radioLoop->setChecked( 1 ); @@ -1404,48 +1086,48 @@ sub setupUi { $scanLoop->setSpacing( 0 ); $scanLoop->setMargin( 0 ); $scanLoop->setObjectName( "scanLoop" ); - my $textLabel2 = Qt::Label( $layoutWidget ); + my $textLabel2 = Qt::Label( $layoutWidget1 ); $self->{textLabel2} = $textLabel2; $textLabel2->setObjectName( "textLabel2" ); $textLabel2->setWordWrap( 0 ); $scanLoop->addWidget( $textLabel2 ); - my $scanFrom = Qt::LineEdit( $layoutWidget ); + my $scanFrom = Qt::LineEdit( $layoutWidget1 ); $self->{scanFrom} = $scanFrom; $scanFrom->setObjectName( "scanFrom" ); - $sizePolicy8->setHeightForWidth( $scanFrom->sizePolicy()->hasHeightForWidth() ); - $scanFrom->setSizePolicy( $sizePolicy8 ); + $sizePolicy6->setHeightForWidth( $scanFrom->sizePolicy()->hasHeightForWidth() ); + $scanFrom->setSizePolicy( $sizePolicy6 ); $scanLoop->addWidget( $scanFrom ); - my $textLabel2_2 = Qt::Label( $layoutWidget ); + my $textLabel2_2 = Qt::Label( $layoutWidget1 ); $self->{textLabel2_2} = $textLabel2_2; $textLabel2_2->setObjectName( "textLabel2_2" ); $textLabel2_2->setWordWrap( 0 ); $scanLoop->addWidget( $textLabel2_2 ); - my $scanTo = Qt::LineEdit( $layoutWidget ); + my $scanTo = Qt::LineEdit( $layoutWidget1 ); $self->{scanTo} = $scanTo; $scanTo->setObjectName( "scanTo" ); - $sizePolicy8->setHeightForWidth( $scanTo->sizePolicy()->hasHeightForWidth() ); - $scanTo->setSizePolicy( $sizePolicy8 ); + $sizePolicy6->setHeightForWidth( $scanTo->sizePolicy()->hasHeightForWidth() ); + $scanTo->setSizePolicy( $sizePolicy6 ); $scanLoop->addWidget( $scanTo ); - my $textLabel2_2_2_2 = Qt::Label( $layoutWidget ); + my $textLabel2_2_2_2 = Qt::Label( $layoutWidget1 ); $self->{textLabel2_2_2_2} = $textLabel2_2_2_2; $textLabel2_2_2_2->setObjectName( "textLabel2_2_2_2" ); $textLabel2_2_2_2->setWordWrap( 0 ); $scanLoop->addWidget( $textLabel2_2_2_2 ); - my $scanStep = Qt::LineEdit( $layoutWidget ); + my $scanStep = Qt::LineEdit( $layoutWidget1 ); $self->{scanStep} = $scanStep; $scanStep->setObjectName( "scanStep" ); - $sizePolicy8->setHeightForWidth( $scanStep->sizePolicy()->hasHeightForWidth() ); - $scanStep->setSizePolicy( $sizePolicy8 ); + $sizePolicy6->setHeightForWidth( $scanStep->sizePolicy()->hasHeightForWidth() ); + $scanStep->setSizePolicy( $sizePolicy6 ); $scanLoop->addWidget( $scanStep ); @@ -1473,12 +1155,12 @@ sub setupUi { my $label_2 = Qt::Label( $layoutWidget2 ); $self->{label_2} = $label_2; $label_2->setObjectName( "label_2" ); - my $sizePolicy9 = Qt::SizePolicy( Qt::SizePolicy::Fixed(), Qt::SizePolicy::Preferred() ); - $self->{$sizePolicy9} = $sizePolicy9; - $sizePolicy9->setHorizontalStretch( 0 ); - $sizePolicy9->setVerticalStretch( 0 ); - $sizePolicy9->setHeightForWidth( $label_2->sizePolicy()->hasHeightForWidth() ); - $label_2->setSizePolicy( $sizePolicy9 ); + my $sizePolicy7 = Qt::SizePolicy( Qt::SizePolicy::Fixed(), Qt::SizePolicy::Preferred() ); + $self->{$sizePolicy7} = $sizePolicy7; + $sizePolicy7->setHorizontalStretch( 0 ); + $sizePolicy7->setVerticalStretch( 0 ); + $sizePolicy7->setHeightForWidth( $label_2->sizePolicy()->hasHeightForWidth() ); + $label_2->setSizePolicy( $sizePolicy7 ); $label_2->setMinimumSize( Qt::Size(110, 0) ); $label_2->setMaximumSize( Qt::Size(140, 16777215) ); @@ -1506,8 +1188,8 @@ sub setupUi { my $label_3 = Qt::Label( $layoutWidget2 ); $self->{label_3} = $label_3; $label_3->setObjectName( "label_3" ); - $sizePolicy9->setHeightForWidth( $label_3->sizePolicy()->hasHeightForWidth() ); - $label_3->setSizePolicy( $sizePolicy9 ); + $sizePolicy7->setHeightForWidth( $label_3->sizePolicy()->hasHeightForWidth() ); + $label_3->setSizePolicy( $sizePolicy7 ); $label_3->setMinimumSize( Qt::Size(110, 0) ); $label_3->setMaximumSize( Qt::Size(140, 16777215) ); @@ -1536,7 +1218,7 @@ sub setupUi { my $menuBar = Qt::MenuBar( $trimSPGUI4 ); $self->{menuBar} = $menuBar; $menuBar->setObjectName( "menuBar" ); - $menuBar->setGeometry( Qt::Rect(0, 0, 722, 19) ); + $menuBar->setGeometry( Qt::Rect(0, 0, 722, 20) ); my $file = Qt::Menu( $menuBar ); $self->{file} = $file; $file->setObjectName( "file" ); @@ -1547,29 +1229,7 @@ sub setupUi { $self->{helpMenu} = $helpMenu; $helpMenu->setObjectName( "helpMenu" ); $trimSPGUI4->setMenuBar( $menuBar ); - Qt::Widget::setTabOrder( $tabs, $numLayer ); - Qt::Widget::setTabOrder( $numLayer, $layer1Comp ); - Qt::Widget::setTabOrder( $layer1Comp, $layer1rho ); - Qt::Widget::setTabOrder( $layer1rho, $layer1d ); - Qt::Widget::setTabOrder( $layer1d, $layer2Comp ); - Qt::Widget::setTabOrder( $layer2Comp, $layer2rho ); - Qt::Widget::setTabOrder( $layer2rho, $layer2d ); - Qt::Widget::setTabOrder( $layer2d, $layer3Comp ); - Qt::Widget::setTabOrder( $layer3Comp, $layer3rho ); - Qt::Widget::setTabOrder( $layer3rho, $layer3d ); - Qt::Widget::setTabOrder( $layer3d, $layer4Comp ); - Qt::Widget::setTabOrder( $layer4Comp, $layer4rho ); - Qt::Widget::setTabOrder( $layer4rho, $layer4d ); - Qt::Widget::setTabOrder( $layer4d, $layer5Comp ); - Qt::Widget::setTabOrder( $layer5Comp, $layer5rho ); - Qt::Widget::setTabOrder( $layer5rho, $layer5d ); - Qt::Widget::setTabOrder( $layer5d, $layer6Comp ); - Qt::Widget::setTabOrder( $layer6Comp, $layer6rho ); - Qt::Widget::setTabOrder( $layer6rho, $layer6d ); - Qt::Widget::setTabOrder( $layer6d, $layer7Comp ); - Qt::Widget::setTabOrder( $layer7Comp, $layer7rho ); - Qt::Widget::setTabOrder( $layer7rho, $layer7d ); - Qt::Widget::setTabOrder( $layer7d, $projComboBox ); + Qt::Widget::setTabOrder( $tabs, $projComboBox ); Qt::Widget::setTabOrder( $projComboBox, $numberProj ); Qt::Widget::setTabOrder( $numberProj, $z0 ); Qt::Widget::setTabOrder( $z0, $dz ); @@ -1619,12 +1279,12 @@ sub setupUi { $file->addAction( $fileQuitAction ); $plot->addAction( $plotProfilesAction ); $plot->addAction( $plotFractionsAction ); + $plot->addAction( $plotMeanAction ); $helpMenu->addAction( $helpContentsAction ); $helpMenu->addAction( $helpAboutAction ); $self->retranslateUi( $trimSPGUI4 ); Qt::Object::connect($start, SIGNAL 'clicked()' , $trimSPGUI4, SLOT 'CollectValues()' ); - Qt::Object::connect($numLayer, SIGNAL 'valueChanged(int)' , $trimSPGUI4, SLOT 'PrepLayers()' ); Qt::Object::connect($browse, SIGNAL 'clicked()' , $trimSPGUI4, SLOT 'DirectoryBrowse()' ); Qt::Object::connect($quit, SIGNAL 'clicked()' , $trimSPGUI4, SLOT 'ConfirmQuit()' ); Qt::Object::connect($fileSaveAction, SIGNAL 'activated()' , $trimSPGUI4, SLOT 'SaveFile()' ); @@ -1646,13 +1306,6 @@ sub setupUi { Qt::Object::connect($projComboBox, SIGNAL 'currentIndexChanged(int)' , $trimSPGUI4, SLOT 'ProjSmartDefaults()' ); Qt::Object::connect($trimBinBrowse, SIGNAL 'clicked()' , $trimSPGUI4, SLOT 'TrimBin()' ); Qt::Object::connect($guiPathBrowse, SIGNAL 'clicked()' , $trimSPGUI4, SLOT 'GUIPath()' ); - Qt::Object::connect($layer1Comp, SIGNAL 'textChanged(QString)' , $trimSPGUI4, SLOT 'findDensity()' ); - Qt::Object::connect($layer2Comp, SIGNAL 'textChanged(QString)' , $trimSPGUI4, SLOT 'findDensity()' ); - Qt::Object::connect($layer3Comp, SIGNAL 'textChanged(QString)' , $trimSPGUI4, SLOT 'findDensity()' ); - Qt::Object::connect($layer4Comp, SIGNAL 'textChanged(QString)' , $trimSPGUI4, SLOT 'findDensity()' ); - Qt::Object::connect($layer5Comp, SIGNAL 'textChanged(QString)' , $trimSPGUI4, SLOT 'findDensity()' ); - Qt::Object::connect($layer6Comp, SIGNAL 'textEdited(QString)' , $trimSPGUI4, SLOT 'findDensity()' ); - Qt::Object::connect($layer7Comp, SIGNAL 'textChanged(QString)' , $trimSPGUI4, SLOT 'findDensity()' ); $tabs->setCurrentIndex( 0 ); @@ -1699,23 +1352,42 @@ sub retranslateUi { $self->{fileOpenAction}->setText( Qt::Application::translate( 'TrimSPGUI4', "&Open...", undef, Qt::Application::UnicodeUTF8() ) ); $self->{fileOpenAction}->setIconText( Qt::Application::translate( 'TrimSPGUI4', "Open", undef, Qt::Application::UnicodeUTF8() ) ); $self->{fileOpenAction}->setShortcut( Qt::KeySequence( Qt::Application::translate( 'TrimSPGUI4', "Ctrl+O", undef, Qt::Application::UnicodeUTF8() ) ) ); + $self->{plotMeanAction}->setText( Qt::Application::translate( 'TrimSPGUI4', "Plot Mean/Stragg.", undef, Qt::Application::UnicodeUTF8() ) ); + $self->{plotMeanAction}->setShortcut( Qt::KeySequence( Qt::Application::translate( 'TrimSPGUI4', "Ctrl+P, Ctrl+M", undef, Qt::Application::UnicodeUTF8() ) ) ); $self->{groupBox1}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Layers", undef, Qt::Application::UnicodeUTF8() ) ); $self->{textLabel1_4}->setText( Qt::Application::translate( 'TrimSPGUI4', "Number of Layers", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{textLabel2_4}->setToolTip( Qt::Application::translate( 'TrimSPGUI4', "Chemical formula", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{textLabel2_4}->setText( Qt::Application::translate( 'TrimSPGUI4', "Composition", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{textLabel3}->setText( Qt::Application::translate( 'TrimSPGUI4', "Density [g/cm3]", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{textLabel4}->setText( Qt::Application::translate( 'TrimSPGUI4', "Thickness [\303\205]", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{boxL1}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Layer 1", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{layer1Comp}->setToolTip( Qt::Application::translate( 'TrimSPGUI4', "Chemical formula of L1", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{layer1Comp}->setText( Qt::Application::translate( 'TrimSPGUI4', "SrTiO3", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{layer1rho}->setText( Qt::Application::translate( 'TrimSPGUI4', "5.12", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{layer1d}->setText( Qt::Application::translate( 'TrimSPGUI4', "200", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{boxL2}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Layer 2", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{boxL3}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Layer 3", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{boxL4}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Layer 4", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{boxL5}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Layer 5", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{boxL6}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Layer 6", undef, Qt::Application::UnicodeUTF8() ) ); - $self->{boxL7}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Layer 7", undef, Qt::Application::UnicodeUTF8() ) ); + $self->{numLayer}->setWhatsThis( Qt::Application::translate( 'TrimSPGUI4', "Select the number of the layers of your structure (maximum 7 layers).", undef, Qt::Application::UnicodeUTF8() ) ); + my $layerTable = $self->{layerTable}; + if ( $layerTable->columnCount < 3 ) { + $layerTable->setColumnCount(3); + } + + my $__colItem = Qt::TableWidgetItem(); + $__colItem->setText( Qt::Application::translate( 'TrimSPGUI4', "Composition", undef, Qt::Application::UnicodeUTF8() ) ); + $layerTable->setHorizontalHeaderItem( 0, $__colItem ); + + my $__colItem1 = Qt::TableWidgetItem(); + $__colItem1->setText( Qt::Application::translate( 'TrimSPGUI4', "Density [g/cm^3]", undef, Qt::Application::UnicodeUTF8() ) ); + $layerTable->setHorizontalHeaderItem( 1, $__colItem1 ); + + my $__colItem2 = Qt::TableWidgetItem(); + $__colItem2->setText( Qt::Application::translate( 'TrimSPGUI4', "Thickness [A]", undef, Qt::Application::UnicodeUTF8() ) ); + $layerTable->setHorizontalHeaderItem( 2, $__colItem2 ); + if ( $layerTable->rowCount() < 1 ) { + $layerTable->setRowCount(1); + } + + my $__item = Qt::TableWidgetItem(); + $__item->setText( Qt::Application::translate( 'TrimSPGUI4', "SrTiO3", undef, Qt::Application::UnicodeUTF8() ) ); + $layerTable->setItem( 0, 0, $__item ); + + my $__item1 = Qt::TableWidgetItem(); + $__item1->setText( Qt::Application::translate( 'TrimSPGUI4', "5.12", undef, Qt::Application::UnicodeUTF8() ) ); + $layerTable->setItem( 0, 1, $__item1 ); + + my $__item2 = Qt::TableWidgetItem(); + $__item2->setText( Qt::Application::translate( 'TrimSPGUI4', "1000", undef, Qt::Application::UnicodeUTF8() ) ); + $layerTable->setItem( 0, 2, $__item2 ); $self->{projParam}->setTitle( Qt::Application::translate( 'TrimSPGUI4', "Projectile parameters", undef, Qt::Application::UnicodeUTF8() ) ); $self->{z0Label}->setText( Qt::Application::translate( 'TrimSPGUI4', "Starting depth [\303\205]", undef, Qt::Application::UnicodeUTF8() ) ); $self->{numberLabel}->setText( Qt::Application::translate( 'TrimSPGUI4', "Number of projectiles", undef, Qt::Application::UnicodeUTF8() ) );