Added save/load or an initialization file for GUI parameters.

This commit is contained in:
2010-08-06 09:12:36 +00:00
parent 7699459193
commit b8d6f23a80
4 changed files with 782 additions and 97 deletions

View File

@ -251,7 +251,7 @@ void TrimSPGUI::CollectValues()
# Scan parameters only if selected
$All{"ScanSeq"}=ScanSeq->isChecked();
if ($All{"ScanSeq"}) {
# if ($All{"ScanSeq"}) {
$All{"ERadio"}=ERadio->isChecked();
$All{"SigERadio"}=SigERadio->isChecked();
$All{"NProjRadio"}=NProjRadio->isChecked();
@ -264,7 +264,7 @@ void TrimSPGUI::CollectValues()
$All{"SFrom"}=SFrom->text();
$All{"STo"}=STo->text();
$All{"SStep"}=SStep->text();
}
# }
# Return values to caller
return %All;
@ -665,3 +665,197 @@ Copyright 2009 by Zaher Salman and the LEM Group.
";
my $HelpWindow = Qt::MessageBox::about( this, "About TrimSP GUI",$HelpText);
}
void TrimSPGUI::OpenFile()
{
# Types of different input
my %Types = ();
# 0 - text (this is default), 1 - spin box, 2 - radio button, 3 - combo box
$Types{"NL"}=1 ;
$Types{"ProjType"}= 3;
$Types{"ScanSeq"}= 2;
$Types{"ERadio"}= 2;
$Types{"SigERadio"}= 2;
$Types{"NProjRadio"}= 2;
$Types{"dRadio"}= 2;
$Types{"ScandL"}= 1;
$Types{"ListRadio"}= 2;
$Types{"ScanListdz"}= 0;
$Types{"LoopRadio"}= 2;
my $file=Qt::FileDialog::getOpenFileName(
".",
"Initialization file (.* *.*)",
this,
"open file dialog",
"Choose an initialization file");
# If the user gave a valid filename try to read it
if ($file ne "") {
open (INF,q{<},"$file" );
my @lines = <INF>;
close(INF);
my $Attrib="";
foreach my $line (@lines) {
my @InitPar = split (/=/,$line);
# Check it is not empty or title line
if ($InitPar[0] ne "" && $InitPar[1] ne "") {
$Attrib = child($InitPar[0]);
if ($Types{$InitPar[0]} == 1) {
$Attrib->setValue($InitPar[1]);
} elsif ($Types{$InitPar[0]} == 2 ) {
if($InitPar[1] == 1) {
$Attrib->setChecked(1);
} else {
$Attrib->setChecked(0);
}
} elsif ($Types{$InitPar[0]} == 3) {
$Attrib-> setCurrentText($InitPar[1]);
} else {
$Attrib->setText($InitPar[1]);
}
}
}
}
}
void TrimSPGUI::SaveFile()
{
my %All = CollectValues();
my $InitFile="
[Layers]
NL=$All{'NL'}
L1Comp=$All{'L1Comp'}
L1rho=$All{'L1rho'}
L1d=$All{'L1d'}
L2Comp=$All{'L2Comp'}
L2rho=$All{'L2rho'}
L2d=$All{'L2d'}
L3Comp=$All{'L3Comp'}
L3rho=$All{'L3rho'}
L3d=$All{'L3d'}
L4Comp=$All{'L4Comp'}
L4rho=$All{'L4rho'}
L4d=$All{'L4d'}
L5Comp=$All{'L5Comp'}
L5rho=$All{'L5rho'}
L5d=$All{'L5d'}
L6Comp=$All{'L6Comp'}
L6rho=$All{'L6rho'}
L6d=$All{'L6d'}
L7Comp=$All{'L7Comp'}
L7rho=$All{'L7rho'}
L7d=$All{'L7d'}
[ProjectileParameters]
ProjType=$All{'ProjType'}
NProj=$All{'NProj'}
z0=$All{'z0'}
dz=$All{'dz'}
E=$All{'E'}
SigE=$All{'SigE'}
Angle=$All{'Angle'}
SigAngle=$All{'SigAngle'}
Seed=$All{'Seed'}
[Files]
FNPre=$All{'FNPre'}
Path=$All{'Path'}
[ScanSequence]
ScanSeq=$All{'ScanSeq'}
ERadio=$All{'ERadio'}
SigERadio=$All{'SigERadio'}
NProjRadio=$All{'NProjRadio'}
dRadio=$All{'dRadio'}
ListRadio=$All{'ListRadio'}
ScanList=$All{'ScanList'}
ScanListdz=$All{'ScanListdz'}
LoopRadio=$All{'LoopRadio'}
SFrom=$All{'SFrom'}
STo=$All{'STo'}
SStep=$All{'SStep'}
";
# Save to default file name "TriumSP.cfg"
my $file = "TrimSP.cfg";
open (OUTF,q{>},"$file" );
print OUTF (" $InitFile");
close(OUTF);
}
void TrimSPGUI::SaveFileAs()
{
my %All = CollectValues();
my $InitFile="
[Layers]
NL=$All{'NL'}
L1Comp=$All{'L1Comp'}
L1rho=$All{'L1rho'}
L1d=$All{'L1d'}
L2Comp=$All{'L2Comp'}
L2rho=$All{'L2rho'}
L2d=$All{'L2d'}
L3Comp=$All{'L3Comp'}
L3rho=$All{'L3rho'}
L3d=$All{'L3d'}
L4Comp=$All{'L4Comp'}
L4rho=$All{'L4rho'}
L4d=$All{'L4d'}
L5Comp=$All{'L5Comp'}
L5rho=$All{'L5rho'}
L5d=$All{'L5d'}
L6Comp=$All{'L6Comp'}
L6rho=$All{'L6rho'}
L6d=$All{'L6d'}
L7Comp=$All{'L7Comp'}
L7rho=$All{'L7rho'}
L7d=$All{'L7d'}
[ProjectileParameters]
ProjType=$All{'ProjType'}
NProj=$All{'NProj'}
z0=$All{'z0'}
dz=$All{'dz'}
E=$All{'E'}
SigE=$All{'SigE'}
Angle=$All{'Angle'}
SigAngle=$All{'SigAngle'}
Seed=$All{'Seed'}
[Files]
FNPre=$All{'FNPre'}
Path=$All{'Path'}
[ScanSequence]
ScanSeq=$All{'ScanSeq'}
ERadio=$All{'ERadio'}
SigERadio=$All{'SigERadio'}
NProjRadio=$All{'NProjRadio'}
dRadio=$All{'dRadio'}
ListRadio=$All{'ListRadio'}
ScanList=$All{'ScanList'}
ScanListdz=$All{'ScanListdz'}
LoopRadio=$All{'LoopRadio'}
SFrom=$All{'SFrom'}
STo=$All{'STo'}
SStep=$All{'SStep'}
";
my $file=Qt::FileDialog::getSaveFileName(
"TrimSP.cfg",
"TrimSP GUI Initialization file (*.cfg)",
this,
"save file dialog",
"Choose a filename to save under");
# If the user gave a filename the copy to it
if ($file ne "") {
open (OUTF,q{>},"$file" );
print OUTF (" $InitFile");
close(OUTF);
}
}