diff --git a/src/perl/make_pardialog_source.pl b/src/perl/make_pardialog_source.pl --- a/src/perl/make_pardialog_source.pl +++ b/src/perl/make_pardialog_source.pl @@ -28,22 +28,22 @@ # and sample parameter file %funname = ( - "double" => "toDouble", - "int" => "toInt", -); + "double" => "toDouble", + "int" => "toInt", + ); %typetrans = ( - "double" => "double", - "float" => "double", - "int" => "int", - "bool" => "bool", - "char *" => "char *", - "string" => "char *", - "directory" => "char *", - "doublelist" => "double *", - "label" => "label", - "title" => "title", -); + "double" => "double", + "float" => "double", + "int" => "int", + "bool" => "bool", + "char *" => "char *", + "string" => "char *", + "directory" => "char *", + "doublelist" => "double *", + "label" => "label", + "title" => "title", + ); $basename = "pardialog"; @@ -52,36 +52,36 @@ open cppfile,">$basename.cpp"; $i=0; while () { - if (/^#/) { - next; - } - @line=split(/=/); + if (/^#/) { + next; + } + @line=split(/=/); #ignore empty lines - if ($#line<1) { - next; - } - $param[$i]=$line[0]; - $value_type=$line[1]; - - @typel=split(/ \/ /,$value_type); - $value[$i] = $typel[0]; - $type[$i] = $typel[1]; + if ($#line<1) { + next; + } + $param[$i]=$line[0]; + $value_type=$line[1]; + + @typel=split(/ \/ /,$value_type); + $value[$i] = $typel[0]; + $type[$i] = $typel[1]; - #get rid of spaces - $type[$i] =~ s/ //g; - $type[$i] =~s/\n//g; - $convtype[$i]=$typetrans{$type[$i]}; - $param[$i] =~ s/ //g; - if ($convtype[$i] ne "label" && $convtype[$i] ne "title") { - #get rid of spaces - $value[$i] =~ s/ //g; - } - if ($convtype[$i] eq "char *") { - $value[$i] = "\"$value[$i]\""; - } - #print cppfile "param = $param, value = $value, type = $type\n"; + #get rid of spaces + $type[$i] =~ s/ //g; + $type[$i] =~s/\n//g; + $convtype[$i]=$typetrans{$type[$i]}; + $param[$i] =~ s/ //g; + if ($convtype[$i] ne "label" && $convtype[$i] ne "title") { + #get rid of spaces + $value[$i] =~ s/ //g; + } + if ($convtype[$i] eq "char *") { + $value[$i] = "\"$value[$i]\""; + } + #print cppfile "param = $param, value = $value, type = $type\n"; - $i++; + $i++; } $lines=$i; @@ -97,167 +97,167 @@ print cppfile < ParameterDialog::ParameterDialog(QWidget *parent, const char *name, Qt::WindowFlags f) : QDialog(parent,name,false,f) { - extern Parameter par; -END_HEADER + extern Parameter par; + END_HEADER -for ($i=0;$i<$lines;$i++) { - if ($convtype[$i] eq "label" || $convtype[$i] eq "title") { - next; - } - if ($convtype[$i] eq "double *") { - print cppfile " QString $param[$i]_string(\""; - @paramlist = split(/,/,$value[$i]); - for ($j=1;$j<=$#paramlist;$j++) { - print cppfile "%$j,"; + for ($i=0;$i<$lines;$i++) { + if ($convtype[$i] eq "label" || $convtype[$i] eq "title") { + next; + } + if ($convtype[$i] eq "double *") { + print cppfile " QString $param[$i]_string(\""; + @paramlist = split(/,/,$value[$i]); + for ($j=1;$j<=$#paramlist;$j++) { + print cppfile "%$j,"; + } + print cppfile "%$j\");\n"; + print cppfile " $param[$i]_string = $param[$i]_string"; + for ($j=0;$j<=$#paramlist;$j++) { + print cppfile ".arg(par.$param[$i]\[$j\])"; + } + print cppfile ";\n"; + print cppfile " $param[$i]_edit = new QLineEdit( $param[$i]_string, this, \"$param[$i]_edit\" );\n"; + } else { + if ($convtype[$i] eq "bool") { + print cppfile " $param[$i]_edit = new QLineEdit( QString(\"%1\").arg(sbool(par.$param[$i])), this, \"$param[$i]_edit\" );\n"; + } else { + print cppfile " $param[$i]_edit = new QLineEdit( QString(\"%1\").arg(par.$param[$i]), this, \"$param[$i]_edit\" );\n"; + } + } } - print cppfile "%$j\");\n"; - print cppfile " $param[$i]_string = $param[$i]_string"; - for ($j=0;$j<=$#paramlist;$j++) { - print cppfile ".arg(par.$param[$i]\[$j\])"; - } - print cppfile ";\n"; - print cppfile " $param[$i]_edit = new QLineEdit( $param[$i]_string, this, \"$param[$i]_edit\" );\n"; - } else { - if ($convtype[$i] eq "bool") { - print cppfile " $param[$i]_edit = new QLineEdit( QString(\"%1\").arg(sbool(par.$param[$i])), this, \"$param[$i]_edit\" );\n"; - } else { - print cppfile " $param[$i]_edit = new QLineEdit( QString(\"%1\").arg(par.$param[$i]), this, \"$param[$i]_edit\" );\n"; - } - } -} -print cppfile <addWidget( new QLabel( \"$value[$i]\", this), $row, $col, 1, 2 );\n"; - $c++; - } else { - if ($convtype[$i] eq "title") { - if ($ntitles) { - print stderr "Sorry, only one title allowed. Aborting source construction...\n"; - exit(1); - } - print cppfile " setWindowTitle( QString( \"$value[$i]\") );\n"; - print cppfile " grid->addWidget( new QLabel( \"

$value[$i]

\",this), $row, $col, 1, -1, Qt::AlignCenter);\n"; - print cppfile " grid->addWidget( new QLabel( \"\", this), $row+1, $col, 1, -1);\n"; - $ntitles++; - } else { - print cppfile " grid->addWidget( new QLabel( \"$param[$i]\", this ),$row, $col );\n"; - print cppfile " grid->addWidget( $param[$i]_edit, $row, $col+1 );\n"; - $c++; + $numrows = 30; + $c = 0; + for ($i=0;$i<$lines;$i++) { + $col = 2*int($c/($numrows-3)); + $row = $c % ($numrows-3) + $ntitles * 3; + if ($convtype[$i] eq "label") { + print cppfile " grid->addWidget( new QLabel( \"$value[$i]\", this), $row, $col, 1, 2 );\n"; + $c++; + } else { + if ($convtype[$i] eq "title") { + if ($ntitles) { + print stderr "Sorry, only one title allowed. Aborting source construction...\n"; + exit(1); + } + print cppfile " setWindowTitle( QString( \"$value[$i]\") );\n"; + print cppfile " grid->addWidget( new QLabel( \"

$value[$i]

\",this), $row, $col, 1, -1, Qt::AlignCenter);\n"; + print cppfile " grid->addWidget( new QLabel( \"\", this), $row+1, $col, 1, -1);\n"; + $ntitles++; + } else { + print cppfile " grid->addWidget( new QLabel( \"$param[$i]\", this ),$row, $col );\n"; + print cppfile " grid->addWidget( $param[$i]_edit, $row, $col+1 );\n"; + $c++; + } + } } - } -} -$row = $numrows+1; -$col = 2*int($i/$numrows); + $row = $numrows+1; + $col = 2*int($i/$numrows); -print cppfile <addWidget(pb, $row, $col ); - connect( pb, SIGNAL( clicked() ), this, SLOT( write() ) ); - QPushButton *pb2 = new QPushButton( \"&Close\", this ); - grid->addWidget(pb2,$row, $col+1 ); - connect( pb2, SIGNAL( clicked() ), this, SLOT( close() ) ); - QPushButton *pb3 = new QPushButton( \"&Reset\", this ); - grid->addWidget(pb3, $row, $col+2 ); - connect( pb3, SIGNAL( clicked() ), this, SLOT( Reset() ) ); - show(); + print cppfile <addWidget(pb, $row, $col ); + connect( pb, SIGNAL( clicked() ), this, SLOT( write() ) ); + QPushButton *pb2 = new QPushButton( \"&Close\", this ); + grid->addWidget(pb2,$row, $col+1 ); + connect( pb2, SIGNAL( clicked() ), this, SLOT( close() ) ); + QPushButton *pb3 = new QPushButton( \"&Reset\", this ); + grid->addWidget(pb3, $row, $col+2 ); + connect( pb3, SIGNAL( clicked() ), this, SLOT( Reset() ) ); + show(); }; ParameterDialog::~ParameterDialog(void) { -ANOTHER_LABEL + ANOTHER_LABEL -for ($i=0;$i<$lines;$i++) { - if ($convtype[$i] ne "label" && $convtype[$i] ne "title") { - print cppfile "delete $param[$i]_edit;\n"; - } -} + for ($i=0;$i<$lines;$i++) { + if ($convtype[$i] ne "label" && $convtype[$i] ne "title") { + print cppfile "delete $param[$i]_edit;\n"; + } + } -print cppfile <text().section(',', $j, $j);\n"; - print cppfile " par.$param[$i]\[$j\] = tmpval.toDouble();\n"; - } - } else { - if ($convtype[$i] eq "bool") { - print cppfile " tmpval = $param[$i]_edit->text().stripWhiteSpace();\n"; - print cppfile " if (tmpval == \"true\" || tmpval == \"yes\" ) par.$param[$i] = true;\n"; - print cppfile " else if (tmpval == \"false\" || tmpval == \"no\") par.$param[$i] = false;\n"; - print cppfile " else {\n"; - print cppfile " if (QMessageBox::question(this, \"Syntax error\", tr(\"Value %1 of parameter %2 is not recognized as Boolean.\\nDo you mean TRUE or FALSE?\").arg(tmpval).arg(\"$param[$i]\"),\"True\",\"False\", QString::null, 0, 1)==0) par.$param[$i]=true;\n"; - print cppfile " else par.$param[$i]=false;\n"; - print cppfile " }\n"; - } else { - if ($convtype[$i] eq "char *") { - print cppfile " par.$param[$i] = strdup((const char *)$param[$i]_edit->text());\n"; - } else { - print cppfile " par.$param[$i] = $param[$i]_edit->text().$funname{$convtype[$i]}();\n"; - } - } - } -} + for ($i=0;$i<$lines;$i++) { + if ($convtype[$i] eq "label" || $convtype[$i] eq "title") { + next; + } + if ($convtype[$i] eq "double *") { + @paramlist = split(/,/,$value[$i]); + for ($j=0;$j<=$#paramlist;$j++) { + print cppfile " tmpval = $param[$i]_edit->text().section(',', $j, $j);\n"; + print cppfile " par.$param[$i]\[$j\] = tmpval.toDouble();\n"; + } + } else { + if ($convtype[$i] eq "bool") { + print cppfile " tmpval = $param[$i]_edit->text().stripWhiteSpace();\n"; + print cppfile " if (tmpval == \"true\" || tmpval == \"yes\" ) par.$param[$i] = true;\n"; + print cppfile " else if (tmpval == \"false\" || tmpval == \"no\") par.$param[$i] = false;\n"; + print cppfile " else {\n"; + print cppfile " if (QMessageBox::question(this, \"Syntax error\", tr(\"Value %1 of parameter %2 is not recognized as Boolean.\\nDo you mean TRUE or FALSE?\").arg(tmpval).arg(\"$param[$i]\"),\"True\",\"False\", QString::null, 0, 1)==0) par.$param[$i]=true;\n"; + print cppfile " else par.$param[$i]=false;\n"; + print cppfile " }\n"; + } else { + if ($convtype[$i] eq "char *") { + print cppfile " par.$param[$i] = strdup((const char *)$param[$i]_edit->text());\n"; + } else { + print cppfile " par.$param[$i] = $param[$i]_edit->text().$funname{$convtype[$i]}();\n"; + } + } + } + } -print cppfile <setText( $param[$i]_string );\n"; + } else { + if ($convtype[$i] eq "bool") { + print cppfile " $param[$i]_edit->setText( QString(\"%1\").arg(sbool(par.$param[$i])));\n"; + } else { + print cppfile " $param[$i]_edit->setText( QString(\"%1\").arg(par.$param[$i]) );\n"; + } } - print cppfile ";\n"; - print cppfile " $param[$i]_edit->setText( $param[$i]_string );\n"; - } else { - if ($convtype[$i] eq "bool") { - print cppfile " $param[$i]_edit->setText( QString(\"%1\").arg(sbool(par.$param[$i])));\n"; - } else { - print cppfile " $param[$i]_edit->setText( QString(\"%1\").arg(par.$param[$i]) );\n"; - } - } } print cppfile "}\n\n"; @@ -276,28 +276,29 @@ print hfile < class ParameterDialog : public QDialog { - Q_OBJECT - - public: - ParameterDialog(QWidget *parent=0, const char *name = 0, Qt::WindowFlags f = 0); - virtual ~ParameterDialog(void); - public slots: - void Reset(void); + Q_OBJECT + + public: + ParameterDialog(QWidget *parent=0, const char *name = 0, Qt::WindowFlags f = 0); + virtual ~ParameterDialog(void); + public slots: + void Reset(void); -private slots: - void write(void); + private slots: + void write(void); - private: -END_HEADER2 + private: + END_HEADER2 -for ($i=0;$i<$lines;$i++) { - if ($convtype[$i] ne "label" && $convtype[$i] ne "title") { - print hfile " QLineEdit *$param[$i]_edit;\n"; - } -} + for ($i=0;$i<$lines;$i++) { + if ($convtype[$i] ne "label" && $convtype[$i] ne "title") { + print hfile " QLineEdit *$param[$i]_edit;\n"; + } + } -print hfile <