Add possibility to change TRIMBIN and GUIPATH interactively.

This commit is contained in:
2013-02-05 14:24:48 +00:00
parent a1bff6fb09
commit ba50550a62
4 changed files with 2429 additions and 2055 deletions

View File

@ -2,6 +2,6 @@
# Copyright 2009 by Zaher Salman and the LEM Group.
export TRIMBIN=/usr/local/bin/trimsp7l
export PERLLIB=$HOME/LEM/simulation/trimsp/TrimSPGUI
perl $HOME/LEM/simulation/trimsp/TrimSPGUI/TrimSPGUI.pl
export PERLLIB=$HOME/LEM/simulation/trimsp/src/TrimSPGUI
perl $PERLLIB/TrimSPGUI.pl

View File

@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'TrimSPGUI.ui'
#
# Created: Tue Jan 10 15:16:59 2012
# Created: Tue Feb 5 15:22:18 2013
# by: The PerlQt User Interface Compiler (puic)
#
# WARNING! All changes made in this file will be lost!
@ -28,8 +28,11 @@ use Qt::slots
OpenAboutWindow => [],
OpenFile => [],
SaveFile => [],
SaveFileAs => [];
SaveFileAs => [],
GUIPath => [],
TrimBin => [];
use Qt::attributes qw(
Progress
tabs
LayersTab
groupBox1
@ -145,7 +148,13 @@ use Qt::attributes qw(
SigAngleRadio
AngleRadio
ERadio
Progress
ConfigTab
textLabel1_2_2
TrimGUIPath
GUIPathBrowse
textLabel1_2
TRIMBIN
TrimBinBrowse
MenuBar
File
Plot
@ -163,12 +172,10 @@ use Qt::attributes qw(
editPasteAction
plotProfilesAction
helpContentsAction
helpIndexAction
helpAboutAction
plotFractionsAction
fileStartAction
helpTmpAction
fileLoadAction
fileConfigureAction
);
@ -1171,6 +1178,93 @@ our $image14_data =
"QtQta#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacQtQt",
"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"];
our $image15;
our $image15_data = pack 'C*',
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16,
0x08, 0x06, 0x00, 0x00, 0x00, 0xc4, 0xb4, 0x6c, 0x3b, 0x00, 0x00, 0x03,
0xb3, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0xa5, 0xd2, 0x4f, 0x4c, 0x14,
0x57, 0x1c, 0x07, 0xf0, 0xef, 0x9b, 0xd9, 0xbf, 0x2c, 0xec, 0x0e, 0xb8,
0x65, 0x41, 0xa4, 0x25, 0x36, 0x28, 0xfd, 0x13, 0x9d, 0xd4, 0x36, 0x2d,
0x5a, 0xe3, 0x6e, 0x7a, 0x70, 0x21, 0x1e, 0x9a, 0xb4, 0x34, 0xc6, 0x78,
0xe0, 0xe0, 0xb5, 0xc7, 0x46, 0x2f, 0xa6, 0x90, 0xf6, 0xb0, 0x3d, 0xb1,
0x4d, 0x63, 0x22, 0x35, 0xe9, 0x12, 0x4d, 0x88, 0x1a, 0x2b, 0x29, 0x89,
0x46, 0xea, 0x36, 0x6b, 0x0d, 0xb6, 0xa5, 0x87, 0x75, 0xaa, 0x54, 0x28,
0xa4, 0x65, 0xad, 0x82, 0x55, 0x16, 0x3b, 0xcb, 0xe2, 0xce, 0xbe, 0x37,
0x33, 0xef, 0xf5, 0xb0, 0x48, 0x81, 0x6e, 0xc2, 0xc6, 0x7e, 0x93, 0x5f,
0x32, 0xc9, 0xfc, 0x7e, 0x9f, 0x99, 0xf7, 0x9b, 0x21, 0x58, 0x97, 0x2b,
0x57, 0x7e, 0xbc, 0x19, 0x08, 0xf8, 0xd4, 0xba, 0xba, 0x00, 0x0c, 0x83,
0x62, 0x71, 0xf1, 0x09, 0x0a, 0x05, 0x63, 0x80, 0x73, 0xd1, 0xdb, 0xd9,
0xb9, 0x27, 0xb3, 0xbe, 0xbf, 0xe2, 0x0c, 0x0f, 0x5f, 0x4f, 0xa4, 0xd3,
0x93, 0x62, 0x75, 0xb2, 0x59, 0x5d, 0x5c, 0xbd, 0x3a, 0x26, 0x86, 0x86,
0xae, 0x75, 0x3f, 0x33, 0x0c, 0x00, 0xe7, 0xcf, 0x27, 0x13, 0x63, 0x63,
0xe3, 0x6b, 0x70, 0xc6, 0x4c, 0x31, 0x32, 0xf2, 0x93, 0x38, 0x7b, 0xf6,
0xdb, 0xf0, 0xff, 0xc2, 0xcf, 0x9c, 0xb9, 0x9c, 0x18, 0x1d, 0xd5, 0xd6,
0xe0, 0xb9, 0xdc, 0x92, 0x38, 0x7d, 0xfa, 0xd2, 0x4c, 0x45, 0x40, 0x7f,
0xff, 0xc5, 0xc4, 0xc9, 0x93, 0x5f, 0xab, 0xe5, 0xee, 0x9d, 0x3a, 0x35,
0x34, 0xa4, 0x69, 0x53, 0x2b, 0x30, 0xe7, 0x5c, 0x24, 0x93, 0x63, 0xa2,
0xbf, 0xff, 0x62, 0xd9, 0xfe, 0xd5, 0x91, 0x5c, 0x2e, 0x67, 0x37, 0x21,
0x24, 0x15, 0x8f, 0x0f, 0xae, 0x69, 0x8e, 0xc7, 0x07, 0xd5, 0xaa, 0x2a,
0x6f, 0x78, 0xeb, 0xd6, 0x26, 0x58, 0x96, 0x0d, 0xcb, 0xb2, 0x61, 0xdb,
0x1c, 0xb5, 0xb5, 0x7e, 0x50, 0xca, 0xc2, 0x15, 0xc0, 0x0e, 0x44, 0xa3,
0xed, 0x0a, 0x21, 0x24, 0x15, 0x8b, 0x0d, 0xa8, 0x00, 0x10, 0x8b, 0x0d,
0xa8, 0x7e, 0xbf, 0x2f, 0xb5, 0x7f, 0xff, 0x5b, 0x8a, 0x2c, 0x4b, 0x60,
0xcc, 0x04, 0xa5, 0x0c, 0x94, 0x32, 0x38, 0x1c, 0x32, 0x8a, 0x45, 0xa6,
0x6c, 0x08, 0x17, 0x8b, 0x0c, 0x7e, 0xbf, 0x0f, 0x1d, 0x1d, 0xbb, 0x15,
0x42, 0x48, 0xaa, 0xa7, 0xe7, 0xcb, 0xee, 0x12, 0xda, 0xae, 0x48, 0x92,
0x04, 0x4a, 0x4d, 0x50, 0x6a, 0x82, 0x31, 0x0b, 0x8c, 0x59, 0x98, 0x9d,
0x9d, 0x07, 0xa5, 0x2c, 0xb3, 0x21, 0x9c, 0xcd, 0xea, 0x7a, 0x09, 0xaf,
0x46, 0x47, 0xc7, 0x6e, 0xa5, 0xb1, 0x31, 0x98, 0x88, 0x46, 0xdb, 0x15,
0x59, 0x96, 0xc1, 0x98, 0xf9, 0x9f, 0x9a, 0x99, 0x99, 0x83, 0x61, 0xd0,
0x0d, 0x61, 0x79, 0xc7, 0x8e, 0x7d, 0x6d, 0x5e, 0xaf, 0x5b, 0x0d, 0x06,
0x15, 0x78, 0x3c, 0x6e, 0xb4, 0xb6, 0x36, 0x43, 0x92, 0x24, 0xd8, 0xb6,
0xbd, 0xa6, 0x28, 0x35, 0x31, 0x3b, 0xfb, 0x08, 0xf5, 0xf5, 0xb5, 0x98,
0x9e, 0xbe, 0xa7, 0x7e, 0x75, 0xf0, 0xae, 0xf7, 0xc3, 0xce, 0xfa, 0xc9,
0x2f, 0x2e, 0xcf, 0x17, 0xcb, 0xbe, 0x31, 0x63, 0x66, 0x6f, 0x32, 0xf9,
0xb3, 0x9e, 0xcd, 0xfe, 0xbd, 0x72, 0xec, 0x52, 0x59, 0x2b, 0x65, 0x18,
0x0c, 0x99, 0xcc, 0x1c, 0xf2, 0xf9, 0x02, 0x84, 0x10, 0xf8, 0xe0, 0x95,
0x71, 0xd5, 0x15, 0x72, 0xf6, 0x99, 0x16, 0x52, 0xb7, 0xfb, 0x5e, 0x5e,
0xb3, 0x6f, 0x21, 0x84, 0x02, 0x00, 0x04, 0x00, 0x8e, 0x1c, 0xf9, 0x54,
0xad, 0xaa, 0xf2, 0xa4, 0xf6, 0xee, 0x55, 0x95, 0x6d, 0xdb, 0x9e, 0x87,
0xc3, 0xe1, 0x78, 0xda, 0x06, 0x00, 0x30, 0x0c, 0x0a, 0xd3, 0xb4, 0xe0,
0x74, 0x3a, 0x40, 0x26, 0x4e, 0xc0, 0xcf, 0xbe, 0x83, 0xfb, 0xf1, 0x5f,
0x70, 0xbe, 0xba, 0x05, 0x0f, 0xc6, 0xb9, 0xc6, 0x39, 0x22, 0xaf, 0x1f,
0xbd, 0xa3, 0xaf, 0x7e, 0x00, 0x79, 0x7a, 0x71, 0xf8, 0xf0, 0x71, 0x55,
0x08, 0xd1, 0x57, 0x57, 0x17, 0x08, 0x87, 0x42, 0x75, 0xa8, 0xae, 0xf6,
0x22, 0x97, 0x5b, 0x02, 0x63, 0x16, 0x0e, 0x1c, 0x78, 0x1b, 0x81, 0x40,
0x35, 0x8c, 0x74, 0x1c, 0xbe, 0xc2, 0x08, 0x6a, 0x0b, 0x0f, 0x11, 0x94,
0x4d, 0xe4, 0xe0, 0x84, 0xd1, 0xd2, 0x84, 0x3f, 0x6f, 0x09, 0x8d, 0x73,
0x44, 0xf6, 0x1c, 0xff, 0x17, 0x27, 0x58, 0x97, 0xae, 0xae, 0x63, 0x2d,
0x00, 0x5a, 0x00, 0x84, 0x01, 0x5c, 0x03, 0xa0, 0x84, 0x42, 0x9b, 0x12,
0x07, 0xd5, 0x8c, 0xa2, 0x98, 0x49, 0x34, 0xba, 0x16, 0xa0, 0xb8, 0x00,
0x69, 0x79, 0x72, 0xd1, 0x22, 0xc8, 0x07, 0x82, 0x98, 0xd6, 0x88, 0xc6,
0xb9, 0x88, 0xbc, 0xf3, 0xc9, 0x84, 0x5e, 0x16, 0x2e, 0x97, 0x0b, 0x1f,
0xed, 0xea, 0x79, 0x61, 0x8b, 0xf1, 0x71, 0x5b, 0x93, 0x0e, 0x9f, 0x4b,
0x06, 0x59, 0x37, 0x55, 0xa0, 0x36, 0x16, 0x44, 0x0d, 0xee, 0xdc, 0x94,
0x34, 0xce, 0x11, 0xe9, 0x8c, 0x4d, 0xe8, 0x15, 0xc1, 0x97, 0x8e, 0xbe,
0xa4, 0x70, 0x8e, 0xd4, 0xce, 0x5d, 0x5c, 0x6d, 0xde, 0x2c, 0x96, 0xcf,
0xba, 0x3c, 0xca, 0x6c, 0x00, 0x02, 0xb6, 0xcd, 0xf1, 0x20, 0xeb, 0x44,
0x3a, 0x2d, 0x6b, 0x9c, 0x23, 0x22, 0x57, 0x02, 0x0f, 0xde, 0xc8, 0x16,
0xdf, 0x7f, 0xf3, 0xb9, 0x73, 0xf7, 0xef, 0x91, 0x68, 0x55, 0x8d, 0x68,
0x50, 0x9a, 0x3d, 0x80, 0xd7, 0x05, 0x50, 0x0b, 0x28, 0x30, 0x60, 0x61,
0x09, 0x52, 0xce, 0x80, 0x5f, 0x21, 0x90, 0xdc, 0xa4, 0x61, 0xee, 0xa1,
0xdc, 0x26, 0x55, 0x02, 0x03, 0xc0, 0x7b, 0x7d, 0x13, 0xba, 0x69, 0x89,
0xc8, 0x8d, 0x51, 0x49, 0xfb, 0xfd, 0x97, 0x22, 0x50, 0xed, 0x06, 0xf2,
0x45, 0x60, 0x89, 0x02, 0xf3, 0x79, 0xc0, 0xe4, 0xc0, 0xdd, 0x05, 0xb4,
0x36, 0x18, 0x70, 0x3a, 0xec, 0x77, 0x2b, 0x86, 0x01, 0xe0, 0xd0, 0x89,
0x49, 0xdd, 0xb4, 0x10, 0xf9, 0xfe, 0xba, 0xa4, 0x4d, 0xa5, 0x1e, 0x03,
0x36, 0x07, 0x7c, 0x2e, 0xa0, 0x68, 0x01, 0x05, 0x5a, 0xfa, 0x3b, 0x0d,
0x06, 0x97, 0xcc, 0x51, 0xd1, 0x2a, 0x56, 0xe7, 0x9b, 0x74, 0xb6, 0xd8,
0xb9, 0x33, 0x78, 0xee, 0x8f, 0x8c, 0x14, 0xad, 0x11, 0x46, 0x43, 0xd0,
0x4d, 0x81, 0x37, 0x5a, 0x4a, 0x6b, 0x21, 0x00, 0x65, 0xc0, 0x0f, 0x53,
0xbe, 0xca, 0x3e, 0x5e, 0xb9, 0xc4, 0x0f, 0x6d, 0x57, 0x38, 0x47, 0x6a,
0xdf, 0x8b, 0x39, 0xf5, 0xb5, 0xcd, 0xf9, 0x12, 0x6a, 0x4b, 0x18, 0xfe,
0x75, 0x13, 0xee, 0xe7, 0xdc, 0xbd, 0xcf, 0x0c, 0x03, 0xc0, 0x67, 0x5d,
0xdb, 0x15, 0xce, 0x31, 0xe4, 0x77, 0x5b, 0xe1, 0x80, 0xc7, 0xc2, 0xa3,
0x27, 0x2e, 0x9d, 0xd9, 0xd2, 0xe7, 0xc7, 0x2e, 0xfc, 0xd6, 0xf3, 0x0f,
0x73, 0xdc, 0xfe, 0x36, 0x28, 0xf8, 0xc9, 0xbd, 0x00, 0x00, 0x00, 0x00,
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82;
sub NEW
{
@ -1205,6 +1299,8 @@ sub NEW
$image12->loadFromData($image12_data, length ($image12_data), "PNG");
$image13 = Qt::Pixmap();
$image13->loadFromData($image13_data, length ($image13_data), "PNG");
$image15 = Qt::Pixmap();
$image15->loadFromData($image15_data, length ($image15_data), "PNG");
$image14 = Qt::Pixmap($image14_data);
@ -1215,9 +1311,13 @@ sub NEW
setIcon($image0 );
setCentralWidget(Qt::Widget(this, "qt_central_widget"));
my $TrimSPGUILayout = Qt::GridLayout(centralWidget(), 1, 1, 11, 6, '$TrimSPGUILayout');
Progress = Qt::ProgressBar(centralWidget(), "Progress");
Progress->setGeometry( Qt::Rect(11, 543, 714, 25) );
Progress->setFrameShape( &Qt::ProgressBar::WinPanel() );
tabs = Qt::TabWidget(centralWidget(), "tabs");
tabs->setGeometry( Qt::Rect(11, 11, 714, 526) );
LayersTab = Qt::Widget(tabs, "LayersTab");
@ -1684,12 +1784,44 @@ sub NEW
ERadio->setChecked( 1 );
tabs->insertTab( ScansTab, "" );
$TrimSPGUILayout->addWidget(tabs, 0, 0);
ConfigTab = Qt::Widget(tabs, "ConfigTab");
Progress = Qt::ProgressBar(centralWidget(), "Progress");
Progress->setFrameShape( &Qt::ProgressBar::WinPanel() );
my $LayoutWidget_6 = Qt::Widget(ConfigTab, '$LayoutWidget_6');
$LayoutWidget_6->setGeometry( Qt::Rect(10, 20, 680, 80) );
my $layout27_2 = Qt::GridLayout($LayoutWidget_6, 1, 1, 11, 6, '$layout27_2');
$TrimSPGUILayout->addWidget(Progress, 1, 0);
my $layout26_2 = Qt::HBoxLayout(undef, 0, 6, '$layout26_2');
textLabel1_2_2 = Qt::Label($LayoutWidget_6, "textLabel1_2_2");
textLabel1_2_2->setSizePolicy( Qt::SizePolicy(0, 5, 0, 0, textLabel1_2_2->sizePolicy()->hasHeightForWidth()) );
textLabel1_2_2->setMinimumSize( Qt::Size(110, 0) );
textLabel1_2_2->setMaximumSize( Qt::Size(130, 32767) );
$layout26_2->addWidget(textLabel1_2_2);
TrimGUIPath = Qt::LineEdit($LayoutWidget_6, "TrimGUIPath");
$layout26_2->addWidget(TrimGUIPath);
GUIPathBrowse = Qt::PushButton($LayoutWidget_6, "GUIPathBrowse");
$layout26_2->addWidget(GUIPathBrowse);
$layout27_2->addLayout($layout26_2, 1, 0);
my $layout25 = Qt::HBoxLayout(undef, 0, 6, '$layout25');
textLabel1_2 = Qt::Label($LayoutWidget_6, "textLabel1_2");
textLabel1_2->setSizePolicy( Qt::SizePolicy(0, 5, 0, 0, textLabel1_2->sizePolicy()->hasHeightForWidth()) );
textLabel1_2->setMinimumSize( Qt::Size(110, 0) );
textLabel1_2->setMaximumSize( Qt::Size(130, 32767) );
$layout25->addWidget(textLabel1_2);
TRIMBIN = Qt::LineEdit($LayoutWidget_6, "TRIMBIN");
$layout25->addWidget(TRIMBIN);
TrimBinBrowse = Qt::PushButton($LayoutWidget_6, "TrimBinBrowse");
$layout25->addWidget(TrimBinBrowse);
$layout27_2->addLayout($layout25, 0, 0);
tabs->insertTab( ConfigTab, "" );
fileNewAction= Qt::Action(this, "fileNewAction");
fileNewAction->setIconSet( Qt::IconSet($image3) );
@ -1717,7 +1849,6 @@ sub NEW
plotProfilesAction->setIconSet( Qt::IconSet($image0) );
helpContentsAction= Qt::Action(this, "helpContentsAction");
helpContentsAction->setIconSet( Qt::IconSet($image13) );
helpIndexAction= Qt::Action(this, "helpIndexAction");
helpAboutAction= Qt::Action(this, "helpAboutAction");
helpAboutAction->setIconSet( Qt::IconSet($image0) );
plotFractionsAction= Qt::Action(this, "plotFractionsAction");
@ -1727,8 +1858,8 @@ sub NEW
plotFractionsAction->setIconSet( Qt::IconSet($image14) );
fileStartAction= Qt::Action(this, "fileStartAction");
fileStartAction->setIconSet( Qt::IconSet($image1) );
helpTmpAction= Qt::Action(this, "helpTmpAction");
fileLoadAction= Qt::Action(this, "fileLoadAction");
fileConfigureAction= Qt::Action(this, "fileConfigureAction");
fileConfigureAction->setIconSet( Qt::IconSet($image15) );
@ -1789,6 +1920,8 @@ sub NEW
Qt::Object::connect(AngleRadio, SIGNAL "toggled(bool)", this, SLOT "ToggleScanSingle()");
Qt::Object::connect(SigAngleRadio, SIGNAL "toggled(bool)", this, SLOT "ToggleScanSingle()");
Qt::Object::connect(plotFractionsAction, SIGNAL "activated()", this, SLOT "PlotFraction()");
Qt::Object::connect(GUIPathBrowse, SIGNAL "clicked()", this, SLOT "GUIPath()");
Qt::Object::connect(TrimBinBrowse, SIGNAL "clicked()", this, SLOT "TrimBin()");
setTabOrder(tabs, NL);
setTabOrder(NL, L1Comp);
@ -1980,6 +2113,13 @@ sub languageChange
ERadio->setText( trUtf8("Energy") );
Qt::WhatsThis::add(ERadio, trUtf8("Scan implantation energy."));
tabs->changeTab( ScansTab, trUtf8("Scans (Disbaled)") );
textLabel1_2_2->setText( trUtf8("TrimSP GUI path") );
TrimGUIPath->setText( undef );
GUIPathBrowse->setText( trUtf8("Browse") );
textLabel1_2->setText( trUtf8("TrimSP binary") );
TRIMBIN->setText( undef );
TrimBinBrowse->setText( trUtf8("Browse") );
tabs->changeTab( ConfigTab, trUtf8("Configuration") );
fileNewAction->setText( trUtf8("New") );
fileNewAction->setMenuText( trUtf8("&New") );
fileNewAction->setAccel( Qt::KeySequence( trUtf8("Ctrl+N") ) );
@ -2019,9 +2159,6 @@ sub languageChange
helpContentsAction->setText( trUtf8("Contents") );
helpContentsAction->setMenuText( trUtf8("&Contents...") );
helpContentsAction->setAccel( Qt::KeySequence( undef ) );
helpIndexAction->setText( trUtf8("Index") );
helpIndexAction->setMenuText( trUtf8("&Index...") );
helpIndexAction->setAccel( Qt::KeySequence( undef ) );
helpAboutAction->setText( trUtf8("About") );
helpAboutAction->setMenuText( trUtf8("&About") );
helpAboutAction->setAccel( Qt::KeySequence( undef ) );
@ -2031,10 +2168,8 @@ sub languageChange
fileStartAction->setText( trUtf8("&Start") );
fileStartAction->setMenuText( trUtf8("Start") );
fileStartAction->setAccel( Qt::KeySequence( trUtf8("Alt+S") ) );
helpTmpAction->setText( trUtf8("Tmp") );
helpTmpAction->setMenuText( trUtf8("Tmp") );
fileLoadAction->setText( trUtf8("Load") );
fileLoadAction->setMenuText( trUtf8("Load") );
fileConfigureAction->setText( trUtf8("Configure") );
fileConfigureAction->setMenuText( trUtf8("Configure") );
MenuBar->findItem( 1 )->setText( trUtf8("&File") );
MenuBar->findItem( 2 )->setText( trUtf8("&Plot") );
MenuBar->findItem( 3 )->setText( trUtf8("&Help") );
@ -2146,7 +2281,6 @@ sub PrepLayers
for (my $i=1;$i<=7;$i++) {
my $LayerName = "BoxL".$i;
my $LayerAttrib = child($LayerName);
print $LayerAttrib."\n";
if ($i<=$All{"NL"}) {
$LayerAttrib->setDisabled(0);
} else {
@ -2532,6 +2666,14 @@ sub StartSequenceOne
my @SdzValues=();
my $cmd="";
if (!$ENV{'TRIMBIN'}) {
# If trim.sp binary is not defined give warning and return
my $Warning = Qt::MessageBox::information( this, "Warning",
"Warning:\n TrimSP binary is not found.\n Define using environment variable, e.g.\n export TRIMBIN=/usr/local/bin/trimsp7l\n or use the Configuration tab.");
return(0);
}
# Cleanup from old files
if (-e "ausgabe1.inp") {
system("rm -f ausgabe*");
@ -2673,6 +2815,10 @@ sub DirectoryBrowse
# Change work directory accordingly
chdir ("$FileBrowser");
# Return a string with the directory name
return $FileBrowser ;
}
sub ConfirmQuit
@ -2972,6 +3118,45 @@ SStep=$All{'SStep'}
}
sub GUIPath
{
# This subroutine is used to define diffirent variables
my $FileBrowser = Qt::FileDialog::getExistingDirectory("./",this,"get existing directory","Choose the directory where the TrimSP GUI is.",1);
# If nothing is returned keep as is
if ($FileBrowser eq "") {
$FileBrowser="$ENV{'PERLLIB'}";
} else {
TrimGUIPath->setText($FileBrowser);
$ENV{'PERLLIB'}=$FileBrowser;
}
# Return a string with the directory name
return $FileBrowser ;
}
sub TrimBin
{
my $file=Qt::FileDialog::getOpenFileName(
"$ENV{'TRIMBIN'}",
"Trim.SP binary (.* *.* *)",
this,
"open file dialog",
"Select the Trim.SP binary file");
# If the user gave a valid filename try to read it
if ($file ne "") {
$ENV{'TRIMBIN'}=$file;
TRIMBIN->setText($file);
}
return $file;
}
1;

View File

@ -18,14 +18,34 @@
<property name="icon">
<pixmap>image0</pixmap>
</property>
<grid>
<widget class="QProgressBar">
<property name="name">
<cstring>unnamed</cstring>
<cstring>Progress</cstring>
</property>
<widget class="QTabWidget" row="0" column="0">
<property name="geometry">
<rect>
<x>11</x>
<y>543</y>
<width>714</width>
<height>25</height>
</rect>
</property>
<property name="frameShape">
<enum>WinPanel</enum>
</property>
</widget>
<widget class="QTabWidget">
<property name="name">
<cstring>tabs</cstring>
</property>
<property name="geometry">
<rect>
<x>11</x>
<y>11</y>
<width>714</width>
<height>526</height>
</rect>
</property>
<widget class="QWidget">
<property name="name">
<cstring>LayersTab</cstring>
@ -2130,16 +2150,141 @@
</widget>
</widget>
</widget>
</widget>
<widget class="QProgressBar" row="1" column="0">
<widget class="QWidget">
<property name="name">
<cstring>Progress</cstring>
<cstring>ConfigTab</cstring>
</property>
<property name="frameShape">
<enum>WinPanel</enum>
<attribute name="title">
<string>Configuration</string>
</attribute>
<widget class="QLayoutWidget">
<property name="name">
<cstring>layout27</cstring>
</property>
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>680</width>
<height>80</height>
</rect>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="QLayoutWidget" row="1" column="0">
<property name="name">
<cstring>layout26</cstring>
</property>
<hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="QLabel">
<property name="name">
<cstring>textLabel1_2_2</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>0</hsizetype>
<vsizetype>5</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>110</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>32767</height>
</size>
</property>
<property name="text">
<string>TrimSP GUI path</string>
</property>
</widget>
<widget class="QLineEdit">
<property name="name">
<cstring>TrimGUIPath</cstring>
</property>
<property name="text">
<string></string>
</property>
</widget>
<widget class="QPushButton">
<property name="name">
<cstring>GUIPathBrowse</cstring>
</property>
<property name="text">
<string>Browse</string>
</property>
</widget>
</hbox>
</widget>
<widget class="QLayoutWidget" row="0" column="0">
<property name="name">
<cstring>layout25</cstring>
</property>
<hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="QLabel">
<property name="name">
<cstring>textLabel1_2</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>0</hsizetype>
<vsizetype>5</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>110</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>32767</height>
</size>
</property>
<property name="text">
<string>TrimSP binary</string>
</property>
</widget>
<widget class="QLineEdit">
<property name="name">
<cstring>TRIMBIN</cstring>
</property>
<property name="text">
<string></string>
</property>
</widget>
<widget class="QPushButton">
<property name="name">
<cstring>TrimBinBrowse</cstring>
</property>
<property name="text">
<string>Browse</string>
</property>
</widget>
</hbox>
</widget>
</grid>
</widget>
</widget>
</widget>
</widget>
<menubar>
<property name="name">
@ -2390,20 +2535,6 @@
<string></string>
</property>
</action>
<action>
<property name="name">
<cstring>helpIndexAction</cstring>
</property>
<property name="text">
<string>Index</string>
</property>
<property name="menuText">
<string>&amp;Index...</string>
</property>
<property name="accel">
<string></string>
</property>
</action>
<action>
<property name="name">
<cstring>helpAboutAction</cstring>
@ -2466,24 +2597,16 @@
</action>
<action>
<property name="name">
<cstring>helpTmpAction</cstring>
<cstring>fileConfigureAction</cstring>
</property>
<property name="iconSet">
<iconset>image15</iconset>
</property>
<property name="text">
<string>Tmp</string>
<string>Configure</string>
</property>
<property name="menuText">
<string>Tmp</string>
</property>
</action>
<action>
<property name="name">
<cstring>fileLoadAction</cstring>
</property>
<property name="text">
<string>Load</string>
</property>
<property name="menuText">
<string>Load</string>
<string>Configure</string>
</property>
</action>
</actions>
@ -2533,6 +2656,9 @@
<image name="image14">
<data format="XPM.GZ" length="3649">789c9d95db521c390c86ef798a297497da52a6bba74fb5b517092401120ec319b6f6c2ed6e730a1060386eedbbaffc4b4d480224a45dd3e36fa4df9665cbf3fad5607b6571f0eaf5d4c5c44d0efcc0efbbf3c1abf6f2f8f8f6ef7ffefa776a3a1b0ed26c9064d9209dfe636a9a9b811f50126203b791d39086228b4c75e4918f0d3c13391fe5a3007f3a04e749d234d08f95f35ced0ee3e7656cb0773d071defcb3deb78bbe03aa9920a1cc04ddea89d3f80dbbc35ff09b8cb3be3f7918b613134de022745625c82b3226bb03e3e06e3019ff66cf3dd82cba28faf02b745ab7a5a02077157ff3472194a632a22cb62129b0ff9ac5ce5cc7e0e6e2a5b1f61beca57de783b729dd6a9f11ab8acfb78e6c0beeefde7c1a1eee371915d1a1bec39d83b6ff133b873963fa7fe2136d891ef66d8f4f95c00a74d1f4f02ce5279c0a9729996ca9972548047c6967f47e0b8c139e2d5f1eaa6b6f1876097b4490bde0487a65f1fce8fcf7c667c072e7d9f1f0feebcad8f719e7cf0fdfeac466eebd6e673f06f5d6cf0dfead9fcf7c08d4f3b3d2f73ca6dbf7f1760796c3ce4b7ed62831de7ad1b767d3e6fc059d7c78ff9bb516cb01f814bdfea7c740daebacaf467e0baebf385f3dbb93a75eaff192cd39bfd00dc096b3ccbc67d7e56228761b0f818f909f14250fd3a380b7dbc27e03c58bd13ea3ba00060473d066c1818fb1de206a0fef9e69ed58ef31edad0c7bb03ee620337f7acf637e0106f24e847c6f2c03e6bec72ddcf73633970b0ef1bcb8d02fea41c6f10f81f1aa7859edf2b63b91160df356e0a1d8f8c7da1eb3b502e87a58ef7d6b82d311f1f197725d6c7f3caf18600af1bcb96836dbd7556eb7db2609cd75a3fcbc645adfbdf1acb033e31961b03fe95b11c2170a1ec864ee3bd301e39cdef9ab10408de34ae1dc667cb5f933409b834b6fa67cbb75c78aa5f32f68dc673a6ec13affa4563a968c4dfb35c61e0b1b15438fc778ca5813794dbb4d5fd73c6a356ebebd258ae74f87f34961b01fcce582a1cfe3d5b3df3d0581ad8ce47ac68f067e3be9e578c65c361cf8d9b4eff3f27c63201fc2dfe78e0c177cab142e19f194b45c26ee72b8c82eed7b5b1fc4581ad1e628582678caba0ffb7b67ef903d1f5ef194b05832d5f7d3d8e2dde60f7e978329e30c5f7cb9bead971c3fef7f53242cb1d87e77d798ff7f9800ff9883fffa03fe6133ee52fcfa8cff89c2f78c2977cc5d73feae573c3b77cf784fa0dbfe519de93de2cbfe3cbc7f4f27ecf1f78ee11f53c2fc8fb237f92f7222ff1f2e37af95ee131af7ea75ee3757c432fdf1bbcf9945e7a5b12c3f603f50eef5a4fe71fea684fe9a59f707adfcf78c4b3d6cf79810b2eb9e2b3e7f44235b1f688c8fdd2fe7fa3a7864fc9c79553fbfc99785c2f237414688ff6bfeed4cbf432c2011dd2d177bfc9b9e36d3afe25fd099dd2173afbe6b773f95c90acefa7f15fd295bcaf65849b6ff5f2befd999eeee80dbd45ef8c6678eb657a9ea1597a774fabf49e3e987e8ee6794bde0b4febe9237da2c587d148c66e6989961ffef6949e567844e31ffd6855b2b646ebcfe969835adaa795a7f69a36e5546dd1362d7cbd27544f3bb44b434a28a58c46cfb69c0a2aa9a2daf1c3f91db9973d8df30ff5bfdba6fffb73ea7fad61e4c3</data>
</image>
<image name="image15">
<data format="PNG" length="1004">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b349444154388da5d24f4c14571c07f0ef9bd9bf2cec0eb86541a4253628fd139dd4362d5ae36e7a70211e9ab434c678e0e0b5c7462fa690f6b03db14d632235e9124d881a2b298946ea366b0db6a58775aa5428a465ad8255163bcbe2cebe3733eff5b048816ec2c67e935f32c9fc7e9f99f79b2158972b577ebc1908f8d4baba000c836271f1090a05638073d1dbd9b927b3bebfe20c0f5f4fa4d3936275b2595d5cbd3a268686ae753f330c00e7cf27136363e36b70c64c3132f293387bf6dbf0ffc2cf9cb99c181dd5d6e0b9dc92387dfad24c45407fffc5c4c9935fabe5ee9d3a3534a469532b30e75c249363a2bfff62d9fed5915c2e67372124158f0fae698ec707d5aa2a6f78ebd62658960dcbb261db1cb5b57e50cac215c00e44a3ed0a2124158b0da800108b0da87ebf2fb57fff5b8a2c4b60cc04a50c9432381c328a45a66c08178b0c7ebf0f1d1dbb154248aaa7e7cbee12daae4892044a4d506a82310b8c59989d9d07a52cb3219ccdea7a09af4647c76ea5b131988846db155996c198f99f9a99998361d00d6179c78e7d6d5eaf5b0d0615783c6eb4b636439224d8b6bda62835313bfb08f5f5b5989ebea77e75f0aef7c3cefac92f2ecf17cbbe3163666f32f9b39ecdfebd72ec52592b65180c99cc1cf2f9028410f8e09571d51572f6991652b7fb5e5eb36f2184020004008e1cf954adaaf2a4f6ee55956ddb9e87c3e178da0600300c0ad3b4e0743a40264ec0cfbe83fbf15f70beba050fc6b9c63922af1fbda3af7e00797a71f8f0715508d157571708874275a8aef622975b0263160e1c781b8140358c741cbec2086a0b0f11944de4e084d1d2843f6f098d7344f61cff17275897aeae632d005a0084015c03a084429b1207d58ca2984934ba16a0b800697972d122c8078298d688c6b988bcf3c9845e162e970b1fedea79618bf1715b930e9f4b06593755a03616440deedc9434ce11e98c4de815c1978ebea4708ed4ce5d5c6dde2c96cfba3cca6c0002b6cdf120eb443a2d6b9c232257020fdec816df7ff3b973f7ef9168558d68509a3d80d705500b283060610952ce805f2190dca461eea1dc26550203c07b7d13ba6989c88d5149fbfd972250ed06f245608902f379c0e4c0dd05b43618703aec772b8601e0d08949ddb410f9febaa44da51e0336077c2ea06801055afa3b0d0697cc51d12a56e79b74b6d8b93378ee8f8c14ad114643d04d81375a4a6b210065c00f53beca3e5eb9c40f6d5738476adf8b39f5b5cdf9126a4b18fe7513eee7dcbdcf0c03c0675ddb15ce31e4775be180c7c2a3272e9dd9d2e7c72efcd6f30f73dcfe3628f8c9bd0000000049454e44ae426082</data>
</image>
</images>
<connections>
<connection>
@ -2679,6 +2805,18 @@
<receiver>TrimSPGUI</receiver>
<slot>PlotFraction()</slot>
</connection>
<connection>
<sender>GUIPathBrowse</sender>
<signal>clicked()</signal>
<receiver>TrimSPGUI</receiver>
<slot>GUIPath()</slot>
</connection>
<connection>
<sender>TrimBinBrowse</sender>
<signal>clicked()</signal>
<receiver>TrimSPGUI</receiver>
<slot>TrimBin()</slot>
</connection>
</connections>
<tabstops>
<tabstop>tabs</tabstop>
@ -2760,6 +2898,8 @@
<slot>OpenFile()</slot>
<slot>SaveFile()</slot>
<slot>SaveFileAs()</slot>
<slot>GUIPath()</slot>
<slot>TrimBin()</slot>
</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>

View File

@ -510,6 +510,14 @@ void TrimSPGUI::StartSequenceOne()
my @SdzValues=();
my $cmd="";
if (!$ENV{'TRIMBIN'}) {
# If trim.sp binary is not defined give warning and return
my $Warning = Qt::MessageBox::information( this, "Warning",
"Warning:\n TrimSP binary is not found.\n Define using environment variable, e.g.\n export TRIMBIN=/usr/local/bin/trimsp7l\n or use the Configuration tab.");
return(0);
}
# Cleanup from old files
if (-e "ausgabe1.inp") {
system("rm -f ausgabe*");
@ -649,6 +657,10 @@ void TrimSPGUI::DirectoryBrowse()
}
# Change work directory accordingly
chdir ("$FileBrowser");
# Return a string with the directory name
return $FileBrowser ;
}
@ -940,3 +952,40 @@ SStep=$All{'SStep'}
close(OUTF);
}
}
void TrimSPGUI::GUIPath()
{
# This subroutine is used to define diffirent variables
my $FileBrowser = Qt::FileDialog::getExistingDirectory("./",this,"get existing directory","Choose the directory where the TrimSP GUI is.",1);
# If nothing is returned keep as is
if ($FileBrowser eq "") {
$FileBrowser="$ENV{'PERLLIB'}";
} else {
TrimGUIPath->setText($FileBrowser);
$ENV{'PERLLIB'}=$FileBrowser;
}
# Return a string with the directory name
return $FileBrowser ;
}
void TrimSPGUI::TrimBin()
{
my $file=Qt::FileDialog::getOpenFileName(
"$ENV{'TRIMBIN'}",
"Trim.SP binary (.* *.* *)",
this,
"open file dialog",
"Select the Trim.SP binary file");
# If the user gave a valid filename try to read it
if ($file ne "") {
$ENV{'TRIMBIN'}=$file;
TRIMBIN->setText($file);
}
return $file;
}