diff --git a/src/pardialog.cpp b/src/pardialog.cpp new file mode 100644 --- /dev/null +++ b/src/pardialog.cpp @@ -0,0 +1,806 @@ +/* + * + * This file is part of the Virtual Leaf. + * + * The Virtual Leaf is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Virtual Leaf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with the Virtual Leaf. If not, see . + * + * Copyright 2010 Roeland Merks. + * + */ + +#include "pardialog.h" +#include "parameter.h" +#include +#include +#include +#include +#include + +static const std::string _module_id("$Id$"); + +ParameterDialog::ParameterDialog(QWidget *parent, const char *name, Qt::WindowFlags f) : QDialog(parent,name,false,f) { + extern Parameter par; + arrowcolor_edit = new QLineEdit( QString("%1").arg(par.arrowcolor), this, "arrowcolor_edit" ); + arrowsize_edit = new QLineEdit( QString("%1").arg(par.arrowsize), this, "arrowsize_edit" ); + textcolor_edit = new QLineEdit( QString("%1").arg(par.textcolor), this, "textcolor_edit" ); + cellnumsize_edit = new QLineEdit( QString("%1").arg(par.cellnumsize), this, "cellnumsize_edit" ); + nodenumsize_edit = new QLineEdit( QString("%1").arg(par.nodenumsize), this, "nodenumsize_edit" ); + node_mag_edit = new QLineEdit( QString("%1").arg(par.node_mag), this, "node_mag_edit" ); + outlinewidth_edit = new QLineEdit( QString("%1").arg(par.outlinewidth), this, "outlinewidth_edit" ); + cell_outline_color_edit = new QLineEdit( QString("%1").arg(par.cell_outline_color), this, "cell_outline_color_edit" ); + resize_stride_edit = new QLineEdit( QString("%1").arg(par.resize_stride), this, "resize_stride_edit" ); + T_edit = new QLineEdit( QString("%1").arg(par.T), this, "T_edit" ); + lambda_length_edit = new QLineEdit( QString("%1").arg(par.lambda_length), this, "lambda_length_edit" ); + lambda_celllength_edit = new QLineEdit( QString("%1").arg(par.lambda_celllength), this, "lambda_celllength_edit" ); + target_length_edit = new QLineEdit( QString("%1").arg(par.target_length), this, "target_length_edit" ); + cell_expansion_rate_edit = new QLineEdit( QString("%1").arg(par.cell_expansion_rate), this, "cell_expansion_rate_edit" ); + cell_div_expansion_rate_edit = new QLineEdit( QString("%1").arg(par.cell_div_expansion_rate), this, "cell_div_expansion_rate_edit" ); + auxin_dependent_growth_edit = new QLineEdit( QString("%1").arg(sbool(par.auxin_dependent_growth)), this, "auxin_dependent_growth_edit" ); + ode_accuracy_edit = new QLineEdit( QString("%1").arg(par.ode_accuracy), this, "ode_accuracy_edit" ); + mc_stepsize_edit = new QLineEdit( QString("%1").arg(par.mc_stepsize), this, "mc_stepsize_edit" ); + mc_cell_stepsize_edit = new QLineEdit( QString("%1").arg(par.mc_cell_stepsize), this, "mc_cell_stepsize_edit" ); + energy_threshold_edit = new QLineEdit( QString("%1").arg(par.energy_threshold), this, "energy_threshold_edit" ); + bend_lambda_edit = new QLineEdit( QString("%1").arg(par.bend_lambda), this, "bend_lambda_edit" ); + alignment_lambda_edit = new QLineEdit( QString("%1").arg(par.alignment_lambda), this, "alignment_lambda_edit" ); + rel_cell_div_threshold_edit = new QLineEdit( QString("%1").arg(par.rel_cell_div_threshold), this, "rel_cell_div_threshold_edit" ); + rel_perimeter_stiffness_edit = new QLineEdit( QString("%1").arg(par.rel_perimeter_stiffness), this, "rel_perimeter_stiffness_edit" ); + collapse_node_threshold_edit = new QLineEdit( QString("%1").arg(par.collapse_node_threshold), this, "collapse_node_threshold_edit" ); + morphogen_div_threshold_edit = new QLineEdit( QString("%1").arg(par.morphogen_div_threshold), this, "morphogen_div_threshold_edit" ); + morphogen_expansion_threshold_edit = new QLineEdit( QString("%1").arg(par.morphogen_expansion_threshold), this, "morphogen_expansion_threshold_edit" ); + copy_wall_edit = new QLineEdit( QString("%1").arg(sbool(par.copy_wall)), this, "copy_wall_edit" ); + source_edit = new QLineEdit( QString("%1").arg(par.source), this, "source_edit" ); + QString D_string("%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12,%13,%14,%15"); + D_string = D_string.arg(par.D[0]).arg(par.D[1]).arg(par.D[2]).arg(par.D[3]).arg(par.D[4]).arg(par.D[5]).arg(par.D[6]).arg(par.D[7]).arg(par.D[8]).arg(par.D[9]).arg(par.D[10]).arg(par.D[11]).arg(par.D[12]).arg(par.D[13]).arg(par.D[14]); + D_edit = new QLineEdit( D_string, this, "D_edit" ); + QString initval_string("%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12,%13,%14,%15"); + initval_string = initval_string.arg(par.initval[0]).arg(par.initval[1]).arg(par.initval[2]).arg(par.initval[3]).arg(par.initval[4]).arg(par.initval[5]).arg(par.initval[6]).arg(par.initval[7]).arg(par.initval[8]).arg(par.initval[9]).arg(par.initval[10]).arg(par.initval[11]).arg(par.initval[12]).arg(par.initval[13]).arg(par.initval[14]); + initval_edit = new QLineEdit( initval_string, this, "initval_edit" ); + k1_edit = new QLineEdit( QString("%1").arg(par.k1), this, "k1_edit" ); + k2_edit = new QLineEdit( QString("%1").arg(par.k2), this, "k2_edit" ); + r_edit = new QLineEdit( QString("%1").arg(par.r), this, "r_edit" ); + kr_edit = new QLineEdit( QString("%1").arg(par.kr), this, "kr_edit" ); + km_edit = new QLineEdit( QString("%1").arg(par.km), this, "km_edit" ); + Pi_tot_edit = new QLineEdit( QString("%1").arg(par.Pi_tot), this, "Pi_tot_edit" ); + transport_edit = new QLineEdit( QString("%1").arg(par.transport), this, "transport_edit" ); + ka_edit = new QLineEdit( QString("%1").arg(par.ka), this, "ka_edit" ); + pin_prod_edit = new QLineEdit( QString("%1").arg(par.pin_prod), this, "pin_prod_edit" ); + pin_prod_in_epidermis_edit = new QLineEdit( QString("%1").arg(par.pin_prod_in_epidermis), this, "pin_prod_in_epidermis_edit" ); + pin_breakdown_edit = new QLineEdit( QString("%1").arg(par.pin_breakdown), this, "pin_breakdown_edit" ); + pin_breakdown_internal_edit = new QLineEdit( QString("%1").arg(par.pin_breakdown_internal), this, "pin_breakdown_internal_edit" ); + aux1prod_edit = new QLineEdit( QString("%1").arg(par.aux1prod), this, "aux1prod_edit" ); + aux1prodmeso_edit = new QLineEdit( QString("%1").arg(par.aux1prodmeso), this, "aux1prodmeso_edit" ); + aux1decay_edit = new QLineEdit( QString("%1").arg(par.aux1decay), this, "aux1decay_edit" ); + aux1decaymeso_edit = new QLineEdit( QString("%1").arg(par.aux1decaymeso), this, "aux1decaymeso_edit" ); + aux1transport_edit = new QLineEdit( QString("%1").arg(par.aux1transport), this, "aux1transport_edit" ); + aux_cons_edit = new QLineEdit( QString("%1").arg(par.aux_cons), this, "aux_cons_edit" ); + aux_breakdown_edit = new QLineEdit( QString("%1").arg(par.aux_breakdown), this, "aux_breakdown_edit" ); + kaux1_edit = new QLineEdit( QString("%1").arg(par.kaux1), this, "kaux1_edit" ); + kap_edit = new QLineEdit( QString("%1").arg(par.kap), this, "kap_edit" ); + leaf_tip_source_edit = new QLineEdit( QString("%1").arg(par.leaf_tip_source), this, "leaf_tip_source_edit" ); + sam_efflux_edit = new QLineEdit( QString("%1").arg(par.sam_efflux), this, "sam_efflux_edit" ); + sam_auxin_edit = new QLineEdit( QString("%1").arg(par.sam_auxin), this, "sam_auxin_edit" ); + sam_auxin_breakdown_edit = new QLineEdit( QString("%1").arg(par.sam_auxin_breakdown), this, "sam_auxin_breakdown_edit" ); + van3prod_edit = new QLineEdit( QString("%1").arg(par.van3prod), this, "van3prod_edit" ); + van3autokat_edit = new QLineEdit( QString("%1").arg(par.van3autokat), this, "van3autokat_edit" ); + van3sat_edit = new QLineEdit( QString("%1").arg(par.van3sat), this, "van3sat_edit" ); + k2van3_edit = new QLineEdit( QString("%1").arg(par.k2van3), this, "k2van3_edit" ); + dt_edit = new QLineEdit( QString("%1").arg(par.dt), this, "dt_edit" ); + rd_dt_edit = new QLineEdit( QString("%1").arg(par.rd_dt), this, "rd_dt_edit" ); + datadir_edit = new QLineEdit( QString("%1").arg(par.datadir), this, "datadir_edit" ); + movie_edit = new QLineEdit( QString("%1").arg(sbool(par.movie)), this, "movie_edit" ); + nit_edit = new QLineEdit( QString("%1").arg(par.nit), this, "nit_edit" ); + maxt_edit = new QLineEdit( QString("%1").arg(par.maxt), this, "maxt_edit" ); + storage_stride_edit = new QLineEdit( QString("%1").arg(par.storage_stride), this, "storage_stride_edit" ); + xml_storage_stride_edit = new QLineEdit( QString("%1").arg(par.xml_storage_stride), this, "xml_storage_stride_edit" ); + rseed_edit = new QLineEdit( QString("%1").arg(par.rseed), this, "rseed_edit" ); + constituous_expansion_limit_edit = new QLineEdit( QString("%1").arg(par.constituous_expansion_limit), this, "constituous_expansion_limit_edit" ); + vessel_inh_level_edit = new QLineEdit( QString("%1").arg(par.vessel_inh_level), this, "vessel_inh_level_edit" ); + vessel_expansion_rate_edit = new QLineEdit( QString("%1").arg(par.vessel_expansion_rate), this, "vessel_expansion_rate_edit" ); + d_edit = new QLineEdit( QString("%1").arg(par.d), this, "d_edit" ); + e_edit = new QLineEdit( QString("%1").arg(par.e), this, "e_edit" ); + f_edit = new QLineEdit( QString("%1").arg(par.f), this, "f_edit" ); + c_edit = new QLineEdit( QString("%1").arg(par.c), this, "c_edit" ); + mu_edit = new QLineEdit( QString("%1").arg(par.mu), this, "mu_edit" ); + nu_edit = new QLineEdit( QString("%1").arg(par.nu), this, "nu_edit" ); + rho0_edit = new QLineEdit( QString("%1").arg(par.rho0), this, "rho0_edit" ); + rho1_edit = new QLineEdit( QString("%1").arg(par.rho1), this, "rho1_edit" ); + c0_edit = new QLineEdit( QString("%1").arg(par.c0), this, "c0_edit" ); + gamma_edit = new QLineEdit( QString("%1").arg(par.gamma), this, "gamma_edit" ); + eps_edit = new QLineEdit( QString("%1").arg(par.eps), this, "eps_edit" ); + QString k_string("%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12,%13,%14,%15"); + k_string = k_string.arg(par.k[0]).arg(par.k[1]).arg(par.k[2]).arg(par.k[3]).arg(par.k[4]).arg(par.k[5]).arg(par.k[6]).arg(par.k[7]).arg(par.k[8]).arg(par.k[9]).arg(par.k[10]).arg(par.k[11]).arg(par.k[12]).arg(par.k[13]).arg(par.k[14]); + k_edit = new QLineEdit( k_string, this, "k_edit" ); + i1_edit = new QLineEdit( QString("%1").arg(par.i1), this, "i1_edit" ); + i2_edit = new QLineEdit( QString("%1").arg(par.i2), this, "i2_edit" ); + i3_edit = new QLineEdit( QString("%1").arg(par.i3), this, "i3_edit" ); + i4_edit = new QLineEdit( QString("%1").arg(par.i4), this, "i4_edit" ); + i5_edit = new QLineEdit( QString("%1").arg(par.i5), this, "i5_edit" ); + s1_edit = new QLineEdit( QString("%1").arg(par.s1), this, "s1_edit" ); + s2_edit = new QLineEdit( QString("%1").arg(par.s2), this, "s2_edit" ); + s3_edit = new QLineEdit( QString("%1").arg(par.s3), this, "s3_edit" ); + b1_edit = new QLineEdit( QString("%1").arg(sbool(par.b1)), this, "b1_edit" ); + b2_edit = new QLineEdit( QString("%1").arg(sbool(par.b2)), this, "b2_edit" ); + b3_edit = new QLineEdit( QString("%1").arg(sbool(par.b3)), this, "b3_edit" ); + b4_edit = new QLineEdit( QString("%1").arg(sbool(par.b4)), this, "b4_edit" ); + dir1_edit = new QLineEdit( QString("%1").arg(par.dir1), this, "dir1_edit" ); + dir2_edit = new QLineEdit( QString("%1").arg(par.dir2), this, "dir2_edit" ); + // make a 1x1 grid; it will auto-expand + QGridLayout *grid = new QGridLayout( this, 1, 1 ); + + // add the first four widgets with (row, column) addressing + setWindowTitle( QString( " Parameter values for The Virtual Leaf") ); + grid->addWidget( new QLabel( "

Parameter values for The Virtual Leaf

",this), 0, 0, 1, -1, Qt::AlignCenter); + grid->addWidget( new QLabel( "", this), 0+1, 0, 1, -1); + grid->addWidget( new QLabel( " Visualization", this), 3, 0, 1, 2 ); + grid->addWidget( new QLabel( "arrowcolor", this ),4, 0 ); + grid->addWidget( arrowcolor_edit, 4, 0+1 ); + grid->addWidget( new QLabel( "arrowsize", this ),5, 0 ); + grid->addWidget( arrowsize_edit, 5, 0+1 ); + grid->addWidget( new QLabel( "textcolor", this ),6, 0 ); + grid->addWidget( textcolor_edit, 6, 0+1 ); + grid->addWidget( new QLabel( "cellnumsize", this ),7, 0 ); + grid->addWidget( cellnumsize_edit, 7, 0+1 ); + grid->addWidget( new QLabel( "nodenumsize", this ),8, 0 ); + grid->addWidget( nodenumsize_edit, 8, 0+1 ); + grid->addWidget( new QLabel( "node_mag", this ),9, 0 ); + grid->addWidget( node_mag_edit, 9, 0+1 ); + grid->addWidget( new QLabel( "outlinewidth", this ),10, 0 ); + grid->addWidget( outlinewidth_edit, 10, 0+1 ); + grid->addWidget( new QLabel( "cell_outline_color", this ),11, 0 ); + grid->addWidget( cell_outline_color_edit, 11, 0+1 ); + grid->addWidget( new QLabel( "resize_stride", this ),12, 0 ); + grid->addWidget( resize_stride_edit, 12, 0+1 ); + grid->addWidget( new QLabel( "", this), 13, 0, 1, 2 ); + grid->addWidget( new QLabel( " Cell mechanics", this), 14, 0, 1, 2 ); + grid->addWidget( new QLabel( "T", this ),15, 0 ); + grid->addWidget( T_edit, 15, 0+1 ); + grid->addWidget( new QLabel( "lambda_length", this ),16, 0 ); + grid->addWidget( lambda_length_edit, 16, 0+1 ); + grid->addWidget( new QLabel( "lambda_celllength", this ),17, 0 ); + grid->addWidget( lambda_celllength_edit, 17, 0+1 ); + grid->addWidget( new QLabel( "target_length", this ),18, 0 ); + grid->addWidget( target_length_edit, 18, 0+1 ); + grid->addWidget( new QLabel( "cell_expansion_rate", this ),19, 0 ); + grid->addWidget( cell_expansion_rate_edit, 19, 0+1 ); + grid->addWidget( new QLabel( "cell_div_expansion_rate", this ),20, 0 ); + grid->addWidget( cell_div_expansion_rate_edit, 20, 0+1 ); + grid->addWidget( new QLabel( "auxin_dependent_growth", this ),21, 0 ); + grid->addWidget( auxin_dependent_growth_edit, 21, 0+1 ); + grid->addWidget( new QLabel( "ode_accuracy", this ),22, 0 ); + grid->addWidget( ode_accuracy_edit, 22, 0+1 ); + grid->addWidget( new QLabel( "mc_stepsize", this ),23, 0 ); + grid->addWidget( mc_stepsize_edit, 23, 0+1 ); + grid->addWidget( new QLabel( "mc_cell_stepsize", this ),24, 0 ); + grid->addWidget( mc_cell_stepsize_edit, 24, 0+1 ); + grid->addWidget( new QLabel( "energy_threshold", this ),25, 0 ); + grid->addWidget( energy_threshold_edit, 25, 0+1 ); + grid->addWidget( new QLabel( "bend_lambda", this ),26, 0 ); + grid->addWidget( bend_lambda_edit, 26, 0+1 ); + grid->addWidget( new QLabel( "alignment_lambda", this ),27, 0 ); + grid->addWidget( alignment_lambda_edit, 27, 0+1 ); + grid->addWidget( new QLabel( "rel_cell_div_threshold", this ),28, 0 ); + grid->addWidget( rel_cell_div_threshold_edit, 28, 0+1 ); + grid->addWidget( new QLabel( "rel_perimeter_stiffness", this ),29, 0 ); + grid->addWidget( rel_perimeter_stiffness_edit, 29, 0+1 ); + grid->addWidget( new QLabel( "collapse_node_threshold", this ),3, 2 ); + grid->addWidget( collapse_node_threshold_edit, 3, 2+1 ); + grid->addWidget( new QLabel( "morphogen_div_threshold", this ),4, 2 ); + grid->addWidget( morphogen_div_threshold_edit, 4, 2+1 ); + grid->addWidget( new QLabel( "morphogen_expansion_threshold", this ),5, 2 ); + grid->addWidget( morphogen_expansion_threshold_edit, 5, 2+1 ); + grid->addWidget( new QLabel( "copy_wall", this ),6, 2 ); + grid->addWidget( copy_wall_edit, 6, 2+1 ); + grid->addWidget( new QLabel( "", this), 7, 2, 1, 2 ); + grid->addWidget( new QLabel( " Auxin transport and PIN1 dynamics", this), 8, 2, 1, 2 ); + grid->addWidget( new QLabel( "source", this ),9, 2 ); + grid->addWidget( source_edit, 9, 2+1 ); + grid->addWidget( new QLabel( "D", this ),10, 2 ); + grid->addWidget( D_edit, 10, 2+1 ); + grid->addWidget( new QLabel( "initval", this ),11, 2 ); + grid->addWidget( initval_edit, 11, 2+1 ); + grid->addWidget( new QLabel( "k1", this ),12, 2 ); + grid->addWidget( k1_edit, 12, 2+1 ); + grid->addWidget( new QLabel( "k2", this ),13, 2 ); + grid->addWidget( k2_edit, 13, 2+1 ); + grid->addWidget( new QLabel( "r", this ),14, 2 ); + grid->addWidget( r_edit, 14, 2+1 ); + grid->addWidget( new QLabel( "kr", this ),15, 2 ); + grid->addWidget( kr_edit, 15, 2+1 ); + grid->addWidget( new QLabel( "km", this ),16, 2 ); + grid->addWidget( km_edit, 16, 2+1 ); + grid->addWidget( new QLabel( "Pi_tot", this ),17, 2 ); + grid->addWidget( Pi_tot_edit, 17, 2+1 ); + grid->addWidget( new QLabel( "transport", this ),18, 2 ); + grid->addWidget( transport_edit, 18, 2+1 ); + grid->addWidget( new QLabel( "ka", this ),19, 2 ); + grid->addWidget( ka_edit, 19, 2+1 ); + grid->addWidget( new QLabel( "pin_prod", this ),20, 2 ); + grid->addWidget( pin_prod_edit, 20, 2+1 ); + grid->addWidget( new QLabel( "pin_prod_in_epidermis", this ),21, 2 ); + grid->addWidget( pin_prod_in_epidermis_edit, 21, 2+1 ); + grid->addWidget( new QLabel( "pin_breakdown", this ),22, 2 ); + grid->addWidget( pin_breakdown_edit, 22, 2+1 ); + grid->addWidget( new QLabel( "pin_breakdown_internal", this ),23, 2 ); + grid->addWidget( pin_breakdown_internal_edit, 23, 2+1 ); + grid->addWidget( new QLabel( "aux1prod", this ),24, 2 ); + grid->addWidget( aux1prod_edit, 24, 2+1 ); + grid->addWidget( new QLabel( "aux1prodmeso", this ),25, 2 ); + grid->addWidget( aux1prodmeso_edit, 25, 2+1 ); + grid->addWidget( new QLabel( "aux1decay", this ),26, 2 ); + grid->addWidget( aux1decay_edit, 26, 2+1 ); + grid->addWidget( new QLabel( "aux1decaymeso", this ),27, 2 ); + grid->addWidget( aux1decaymeso_edit, 27, 2+1 ); + grid->addWidget( new QLabel( "aux1transport", this ),28, 2 ); + grid->addWidget( aux1transport_edit, 28, 2+1 ); + grid->addWidget( new QLabel( "aux_cons", this ),29, 2 ); + grid->addWidget( aux_cons_edit, 29, 2+1 ); + grid->addWidget( new QLabel( "aux_breakdown", this ),3, 4 ); + grid->addWidget( aux_breakdown_edit, 3, 4+1 ); + grid->addWidget( new QLabel( "kaux1", this ),4, 4 ); + grid->addWidget( kaux1_edit, 4, 4+1 ); + grid->addWidget( new QLabel( "kap", this ),5, 4 ); + grid->addWidget( kap_edit, 5, 4+1 ); + grid->addWidget( new QLabel( "leaf_tip_source", this ),6, 4 ); + grid->addWidget( leaf_tip_source_edit, 6, 4+1 ); + grid->addWidget( new QLabel( "sam_efflux", this ),7, 4 ); + grid->addWidget( sam_efflux_edit, 7, 4+1 ); + grid->addWidget( new QLabel( "sam_auxin", this ),8, 4 ); + grid->addWidget( sam_auxin_edit, 8, 4+1 ); + grid->addWidget( new QLabel( "sam_auxin_breakdown", this ),9, 4 ); + grid->addWidget( sam_auxin_breakdown_edit, 9, 4+1 ); + grid->addWidget( new QLabel( "van3prod", this ),10, 4 ); + grid->addWidget( van3prod_edit, 10, 4+1 ); + grid->addWidget( new QLabel( "van3autokat", this ),11, 4 ); + grid->addWidget( van3autokat_edit, 11, 4+1 ); + grid->addWidget( new QLabel( "van3sat", this ),12, 4 ); + grid->addWidget( van3sat_edit, 12, 4+1 ); + grid->addWidget( new QLabel( "k2van3", this ),13, 4 ); + grid->addWidget( k2van3_edit, 13, 4+1 ); + grid->addWidget( new QLabel( "", this), 14, 4, 1, 2 ); + grid->addWidget( new QLabel( " Integration parameters", this), 15, 4, 1, 2 ); + grid->addWidget( new QLabel( "dt", this ),16, 4 ); + grid->addWidget( dt_edit, 16, 4+1 ); + grid->addWidget( new QLabel( "rd_dt", this ),17, 4 ); + grid->addWidget( rd_dt_edit, 17, 4+1 ); + grid->addWidget( new QLabel( "datadir", this ),18, 4 ); + grid->addWidget( datadir_edit, 18, 4+1 ); + grid->addWidget( new QLabel( "movie", this ),19, 4 ); + grid->addWidget( movie_edit, 19, 4+1 ); + grid->addWidget( new QLabel( "nit", this ),20, 4 ); + grid->addWidget( nit_edit, 20, 4+1 ); + grid->addWidget( new QLabel( "maxt", this ),21, 4 ); + grid->addWidget( maxt_edit, 21, 4+1 ); + grid->addWidget( new QLabel( "storage_stride", this ),22, 4 ); + grid->addWidget( storage_stride_edit, 22, 4+1 ); + grid->addWidget( new QLabel( "xml_storage_stride", this ),23, 4 ); + grid->addWidget( xml_storage_stride_edit, 23, 4+1 ); + grid->addWidget( new QLabel( "rseed", this ),24, 4 ); + grid->addWidget( rseed_edit, 24, 4+1 ); + grid->addWidget( new QLabel( "", this), 25, 4, 1, 2 ); + grid->addWidget( new QLabel( " Meinhardt leaf venation model", this), 26, 4, 1, 2 ); + grid->addWidget( new QLabel( "constituous_expansion_limit", this ),27, 4 ); + grid->addWidget( constituous_expansion_limit_edit, 27, 4+1 ); + grid->addWidget( new QLabel( "vessel_inh_level", this ),28, 4 ); + grid->addWidget( vessel_inh_level_edit, 28, 4+1 ); + grid->addWidget( new QLabel( "vessel_expansion_rate", this ),29, 4 ); + grid->addWidget( vessel_expansion_rate_edit, 29, 4+1 ); + grid->addWidget( new QLabel( "d", this ),3, 6 ); + grid->addWidget( d_edit, 3, 6+1 ); + grid->addWidget( new QLabel( "e", this ),4, 6 ); + grid->addWidget( e_edit, 4, 6+1 ); + grid->addWidget( new QLabel( "f", this ),5, 6 ); + grid->addWidget( f_edit, 5, 6+1 ); + grid->addWidget( new QLabel( "c", this ),6, 6 ); + grid->addWidget( c_edit, 6, 6+1 ); + grid->addWidget( new QLabel( "mu", this ),7, 6 ); + grid->addWidget( mu_edit, 7, 6+1 ); + grid->addWidget( new QLabel( "nu", this ),8, 6 ); + grid->addWidget( nu_edit, 8, 6+1 ); + grid->addWidget( new QLabel( "rho0", this ),9, 6 ); + grid->addWidget( rho0_edit, 9, 6+1 ); + grid->addWidget( new QLabel( "rho1", this ),10, 6 ); + grid->addWidget( rho1_edit, 10, 6+1 ); + grid->addWidget( new QLabel( "c0", this ),11, 6 ); + grid->addWidget( c0_edit, 11, 6+1 ); + grid->addWidget( new QLabel( "gamma", this ),12, 6 ); + grid->addWidget( gamma_edit, 12, 6+1 ); + grid->addWidget( new QLabel( "eps", this ),13, 6 ); + grid->addWidget( eps_edit, 13, 6+1 ); + grid->addWidget( new QLabel( "", this), 14, 6, 1, 2 ); + grid->addWidget( new QLabel( " User-defined parameters", this), 15, 6, 1, 2 ); + grid->addWidget( new QLabel( "k", this ),16, 6 ); + grid->addWidget( k_edit, 16, 6+1 ); + grid->addWidget( new QLabel( "i1", this ),17, 6 ); + grid->addWidget( i1_edit, 17, 6+1 ); + grid->addWidget( new QLabel( "i2", this ),18, 6 ); + grid->addWidget( i2_edit, 18, 6+1 ); + grid->addWidget( new QLabel( "i3", this ),19, 6 ); + grid->addWidget( i3_edit, 19, 6+1 ); + grid->addWidget( new QLabel( "i4", this ),20, 6 ); + grid->addWidget( i4_edit, 20, 6+1 ); + grid->addWidget( new QLabel( "i5", this ),21, 6 ); + grid->addWidget( i5_edit, 21, 6+1 ); + grid->addWidget( new QLabel( "s1", this ),22, 6 ); + grid->addWidget( s1_edit, 22, 6+1 ); + grid->addWidget( new QLabel( "s2", this ),23, 6 ); + grid->addWidget( s2_edit, 23, 6+1 ); + grid->addWidget( new QLabel( "s3", this ),24, 6 ); + grid->addWidget( s3_edit, 24, 6+1 ); + grid->addWidget( new QLabel( "b1", this ),25, 6 ); + grid->addWidget( b1_edit, 25, 6+1 ); + grid->addWidget( new QLabel( "b2", this ),26, 6 ); + grid->addWidget( b2_edit, 26, 6+1 ); + grid->addWidget( new QLabel( "b3", this ),27, 6 ); + grid->addWidget( b3_edit, 27, 6+1 ); + grid->addWidget( new QLabel( "b4", this ),28, 6 ); + grid->addWidget( b4_edit, 28, 6+1 ); + grid->addWidget( new QLabel( "dir1", this ),29, 6 ); + grid->addWidget( dir1_edit, 29, 6+1 ); + grid->addWidget( new QLabel( "dir2", this ),3, 8 ); + grid->addWidget( dir2_edit, 3, 8+1 ); + QPushButton *pb = new QPushButton( "&Write", this ); + grid->addWidget(pb, 31, 6 ); + connect( pb, SIGNAL( clicked() ), this, SLOT( write() ) ); + QPushButton *pb2 = new QPushButton( "&Close", this ); + grid->addWidget(pb2,31, 6+1 ); + connect( pb2, SIGNAL( clicked() ), this, SLOT( close() ) ); + QPushButton *pb3 = new QPushButton( "&Reset", this ); + grid->addWidget(pb3, 31, 6+2 ); + connect( pb3, SIGNAL( clicked() ), this, SLOT( Reset() ) ); + show(); +}; + +ParameterDialog::~ParameterDialog(void) { +delete arrowcolor_edit; +delete arrowsize_edit; +delete textcolor_edit; +delete cellnumsize_edit; +delete nodenumsize_edit; +delete node_mag_edit; +delete outlinewidth_edit; +delete cell_outline_color_edit; +delete resize_stride_edit; +delete T_edit; +delete lambda_length_edit; +delete lambda_celllength_edit; +delete target_length_edit; +delete cell_expansion_rate_edit; +delete cell_div_expansion_rate_edit; +delete auxin_dependent_growth_edit; +delete ode_accuracy_edit; +delete mc_stepsize_edit; +delete mc_cell_stepsize_edit; +delete energy_threshold_edit; +delete bend_lambda_edit; +delete alignment_lambda_edit; +delete rel_cell_div_threshold_edit; +delete rel_perimeter_stiffness_edit; +delete collapse_node_threshold_edit; +delete morphogen_div_threshold_edit; +delete morphogen_expansion_threshold_edit; +delete copy_wall_edit; +delete source_edit; +delete D_edit; +delete initval_edit; +delete k1_edit; +delete k2_edit; +delete r_edit; +delete kr_edit; +delete km_edit; +delete Pi_tot_edit; +delete transport_edit; +delete ka_edit; +delete pin_prod_edit; +delete pin_prod_in_epidermis_edit; +delete pin_breakdown_edit; +delete pin_breakdown_internal_edit; +delete aux1prod_edit; +delete aux1prodmeso_edit; +delete aux1decay_edit; +delete aux1decaymeso_edit; +delete aux1transport_edit; +delete aux_cons_edit; +delete aux_breakdown_edit; +delete kaux1_edit; +delete kap_edit; +delete leaf_tip_source_edit; +delete sam_efflux_edit; +delete sam_auxin_edit; +delete sam_auxin_breakdown_edit; +delete van3prod_edit; +delete van3autokat_edit; +delete van3sat_edit; +delete k2van3_edit; +delete dt_edit; +delete rd_dt_edit; +delete datadir_edit; +delete movie_edit; +delete nit_edit; +delete maxt_edit; +delete storage_stride_edit; +delete xml_storage_stride_edit; +delete rseed_edit; +delete constituous_expansion_limit_edit; +delete vessel_inh_level_edit; +delete vessel_expansion_rate_edit; +delete d_edit; +delete e_edit; +delete f_edit; +delete c_edit; +delete mu_edit; +delete nu_edit; +delete rho0_edit; +delete rho1_edit; +delete c0_edit; +delete gamma_edit; +delete eps_edit; +delete k_edit; +delete i1_edit; +delete i2_edit; +delete i3_edit; +delete i4_edit; +delete i5_edit; +delete s1_edit; +delete s2_edit; +delete s3_edit; +delete b1_edit; +delete b2_edit; +delete b3_edit; +delete b4_edit; +delete dir1_edit; +delete dir2_edit; +} + +void ParameterDialog::write(void) { + + extern Parameter par; + QString tmpval; + par.arrowcolor = strdup((const char *)arrowcolor_edit->text()); + par.arrowsize = arrowsize_edit->text().toDouble(); + par.textcolor = strdup((const char *)textcolor_edit->text()); + par.cellnumsize = cellnumsize_edit->text().toInt(); + par.nodenumsize = nodenumsize_edit->text().toInt(); + par.node_mag = node_mag_edit->text().toDouble(); + par.outlinewidth = outlinewidth_edit->text().toDouble(); + par.cell_outline_color = strdup((const char *)cell_outline_color_edit->text()); + par.resize_stride = resize_stride_edit->text().toInt(); + par.T = T_edit->text().toDouble(); + par.lambda_length = lambda_length_edit->text().toDouble(); + par.lambda_celllength = lambda_celllength_edit->text().toDouble(); + par.target_length = target_length_edit->text().toDouble(); + par.cell_expansion_rate = cell_expansion_rate_edit->text().toDouble(); + par.cell_div_expansion_rate = cell_div_expansion_rate_edit->text().toDouble(); + tmpval = auxin_dependent_growth_edit->text().stripWhiteSpace(); + if (tmpval == "true" || tmpval == "yes" ) par.auxin_dependent_growth = true; + else if (tmpval == "false" || tmpval == "no") par.auxin_dependent_growth = false; + else { + 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("auxin_dependent_growth"),"True","False", QString::null, 0, 1)==0) par.auxin_dependent_growth=true; + else par.auxin_dependent_growth=false; + } + par.ode_accuracy = ode_accuracy_edit->text().toDouble(); + par.mc_stepsize = mc_stepsize_edit->text().toDouble(); + par.mc_cell_stepsize = mc_cell_stepsize_edit->text().toDouble(); + par.energy_threshold = energy_threshold_edit->text().toDouble(); + par.bend_lambda = bend_lambda_edit->text().toDouble(); + par.alignment_lambda = alignment_lambda_edit->text().toDouble(); + par.rel_cell_div_threshold = rel_cell_div_threshold_edit->text().toDouble(); + par.rel_perimeter_stiffness = rel_perimeter_stiffness_edit->text().toDouble(); + par.collapse_node_threshold = collapse_node_threshold_edit->text().toDouble(); + par.morphogen_div_threshold = morphogen_div_threshold_edit->text().toDouble(); + par.morphogen_expansion_threshold = morphogen_expansion_threshold_edit->text().toDouble(); + tmpval = copy_wall_edit->text().stripWhiteSpace(); + if (tmpval == "true" || tmpval == "yes" ) par.copy_wall = true; + else if (tmpval == "false" || tmpval == "no") par.copy_wall = false; + else { + 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("copy_wall"),"True","False", QString::null, 0, 1)==0) par.copy_wall=true; + else par.copy_wall=false; + } + par.source = source_edit->text().toDouble(); + tmpval = D_edit->text().section(',', 0, 0); + par.D[0] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 1, 1); + par.D[1] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 2, 2); + par.D[2] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 3, 3); + par.D[3] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 4, 4); + par.D[4] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 5, 5); + par.D[5] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 6, 6); + par.D[6] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 7, 7); + par.D[7] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 8, 8); + par.D[8] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 9, 9); + par.D[9] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 10, 10); + par.D[10] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 11, 11); + par.D[11] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 12, 12); + par.D[12] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 13, 13); + par.D[13] = tmpval.toDouble(); + tmpval = D_edit->text().section(',', 14, 14); + par.D[14] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 0, 0); + par.initval[0] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 1, 1); + par.initval[1] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 2, 2); + par.initval[2] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 3, 3); + par.initval[3] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 4, 4); + par.initval[4] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 5, 5); + par.initval[5] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 6, 6); + par.initval[6] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 7, 7); + par.initval[7] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 8, 8); + par.initval[8] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 9, 9); + par.initval[9] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 10, 10); + par.initval[10] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 11, 11); + par.initval[11] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 12, 12); + par.initval[12] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 13, 13); + par.initval[13] = tmpval.toDouble(); + tmpval = initval_edit->text().section(',', 14, 14); + par.initval[14] = tmpval.toDouble(); + par.k1 = k1_edit->text().toDouble(); + par.k2 = k2_edit->text().toDouble(); + par.r = r_edit->text().toDouble(); + par.kr = kr_edit->text().toDouble(); + par.km = km_edit->text().toDouble(); + par.Pi_tot = Pi_tot_edit->text().toDouble(); + par.transport = transport_edit->text().toDouble(); + par.ka = ka_edit->text().toDouble(); + par.pin_prod = pin_prod_edit->text().toDouble(); + par.pin_prod_in_epidermis = pin_prod_in_epidermis_edit->text().toDouble(); + par.pin_breakdown = pin_breakdown_edit->text().toDouble(); + par.pin_breakdown_internal = pin_breakdown_internal_edit->text().toDouble(); + par.aux1prod = aux1prod_edit->text().toDouble(); + par.aux1prodmeso = aux1prodmeso_edit->text().toDouble(); + par.aux1decay = aux1decay_edit->text().toDouble(); + par.aux1decaymeso = aux1decaymeso_edit->text().toDouble(); + par.aux1transport = aux1transport_edit->text().toDouble(); + par.aux_cons = aux_cons_edit->text().toDouble(); + par.aux_breakdown = aux_breakdown_edit->text().toDouble(); + par.kaux1 = kaux1_edit->text().toDouble(); + par.kap = kap_edit->text().toDouble(); + par.leaf_tip_source = leaf_tip_source_edit->text().toDouble(); + par.sam_efflux = sam_efflux_edit->text().toDouble(); + par.sam_auxin = sam_auxin_edit->text().toDouble(); + par.sam_auxin_breakdown = sam_auxin_breakdown_edit->text().toDouble(); + par.van3prod = van3prod_edit->text().toDouble(); + par.van3autokat = van3autokat_edit->text().toDouble(); + par.van3sat = van3sat_edit->text().toDouble(); + par.k2van3 = k2van3_edit->text().toDouble(); + par.dt = dt_edit->text().toDouble(); + par.rd_dt = rd_dt_edit->text().toDouble(); + par.datadir = strdup((const char *)datadir_edit->text()); + tmpval = movie_edit->text().stripWhiteSpace(); + if (tmpval == "true" || tmpval == "yes" ) par.movie = true; + else if (tmpval == "false" || tmpval == "no") par.movie = false; + else { + 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("movie"),"True","False", QString::null, 0, 1)==0) par.movie=true; + else par.movie=false; + } + par.nit = nit_edit->text().toInt(); + par.maxt = maxt_edit->text().toDouble(); + par.storage_stride = storage_stride_edit->text().toInt(); + par.xml_storage_stride = xml_storage_stride_edit->text().toInt(); + par.rseed = rseed_edit->text().toInt(); + par.constituous_expansion_limit = constituous_expansion_limit_edit->text().toInt(); + par.vessel_inh_level = vessel_inh_level_edit->text().toDouble(); + par.vessel_expansion_rate = vessel_expansion_rate_edit->text().toDouble(); + par.d = d_edit->text().toDouble(); + par.e = e_edit->text().toDouble(); + par.f = f_edit->text().toDouble(); + par.c = c_edit->text().toDouble(); + par.mu = mu_edit->text().toDouble(); + par.nu = nu_edit->text().toDouble(); + par.rho0 = rho0_edit->text().toDouble(); + par.rho1 = rho1_edit->text().toDouble(); + par.c0 = c0_edit->text().toDouble(); + par.gamma = gamma_edit->text().toDouble(); + par.eps = eps_edit->text().toDouble(); + tmpval = k_edit->text().section(',', 0, 0); + par.k[0] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 1, 1); + par.k[1] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 2, 2); + par.k[2] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 3, 3); + par.k[3] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 4, 4); + par.k[4] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 5, 5); + par.k[5] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 6, 6); + par.k[6] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 7, 7); + par.k[7] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 8, 8); + par.k[8] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 9, 9); + par.k[9] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 10, 10); + par.k[10] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 11, 11); + par.k[11] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 12, 12); + par.k[12] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 13, 13); + par.k[13] = tmpval.toDouble(); + tmpval = k_edit->text().section(',', 14, 14); + par.k[14] = tmpval.toDouble(); + par.i1 = i1_edit->text().toInt(); + par.i2 = i2_edit->text().toInt(); + par.i3 = i3_edit->text().toInt(); + par.i4 = i4_edit->text().toInt(); + par.i5 = i5_edit->text().toInt(); + par.s1 = strdup((const char *)s1_edit->text()); + par.s2 = strdup((const char *)s2_edit->text()); + par.s3 = strdup((const char *)s3_edit->text()); + tmpval = b1_edit->text().stripWhiteSpace(); + if (tmpval == "true" || tmpval == "yes" ) par.b1 = true; + else if (tmpval == "false" || tmpval == "no") par.b1 = false; + else { + 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("b1"),"True","False", QString::null, 0, 1)==0) par.b1=true; + else par.b1=false; + } + tmpval = b2_edit->text().stripWhiteSpace(); + if (tmpval == "true" || tmpval == "yes" ) par.b2 = true; + else if (tmpval == "false" || tmpval == "no") par.b2 = false; + else { + 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("b2"),"True","False", QString::null, 0, 1)==0) par.b2=true; + else par.b2=false; + } + tmpval = b3_edit->text().stripWhiteSpace(); + if (tmpval == "true" || tmpval == "yes" ) par.b3 = true; + else if (tmpval == "false" || tmpval == "no") par.b3 = false; + else { + 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("b3"),"True","False", QString::null, 0, 1)==0) par.b3=true; + else par.b3=false; + } + tmpval = b4_edit->text().stripWhiteSpace(); + if (tmpval == "true" || tmpval == "yes" ) par.b4 = true; + else if (tmpval == "false" || tmpval == "no") par.b4 = false; + else { + 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("b4"),"True","False", QString::null, 0, 1)==0) par.b4=true; + else par.b4=false; + } + par.dir1 = strdup((const char *)dir1_edit->text()); + par.dir2 = strdup((const char *)dir2_edit->text()); + Reset(); + +} +void ParameterDialog::Reset(void) { + extern Parameter par; + arrowcolor_edit->setText( QString("%1").arg(par.arrowcolor) ); + arrowsize_edit->setText( QString("%1").arg(par.arrowsize) ); + textcolor_edit->setText( QString("%1").arg(par.textcolor) ); + cellnumsize_edit->setText( QString("%1").arg(par.cellnumsize) ); + nodenumsize_edit->setText( QString("%1").arg(par.nodenumsize) ); + node_mag_edit->setText( QString("%1").arg(par.node_mag) ); + outlinewidth_edit->setText( QString("%1").arg(par.outlinewidth) ); + cell_outline_color_edit->setText( QString("%1").arg(par.cell_outline_color) ); + resize_stride_edit->setText( QString("%1").arg(par.resize_stride) ); + T_edit->setText( QString("%1").arg(par.T) ); + lambda_length_edit->setText( QString("%1").arg(par.lambda_length) ); + lambda_celllength_edit->setText( QString("%1").arg(par.lambda_celllength) ); + target_length_edit->setText( QString("%1").arg(par.target_length) ); + cell_expansion_rate_edit->setText( QString("%1").arg(par.cell_expansion_rate) ); + cell_div_expansion_rate_edit->setText( QString("%1").arg(par.cell_div_expansion_rate) ); + auxin_dependent_growth_edit->setText( QString("%1").arg(sbool(par.auxin_dependent_growth))); + ode_accuracy_edit->setText( QString("%1").arg(par.ode_accuracy) ); + mc_stepsize_edit->setText( QString("%1").arg(par.mc_stepsize) ); + mc_cell_stepsize_edit->setText( QString("%1").arg(par.mc_cell_stepsize) ); + energy_threshold_edit->setText( QString("%1").arg(par.energy_threshold) ); + bend_lambda_edit->setText( QString("%1").arg(par.bend_lambda) ); + alignment_lambda_edit->setText( QString("%1").arg(par.alignment_lambda) ); + rel_cell_div_threshold_edit->setText( QString("%1").arg(par.rel_cell_div_threshold) ); + rel_perimeter_stiffness_edit->setText( QString("%1").arg(par.rel_perimeter_stiffness) ); + collapse_node_threshold_edit->setText( QString("%1").arg(par.collapse_node_threshold) ); + morphogen_div_threshold_edit->setText( QString("%1").arg(par.morphogen_div_threshold) ); + morphogen_expansion_threshold_edit->setText( QString("%1").arg(par.morphogen_expansion_threshold) ); + copy_wall_edit->setText( QString("%1").arg(sbool(par.copy_wall))); + source_edit->setText( QString("%1").arg(par.source) ); + QString D_string("%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12,%13,%14,%15"); + D_string = D_string.arg(par.D[0]).arg(par.D[1]).arg(par.D[2]).arg(par.D[3]).arg(par.D[4]).arg(par.D[5]).arg(par.D[6]).arg(par.D[7]).arg(par.D[8]).arg(par.D[9]).arg(par.D[10]).arg(par.D[11]).arg(par.D[12]).arg(par.D[13]).arg(par.D[14]); + D_edit->setText( D_string ); + QString initval_string("%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12,%13,%14,%15"); + initval_string = initval_string.arg(par.initval[0]).arg(par.initval[1]).arg(par.initval[2]).arg(par.initval[3]).arg(par.initval[4]).arg(par.initval[5]).arg(par.initval[6]).arg(par.initval[7]).arg(par.initval[8]).arg(par.initval[9]).arg(par.initval[10]).arg(par.initval[11]).arg(par.initval[12]).arg(par.initval[13]).arg(par.initval[14]); + initval_edit->setText( initval_string ); + k1_edit->setText( QString("%1").arg(par.k1) ); + k2_edit->setText( QString("%1").arg(par.k2) ); + r_edit->setText( QString("%1").arg(par.r) ); + kr_edit->setText( QString("%1").arg(par.kr) ); + km_edit->setText( QString("%1").arg(par.km) ); + Pi_tot_edit->setText( QString("%1").arg(par.Pi_tot) ); + transport_edit->setText( QString("%1").arg(par.transport) ); + ka_edit->setText( QString("%1").arg(par.ka) ); + pin_prod_edit->setText( QString("%1").arg(par.pin_prod) ); + pin_prod_in_epidermis_edit->setText( QString("%1").arg(par.pin_prod_in_epidermis) ); + pin_breakdown_edit->setText( QString("%1").arg(par.pin_breakdown) ); + pin_breakdown_internal_edit->setText( QString("%1").arg(par.pin_breakdown_internal) ); + aux1prod_edit->setText( QString("%1").arg(par.aux1prod) ); + aux1prodmeso_edit->setText( QString("%1").arg(par.aux1prodmeso) ); + aux1decay_edit->setText( QString("%1").arg(par.aux1decay) ); + aux1decaymeso_edit->setText( QString("%1").arg(par.aux1decaymeso) ); + aux1transport_edit->setText( QString("%1").arg(par.aux1transport) ); + aux_cons_edit->setText( QString("%1").arg(par.aux_cons) ); + aux_breakdown_edit->setText( QString("%1").arg(par.aux_breakdown) ); + kaux1_edit->setText( QString("%1").arg(par.kaux1) ); + kap_edit->setText( QString("%1").arg(par.kap) ); + leaf_tip_source_edit->setText( QString("%1").arg(par.leaf_tip_source) ); + sam_efflux_edit->setText( QString("%1").arg(par.sam_efflux) ); + sam_auxin_edit->setText( QString("%1").arg(par.sam_auxin) ); + sam_auxin_breakdown_edit->setText( QString("%1").arg(par.sam_auxin_breakdown) ); + van3prod_edit->setText( QString("%1").arg(par.van3prod) ); + van3autokat_edit->setText( QString("%1").arg(par.van3autokat) ); + van3sat_edit->setText( QString("%1").arg(par.van3sat) ); + k2van3_edit->setText( QString("%1").arg(par.k2van3) ); + dt_edit->setText( QString("%1").arg(par.dt) ); + rd_dt_edit->setText( QString("%1").arg(par.rd_dt) ); + datadir_edit->setText( QString("%1").arg(par.datadir) ); + movie_edit->setText( QString("%1").arg(sbool(par.movie))); + nit_edit->setText( QString("%1").arg(par.nit) ); + maxt_edit->setText( QString("%1").arg(par.maxt) ); + storage_stride_edit->setText( QString("%1").arg(par.storage_stride) ); + xml_storage_stride_edit->setText( QString("%1").arg(par.xml_storage_stride) ); + rseed_edit->setText( QString("%1").arg(par.rseed) ); + constituous_expansion_limit_edit->setText( QString("%1").arg(par.constituous_expansion_limit) ); + vessel_inh_level_edit->setText( QString("%1").arg(par.vessel_inh_level) ); + vessel_expansion_rate_edit->setText( QString("%1").arg(par.vessel_expansion_rate) ); + d_edit->setText( QString("%1").arg(par.d) ); + e_edit->setText( QString("%1").arg(par.e) ); + f_edit->setText( QString("%1").arg(par.f) ); + c_edit->setText( QString("%1").arg(par.c) ); + mu_edit->setText( QString("%1").arg(par.mu) ); + nu_edit->setText( QString("%1").arg(par.nu) ); + rho0_edit->setText( QString("%1").arg(par.rho0) ); + rho1_edit->setText( QString("%1").arg(par.rho1) ); + c0_edit->setText( QString("%1").arg(par.c0) ); + gamma_edit->setText( QString("%1").arg(par.gamma) ); + eps_edit->setText( QString("%1").arg(par.eps) ); + QString k_string("%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11,%12,%13,%14,%15"); + k_string = k_string.arg(par.k[0]).arg(par.k[1]).arg(par.k[2]).arg(par.k[3]).arg(par.k[4]).arg(par.k[5]).arg(par.k[6]).arg(par.k[7]).arg(par.k[8]).arg(par.k[9]).arg(par.k[10]).arg(par.k[11]).arg(par.k[12]).arg(par.k[13]).arg(par.k[14]); + k_edit->setText( k_string ); + i1_edit->setText( QString("%1").arg(par.i1) ); + i2_edit->setText( QString("%1").arg(par.i2) ); + i3_edit->setText( QString("%1").arg(par.i3) ); + i4_edit->setText( QString("%1").arg(par.i4) ); + i5_edit->setText( QString("%1").arg(par.i5) ); + s1_edit->setText( QString("%1").arg(par.s1) ); + s2_edit->setText( QString("%1").arg(par.s2) ); + s3_edit->setText( QString("%1").arg(par.s3) ); + b1_edit->setText( QString("%1").arg(sbool(par.b1))); + b2_edit->setText( QString("%1").arg(sbool(par.b2))); + b3_edit->setText( QString("%1").arg(sbool(par.b3))); + b4_edit->setText( QString("%1").arg(sbool(par.b4))); + dir1_edit->setText( QString("%1").arg(par.dir1) ); + dir2_edit->setText( QString("%1").arg(par.dir2) ); +} +