Changeset - 2accd83924da
[Not reviewed]
default
0 20 0
Roeland Merks - 15 years ago 2010-11-25 14:57:33
roeland.merks@cwi.nl
Some last fine-tuning
- File dialogs start from appropriate data directories
- XML files contain right values for datadir
- Reordered parameter dialog
- Added new "make perl" heading to the makefile
- Corrected segfault for batch mode

user: Roeland Merks <roeland.merks@cwi.nl>
branch 'default'
changed data/leaves/auxin_growth.xml
changed data/leaves/meinhardt_init.xml
changed data/leaves/tutorial1_init.xml
changed data/leaves/tutorial2_init.xml
changed data/leaves/tutorial3_init.xml
changed data/leaves/tutorial4_init.xml
changed data/leaves/tutorial5_init.xml
changed src/Makefile
changed src/VirtualLeaf.cpp
changed src/VirtualLeafpar.tmpl
changed src/canvas.cpp
changed src/canvas.h
changed src/mesh.cpp
changed src/mesh.h
changed src/modelcatalogue.cpp
changed src/modelcatalogue.h
changed src/parameter.cpp
changed src/parameter.h
changed src/pardialog.cpp
changed src/pardialog.h
20 files changed with 437 insertions and 341 deletions:
0 comments (0 inline, 0 general)
data/leaves/auxin_growth.xml
Show inline comments
 
binary diff not shown
data/leaves/meinhardt_init.xml
Show inline comments
 
binary diff not shown
data/leaves/tutorial1_init.xml
Show inline comments
 
binary diff not shown
data/leaves/tutorial2_init.xml
Show inline comments
 
binary diff not shown
data/leaves/tutorial3_init.xml
Show inline comments
 
binary diff not shown
data/leaves/tutorial4_init.xml
Show inline comments
 
binary diff not shown
data/leaves/tutorial5_init.xml
Show inline comments
 
binary diff not shown
src/Makefile
Show inline comments
 
@@ -34,6 +34,9 @@ tutorials:
 
	$(MAKE) -C build_models -f Makefile
 
	$(MAKE) -C TutorialCode -f Makefile
 

	
 
perl: Makefile.perl
 
	$(MAKE) -f Makefile.perl
 

	
 
clean:
 
	$(MAKE) -f Makefile.libplugin clean
 
	$(MAKE) -f Makefile.VirtualLeaf clean
src/VirtualLeaf.cpp
Show inline comments
 
@@ -207,13 +207,18 @@ INIT {
 

	
 
  //mesh.SetSimPlugin(plugin);
 
  if (leaffile) { 
 
    xmlNode *settings;
 
    mesh.XMLRead(leaffile, &settings);
 

	
 
    main_window->XMLReadSettings(settings);
 
    xmlFree(settings);
 
    main_window->UserMessage(QString("Ready. Time is %1").arg(mesh.getTimeHours().c_str()));
 

	
 
    if (qApp->type()==QApplication::Tty) {
 
      
 
      xmlNode *settings;
 
      mesh.XMLRead(leaffile, &settings);
 
      
 
      main_window->XMLReadSettings(settings);
 
      xmlFree(settings);
 
      main_window->UserMessage(QString("Ready. Time is %1").arg(mesh.getTimeHours().c_str()));
 
    } else {
 
      ((Main *)main_window)->readStateXML(leaffile);
 
    }
 
    
 
  } else {
 
    mesh.StandardInit();
 
  }
 
@@ -413,7 +418,7 @@ int main(int argc,char **argv) {
 
    //    main_window->Init(leaffile);
 

	
 
    // Install model or read catalogue of models
 
    ModelCatalogue model_catalogue(&mesh, useGUI?(Main *)main_window:0,modelfile);
 
    ModelCatalogue model_catalogue(&mesh, main_window,modelfile);
 

	
 

	
 
    if (useGUI)
src/VirtualLeafpar.tmpl
Show inline comments
 
@@ -10,6 +10,13 @@ outlinewidth = 1.0 / double
 
cell_outline_color = forestgreen / string
 
resize_stride = 0 / int
 
label = / label
 
label = <b>Data Export</b> / label
 
export_interval = 0 / int
 
export_fn_prefix = cell. / string
 
storage_stride = 10 / int
 
xml_storage_stride = 500 / int
 
datadir = . / directory 
 
label = / label
 
label = <b>Cell mechanics</b> / label
 
T = 1.0 / double
 
lambda_length = 100. / double
 
@@ -80,12 +87,9 @@ label = / label
 
label = <b>Integration parameters</b> / label
 
dt = 0.1 / double 
 
rd_dt = 1.0 / double
 
datadir = . / directory 
 
movie = false / bool
 
nit = 100000 / int
 
maxt = 1000. / double
 
storage_stride = 10 / int
 
xml_storage_stride = 500 / int
 
rseed = -1 / int
 
#label = / label
 
#label = <b>Parameters for new chemical</b> / label
 
@@ -125,5 +129,3 @@ b3 = false / bool
 
b4 = false / bool
 
dir1 = . / directory
 
dir2 = . / directory
 
export_interval = 0 / int
 
export_fn_prefix = cell. / string
src/canvas.cpp
Show inline comments
 
@@ -645,6 +645,7 @@ void Main::savePars()
 
  Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE );
 
  fd->setMode( Q3FileDialog::AnyFile );
 
  fd->setFilter( "Parameter files (*.par)");
 
  fd->setDir(par.datadir);
 

	
 
  QString fileName;
 
  if ( fd->exec() == QDialog::Accepted ) {
 
@@ -664,6 +665,7 @@ void Main::readPars()
 
  Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE );
 
  fd->setMode( Q3FileDialog::ExistingFile );
 
  fd->setFilter( "Parameter files (*.par)");
 
  fd->setDir(par.datadir);
 

	
 
  QString fileName;
 
  if ( fd->exec() == QDialog::Accepted ) {
 
@@ -682,6 +684,7 @@ void Main::saveStateXML()
 
  Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE );
 
  fd->setMode( Q3FileDialog::AnyFile );
 
  fd->setFilter( "LeafML files (*.xml)");
 
  fd->setDir(par.datadir);
 
  QString fileName;
 

	
 
  if ( fd->exec() == QDialog::Accepted ) {
 
@@ -713,6 +716,7 @@ void Main::snapshot()
 

	
 
  stopSimulation();
 
  Q3FileDialog *fd = new Q3FileDialog( this, "Save snapshot", TRUE );
 
  fd->setDir(par.datadir);
 
  fd->setMode( Q3FileDialog::AnyFile );
 
  fd->setFilter( "Image files (*.pdf *.png *.jpg *.tif *.bpm)");
 
  QString fileName;
 
@@ -910,6 +914,43 @@ void Main::readFirstStateXML()
 
  }
 
}
 

	
 
QDir Main::GetLeafDir(void) {
 
   
 
  QDir LeafDir(QApplication::applicationDirPath()); 
 
  QStringList plugin_filters; // filter for plugins, i.e "*.dll", "*.dylib"
 
  
 
  
 
#if defined(Q_OS_WIN) 
 
  if (LeafDir.dirName().toLower() =="debug" 
 
      ||LeafDir.dirName().toLower() =="release") 
 
    LeafDir.cdUp(); 
 
  //plugin_filters << "*.dll";
 
#elif defined(Q_OS_MAC) 
 
  if (LeafDir.dirName() =="MacOS"){ 
 
    LeafDir.cdUp(); 
 
    LeafDir.cdUp(); 
 
    LeafDir.cdUp(); 
 
  }
 
  
 
#endif
 
  // for all OS-es. Move from "bin" directory to root application folder.
 
  if (LeafDir.dirName() == "bin") {
 
    LeafDir.cdUp();
 
  }
 

	
 
  LeafDir.cd("data/leaves");
 
  /* if (!LeafDir.cd("data/leaves")) {
 
    QString status_message = QString("No directory data/leaves");
 
    statusBar()->showMessage(status_message);
 
    
 
    return LeafDir;
 
  } 
 
  */
 
  return LeafDir;
 
      
 
}
 
 
 

	
 
void Main::readStateXML()
 
{
 

	
 
@@ -924,6 +965,8 @@ void Main::readStateXML()
 
  fd->setFilter( "LeafML files (*.xml)");
 
  if (working_dir) {
 
    fd->setDir(*working_dir);
 
  } else {
 
    fd->setDir(par.datadir);
 
  }
 
  QString fileName;
 
  if ( fd->exec() == QDialog::Accepted ) {
 
@@ -1395,8 +1438,6 @@ xmlNode *Main::XMLSettingsTree(void)
 
}
 

	
 

	
 
#define QDEBUG
 

	
 
void Main::exportCellData(QString fileName) {
 
  
 
#ifdef QDEBUG  
 
@@ -1407,6 +1448,7 @@ void Main::exportCellData(QString fileNa
 
  if ( file.open( IO_WriteOnly ) ) {
 
    QTextStream stream( &file );
 
    mesh.CSVExportCellData(stream);
 
    mesh.CSVExportWallData(stream);
 
    mesh.CSVExportMeshData(stream);
 
    file.close();
 
  }
 
@@ -1416,7 +1458,7 @@ void Main::exportCellData(QString fileNa
 
void Main::exportCellData() {
 
  QString fileName;
 
  Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE );
 

	
 
  fd->setDir(par.datadir); 
 
  stopSimulation();
 
  fd->setMode( Q3FileDialog::AnyFile );
 
  if ( fd->exec() == QDialog::Accepted ) {
src/canvas.h
Show inline comments
 
@@ -30,6 +30,7 @@
 
#include <QGraphicsScene>
 
#include <QGraphicsView>
 
#include <QList>
 
#include <QDir>
 

	
 
#include <string>
 
#include <sstream>
 
@@ -162,7 +163,8 @@ class Main : public Q3MainWindow, public
 
  void startSimulation(void);
 
  void stopSimulation(void);
 
  void RefreshInfoBar(void);
 

	
 
  int readStateXML(const char *filename, bool geometry = true, bool pars=true, bool simtime = true);
 
  
 
  void EnterRotationMode(void)
 
  {
 

	
 
@@ -199,8 +201,8 @@ class Main : public Q3MainWindow, public
 
  void aboutQt();
 
  void newView();
 
  void EditParameters();
 
  QDir GetLeafDir(void);
 
  void readStateXML();
 
  int readStateXML(const char *filename, bool geometry = true, bool pars=true, bool simtime = true);
 
  void readNextStateXML();
 
  void readPrevStateXML();
 
  void readFirstStateXML();
src/mesh.cpp
Show inline comments
 
@@ -2065,6 +2065,42 @@ void Mesh::CSVExportCellData(QTextStream
 
    }
 
    csv_stream << endl;
 
  }
 

	
 
  
 
}
 

	
 

	
 
// DataExport
 
void Mesh::CSVExportWallData(QTextStream &csv_stream) const {
 

	
 
  csv_stream << "\"Wall Index\",\"Cell A\",\"Cell B\",\"Length\"";
 
  
 
  for (int c=0;c<Cell::NChem(); c++) {
 
    csv_stream << ",\"Transporter A:" << c << "\"";
 
  }
 
  for (int c=0;c<Cell::NChem(); c++) {
 
    csv_stream << ",\"Transporter B:" << c << "\"";
 
  }
 
  csv_stream << endl;
 
  for (list<Wall *>::const_iterator i=walls.begin();
 
       i!=walls.end();
 
       i++) {
 
    csv_stream << (*i)->Index() << ","
 
	       << (*i)->C1()->Index() << ","
 
	       << (*i)->C2()->Index() << ","
 
	       << (*i)->Length();
 
	      
 
    for (int c=0;c<Cell::NChem(); c++) {
 
      csv_stream << "," << (*i)->Transporters1(c);
 
    }
 
    for (int c=0;c<Cell::NChem(); c++) {
 
      csv_stream << "," << (*i)->Transporters2(c);
 
    }
 

	
 
    csv_stream << endl;
 
  }
 

	
 
  
 
}
 

	
 

	
src/mesh.h
Show inline comments
 
@@ -388,6 +388,7 @@ class Mesh {
 
  void StandardInit(void);	
 
  double Compactness(double *res_compactness=0, double *res_area=0, double *res_cell_area=0, double *hull_circumference=0);
 
  void CSVExportCellData(QTextStream &csv_stream) const;
 
  void CSVExportWallData(QTextStream &csv_stream) const;
 
  void CSVExportMeshData(QTextStream &csv_stream);
 
  
 
  Node* findNextBoundaryNode(Node*);
src/modelcatalogue.cpp
Show inline comments
 
@@ -25,7 +25,7 @@
 

	
 
static const std::string _module_id("$Id$");
 

	
 
ModelCatalogue::ModelCatalogue(Mesh *_mesh, Main *_mainwin, const char *model=0) {
 
ModelCatalogue::ModelCatalogue(Mesh *_mesh, MainBase *_mainwin, const char *model=0) {
 
  mesh = _mesh;
 
  mainwin = _mainwin;
 
  if (model) {
 
@@ -126,14 +126,14 @@ void ModelCatalogue::InstallFirstModel()
 
}
 
void ModelCatalogue::PopulateModelMenu() {
 
  foreach (SimPluginInterface *model, models) {
 
    QAction *modelaction = new QAction(model->ModelID(), mainwin); 
 
    QAction *modelaction = new QAction(model->ModelID(), (Main *)mainwin); 
 
    QVariant data;
 
    data.setValue(model);
 
    modelaction->setData(data);
 
    mainwin->modelmenu->addAction(modelaction);
 
    ((Main *)mainwin)->modelmenu->addAction(modelaction);
 

	
 
  }
 
  connect(mainwin->modelmenu, SIGNAL(triggered(QAction *)), this, SLOT(InstallModel(QAction *)) );
 
  connect(((Main *)mainwin)->modelmenu, SIGNAL(triggered(QAction *)), this, SLOT(InstallModel(QAction *)) );
 
}	
 

	
 
void ModelCatalogue::InstallModel(QAction *modelaction) {
 
@@ -157,7 +157,10 @@ void ModelCatalogue::InstallModel(SimPlu
 
  plugin->SetParameters(&par);
 
  
 
  if (mainwin) {
 
    mainwin->RefreshInfoBar();
 
    
 
    if (!qApp->type()==QApplication::Tty)  // only do this if we are running a GUI
 
      ((Main *)mainwin)->RefreshInfoBar();
 
    
 
    if (plugin->DefaultLeafML().isEmpty()) {
 
      mainwin->Init(0);
 
    } else {
src/modelcatalogue.h
Show inline comments
 
@@ -41,7 +41,7 @@
 
class ModelCatalogue : public QObject {
 
  Q_OBJECT
 
    public:
 
  ModelCatalogue(Mesh *mesh, Main *mainwin, const char *model); 	
 
  ModelCatalogue(Mesh *mesh, MainBase *mainwin, const char *model); 	
 
  void LoadPlugins(); 
 
  void LoadPlugin(const char *model);
 

	
 
@@ -54,7 +54,7 @@ class ModelCatalogue : public QObject {
 
 private:
 
  QVector<SimPluginInterface *> models;
 
  Mesh *mesh;
 
  Main *mainwin;
 
  MainBase *mainwin;
 
};
 

	
 
#endif
src/parameter.cpp
Show inline comments
 
@@ -51,6 +51,12 @@ Parameter::Parameter() {
 
  outlinewidth = 1.0;
 
  cell_outline_color = strdup("forestgreen");
 
  resize_stride = 0;
 
  export_interval = 0;
 
  export_fn_prefix = strdup("cell.");
 
  storage_stride = 10;
 
  xml_storage_stride = 500;
 
  datadir = strdup(".");
 
  datadir = AppendHomeDirIfPathRelative(datadir);
 
  T = 1.0;
 
  lambda_length = 100.;
 
  yielding_threshold = 4.;
 
@@ -135,13 +141,9 @@ Parameter::Parameter() {
 
  k2van3 = 0.3;
 
  dt = 0.1;
 
  rd_dt = 1.0;
 
  datadir = strdup(".");
 
  datadir = AppendHomeDirIfPathRelative(datadir);
 
  movie = false;
 
  nit = 100000;
 
  maxt = 1000.;
 
  storage_stride = 10;
 
  xml_storage_stride = 500;
 
  rseed = -1;
 
  constituous_expansion_limit = 16;
 
  vessel_inh_level = 1;
 
@@ -187,8 +189,6 @@ Parameter::Parameter() {
 
  b4 = false;
 
  dir1 = strdup(".");
 
  dir2 = strdup(".");
 
  export_interval = 0;
 
  export_fn_prefix = strdup("cell.");
 
}
 

	
 
Parameter::~Parameter() {
 
@@ -205,12 +205,14 @@ void Parameter::CleanUp(void) {
 
     free(textcolor);
 
  if (cell_outline_color) 
 
     free(cell_outline_color);
 
  if (export_fn_prefix) 
 
     free(export_fn_prefix);
 
  if (datadir) 
 
     free(datadir);
 
  if (D) 
 
     free(D);
 
  if (initval) 
 
     free(initval);
 
  if (datadir) 
 
     free(datadir);
 
  if (k) 
 
     free(k);
 
  if (s1) 
 
@@ -223,8 +225,6 @@ void Parameter::CleanUp(void) {
 
     free(dir1);
 
  if (dir2) 
 
     free(dir2);
 
  if (export_fn_prefix) 
 
     free(export_fn_prefix);
 

	
 
}
 

	
 
@@ -252,6 +252,14 @@ void Parameter::Read(const char *filenam
 
  outlinewidth = fgetpar(fp, "outlinewidth", 1.0, true);
 
  cell_outline_color = sgetpar(fp, "cell_outline_color", "forestgreen", true);
 
  resize_stride = igetpar(fp, "resize_stride", 0, true);
 
  export_interval = igetpar(fp, "export_interval", 0, true);
 
  export_fn_prefix = sgetpar(fp, "export_fn_prefix", "cell.", true);
 
  storage_stride = igetpar(fp, "storage_stride", 10, true);
 
  xml_storage_stride = igetpar(fp, "xml_storage_stride", 500, true);
 
  datadir = sgetpar(fp, "datadir", ".", true);
 
  datadir = AppendHomeDirIfPathRelative(datadir);
 
  if (strcmp(datadir, "."))
 
    MakeDir(datadir);
 
  T = fgetpar(fp, "T", 1.0, true);
 
  lambda_length = fgetpar(fp, "lambda_length", 100., true);
 
  yielding_threshold = fgetpar(fp, "yielding_threshold", 4., true);
 
@@ -306,15 +314,9 @@ void Parameter::Read(const char *filenam
 
  k2van3 = fgetpar(fp, "k2van3", 0.3, true);
 
  dt = fgetpar(fp, "dt", 0.1, true);
 
  rd_dt = fgetpar(fp, "rd_dt", 1.0, true);
 
  datadir = sgetpar(fp, "datadir", ".", true);
 
  datadir = AppendHomeDirIfPathRelative(datadir);
 
  if (strcmp(datadir, "."))
 
    MakeDir(datadir);
 
  movie = bgetpar(fp, "movie", false, true);
 
  nit = igetpar(fp, "nit", 100000, true);
 
  maxt = fgetpar(fp, "maxt", 1000., true);
 
  storage_stride = igetpar(fp, "storage_stride", 10, true);
 
  xml_storage_stride = igetpar(fp, "xml_storage_stride", 500, true);
 
  rseed = igetpar(fp, "rseed", -1, true);
 
  constituous_expansion_limit = igetpar(fp, "constituous_expansion_limit", 16, true);
 
  vessel_inh_level = fgetpar(fp, "vessel_inh_level", 1, true);
 
@@ -349,8 +351,6 @@ void Parameter::Read(const char *filenam
 
  dir2 = sgetpar(fp, "dir2", ".", true);
 
  if (strcmp(dir2, "."))
 
    MakeDir(dir2);
 
  export_interval = igetpar(fp, "export_interval", 0, true);
 
  export_fn_prefix = sgetpar(fp, "export_fn_prefix", "cell.", true);
 
}
 

	
 
const char *sbool(const bool &p) {
 
@@ -380,6 +380,19 @@ void Parameter::Write(ostream &os) const
 
  if (cell_outline_color) 
 
  os << " cell_outline_color = " << cell_outline_color << endl;
 
  os << " resize_stride = " << resize_stride << endl;
 
  os << " export_interval = " << export_interval << endl;
 

	
 
  if (export_fn_prefix) 
 
  os << " export_fn_prefix = " << export_fn_prefix << endl;
 
  os << " storage_stride = " << storage_stride << endl;
 
  os << " xml_storage_stride = " << xml_storage_stride << endl;
 
  if (datadir) {
 
                                     QDir dataDir = QDir::home().relativeFilePath(datadir);
 
                                     os << " datadir = " << dataDir.dirName().toStdString() << endl;
 
                                 }
 
                                 else {
 
                                     os << "datadir = ." << endl;
 
                                 }
 
  os << " T = " << T << endl;
 
  os << " lambda_length = " << lambda_length << endl;
 
  os << " yielding_threshold = " << yielding_threshold << endl;
 
@@ -434,18 +447,9 @@ void Parameter::Write(ostream &os) const
 
  os << " k2van3 = " << k2van3 << endl;
 
  os << " dt = " << dt << endl;
 
  os << " rd_dt = " << rd_dt << endl;
 
  if (datadir) {
 
                                     QDir dataDir = QDir::home().relativeFilePath(datadir);
 
                                     os << " datadir = " << dataDir.dirName().toStdString() << endl;
 
                                 }
 
                                 else {
 
                                     os << "datadir = ." << endl;
 
                                 }
 
  os << " movie = " << sbool(movie) << endl;
 
  os << " nit = " << nit << endl;
 
  os << " maxt = " << maxt << endl;
 
  os << " storage_stride = " << storage_stride << endl;
 
  os << " xml_storage_stride = " << xml_storage_stride << endl;
 
  os << " rseed = " << rseed << endl;
 
  os << " constituous_expansion_limit = " << constituous_expansion_limit << endl;
 
  os << " vessel_inh_level = " << vessel_inh_level << endl;
 
@@ -486,10 +490,6 @@ void Parameter::Write(ostream &os) const
 

	
 
  if (dir2) 
 
  os << " dir2 = " << dir2 << endl;
 
  os << " export_interval = " << export_interval << endl;
 

	
 
  if (export_fn_prefix) 
 
  os << " export_fn_prefix = " << export_fn_prefix << endl;
 
}
 

	
 
void Parameter::XMLAdd(xmlNode *root) const {
 
@@ -565,6 +565,47 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_interval" );
 
  ostringstream text;
 
    text << export_interval;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_fn_prefix" );
 
  ostringstream text;
 

	
 
  if (export_fn_prefix) 
 
    text << export_fn_prefix;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "storage_stride" );
 
  ostringstream text;
 
    text << storage_stride;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "xml_storage_stride" );
 
  ostringstream text;
 
    text << xml_storage_stride;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "datadir" );
 
  ostringstream text;
 

	
 
  if (datadir) {
 
                                     QDir dataDir = QDir::home().relativeFilePath(datadir);
 
                                     text << dataDir.dirName().toStdString();
 
                                   }
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "T" );
 
  ostringstream text;
 
    text << T;
 
@@ -1119,17 +1160,6 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "datadir" );
 
  ostringstream text;
 

	
 
  if (datadir) {
 
                                     QDir dataDir = QDir::home().relativeFilePath(datadir);
 
                                     text << dataDir.dirName().toStdString();
 
                                   }
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "movie" );
 
  ostringstream text;
 
text << sbool(movie);
 
@@ -1151,20 +1181,6 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "storage_stride" );
 
  ostringstream text;
 
    text << storage_stride;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "xml_storage_stride" );
 
  ostringstream text;
 
    text << xml_storage_stride;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "rseed" );
 
  ostringstream text;
 
    text << rseed;
 
@@ -1471,22 +1487,6 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C
 
    text << dir2;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_interval" );
 
  ostringstream text;
 
    text << export_interval;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
{
 
  xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
 
  xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_fn_prefix" );
 
  ostringstream text;
 

	
 
  if (export_fn_prefix) 
 
    text << export_fn_prefix;
 
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
 
}
 
}
 
void Parameter::AssignValToPar(const char *namec, const char *valc) {
 
  QLocale standardlocale(QLocale::C);
 
@@ -1527,6 +1527,27 @@ if (!strcmp(namec, "resize_stride")) {
 
  resize_stride = standardlocale.toInt(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'resize_stride' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "export_interval")) {
 
  export_interval = standardlocale.toInt(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'export_interval' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "export_fn_prefix")) {
 
  if (export_fn_prefix) { free(export_fn_prefix); }
 
  export_fn_prefix=strdup(valc);
 
}
 
if (!strcmp(namec, "storage_stride")) {
 
  storage_stride = standardlocale.toInt(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'storage_stride' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "xml_storage_stride")) {
 
  xml_storage_stride = standardlocale.toInt(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'xml_storage_stride' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "datadir")) {
 
  if (datadir) { free(datadir); }
 
  datadir=strdup(valc);
 
  datadir = AppendHomeDirIfPathRelative(datadir);
 
}
 
if (!strcmp(namec, "T")) {
 
  T = standardlocale.toDouble(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'T' from XML file.",valc); }
 
@@ -1733,11 +1754,6 @@ if (!strcmp(namec, "rd_dt")) {
 
  rd_dt = standardlocale.toDouble(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'rd_dt' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "datadir")) {
 
  if (datadir) { free(datadir); }
 
  datadir=strdup(valc);
 
  datadir = AppendHomeDirIfPathRelative(datadir);
 
}
 
if (!strcmp(namec, "movie")) {
 
movie = strtobool(valc);
 
}
 
@@ -1749,14 +1765,6 @@ if (!strcmp(namec, "maxt")) {
 
  maxt = standardlocale.toDouble(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'maxt' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "storage_stride")) {
 
  storage_stride = standardlocale.toInt(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'storage_stride' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "xml_storage_stride")) {
 
  xml_storage_stride = standardlocale.toInt(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'xml_storage_stride' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "rseed")) {
 
  rseed = standardlocale.toInt(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'rseed' from XML file.",valc); }
 
@@ -1869,14 +1877,6 @@ if (!strcmp(namec, "dir2")) {
 
  if (dir2) { free(dir2); }
 
  dir2=strdup(valc);
 
}
 
if (!strcmp(namec, "export_interval")) {
 
  export_interval = standardlocale.toInt(valc, &ok);
 
  if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'export_interval' from XML file.",valc); }
 
}
 
if (!strcmp(namec, "export_fn_prefix")) {
 
  if (export_fn_prefix) { free(export_fn_prefix); }
 
  export_fn_prefix=strdup(valc);
 
}
 
}
 
void Parameter::AssignValArrayToPar(const char *namec, vector<double> valarray) {
 
if (!strcmp(namec, "D")) {
src/parameter.h
Show inline comments
 
@@ -53,6 +53,11 @@
 
  double outlinewidth;
 
  char * cell_outline_color;
 
  int resize_stride;
 
  int export_interval;
 
  char * export_fn_prefix;
 
  int storage_stride;
 
  int xml_storage_stride;
 
  char * datadir;
 
  double T;
 
  double lambda_length;
 
  double yielding_threshold;
 
@@ -107,12 +112,9 @@
 
  double k2van3;
 
  double dt;
 
  double rd_dt;
 
  char * datadir;
 
  bool movie;
 
  int nit;
 
  double maxt;
 
  int storage_stride;
 
  int xml_storage_stride;
 
  int rseed;
 
  int constituous_expansion_limit;
 
  double vessel_inh_level;
 
@@ -143,8 +145,6 @@
 
  bool b4;
 
  char * dir1;
 
  char * dir2;
 
  int export_interval;
 
  char * export_fn_prefix;
 
 private:
 
 };
 

	
src/pardialog.cpp
Show inline comments
 
@@ -43,6 +43,11 @@ ParameterDialog::ParameterDialog(QWidget
 
  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" );
 
  export_interval_edit = new QLineEdit( QString("%1").arg(par.export_interval), this, "export_interval_edit" );
 
  export_fn_prefix_edit = new QLineEdit( QString("%1").arg(par.export_fn_prefix), this, "export_fn_prefix_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" );
 
  datadir_edit = new QLineEdit( QString("%1").arg(par.datadir), this, "datadir_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" );
 
  yielding_threshold_edit = new QLineEdit( QString("%1").arg(par.yielding_threshold), this, "yielding_threshold_edit" );
 
@@ -101,12 +106,9 @@ ParameterDialog::ParameterDialog(QWidget
 
  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" );
 
@@ -139,8 +141,6 @@ ParameterDialog::ParameterDialog(QWidget
 
  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" );
 
  export_interval_edit = new QLineEdit( QString("%1").arg(par.export_interval), this, "export_interval_edit" );
 
  export_fn_prefix_edit = new QLineEdit( QString("%1").arg(par.export_fn_prefix), this, "export_fn_prefix_edit" );
 
// make a 1x1 grid; it will auto-expand
 
QGridLayout *grid = new QGridLayout( this, 1, 1 );
 
    
 
@@ -168,199 +168,201 @@ QGridLayout *grid = new QGridLayout( thi
 
  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( " <b>Cell mechanics</b>", 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( "yielding_threshold", this ),17, 0 );
 
  grid->addWidget( yielding_threshold_edit, 17, 0+1  );
 
  grid->addWidget( new QLabel( "lambda_celllength", this ),18, 0 );
 
  grid->addWidget( lambda_celllength_edit, 18, 0+1  );
 
  grid->addWidget( new QLabel( "target_length", this ),19, 0 );
 
  grid->addWidget( target_length_edit, 19, 0+1  );
 
  grid->addWidget( new QLabel( "cell_expansion_rate", this ),20, 0 );
 
  grid->addWidget( cell_expansion_rate_edit, 20, 0+1  );
 
  grid->addWidget( new QLabel( "cell_div_expansion_rate", this ),21, 0 );
 
  grid->addWidget( cell_div_expansion_rate_edit, 21, 0+1  );
 
  grid->addWidget( new QLabel( "auxin_dependent_growth", this ),22, 0 );
 
  grid->addWidget( auxin_dependent_growth_edit, 22, 0+1  );
 
  grid->addWidget( new QLabel( "ode_accuracy", this ),23, 0 );
 
  grid->addWidget( ode_accuracy_edit, 23, 0+1  );
 
  grid->addWidget( new QLabel( "mc_stepsize", this ),24, 0 );
 
  grid->addWidget( mc_stepsize_edit, 24, 0+1  );
 
  grid->addWidget( new QLabel( "mc_cell_stepsize", this ),25, 0 );
 
  grid->addWidget( mc_cell_stepsize_edit, 25, 0+1  );
 
  grid->addWidget( new QLabel( "energy_threshold", this ),26, 0 );
 
  grid->addWidget( energy_threshold_edit, 26, 0+1  );
 
  grid->addWidget( new QLabel( "bend_lambda", this ),27, 0 );
 
  grid->addWidget( bend_lambda_edit, 27, 0+1  );
 
  grid->addWidget( new QLabel( "alignment_lambda", this ),28, 0 );
 
  grid->addWidget( alignment_lambda_edit, 28, 0+1  );
 
  grid->addWidget( new QLabel( "rel_cell_div_threshold", this ),29, 0 );
 
  grid->addWidget( rel_cell_div_threshold_edit, 29, 0+1  );
 
  grid->addWidget( new QLabel( "rel_perimeter_stiffness", this ),3, 2 );
 
  grid->addWidget( rel_perimeter_stiffness_edit, 3, 2+1  );
 
  grid->addWidget( new QLabel( "collapse_node_threshold", this ),4, 2 );
 
  grid->addWidget( collapse_node_threshold_edit, 4, 2+1  );
 
  grid->addWidget( new QLabel( "morphogen_div_threshold", this ),5, 2 );
 
  grid->addWidget( morphogen_div_threshold_edit, 5, 2+1  );
 
  grid->addWidget( new QLabel( "morphogen_expansion_threshold", this ),6, 2 );
 
  grid->addWidget( morphogen_expansion_threshold_edit, 6, 2+1  );
 
  grid->addWidget( new QLabel( "copy_wall", this ),7, 2 );
 
  grid->addWidget( copy_wall_edit, 7, 2+1  );
 
  grid->addWidget( new QLabel( "", this), 8, 2, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Auxin transport and PIN1 dynamics</b>", this), 9, 2, 1, 2 );
 
  grid->addWidget( new QLabel( "source", this ),10, 2 );
 
  grid->addWidget( source_edit, 10, 2+1  );
 
  grid->addWidget( new QLabel( "D", this ),11, 2 );
 
  grid->addWidget( D_edit, 11, 2+1  );
 
  grid->addWidget( new QLabel( "initval", this ),12, 2 );
 
  grid->addWidget( initval_edit, 12, 2+1  );
 
  grid->addWidget( new QLabel( "k1", this ),13, 2 );
 
  grid->addWidget( k1_edit, 13, 2+1  );
 
  grid->addWidget( new QLabel( "k2", this ),14, 2 );
 
  grid->addWidget( k2_edit, 14, 2+1  );
 
  grid->addWidget( new QLabel( "r", this ),15, 2 );
 
  grid->addWidget( r_edit, 15, 2+1  );
 
  grid->addWidget( new QLabel( "kr", this ),16, 2 );
 
  grid->addWidget( kr_edit, 16, 2+1  );
 
  grid->addWidget( new QLabel( "km", this ),17, 2 );
 
  grid->addWidget( km_edit, 17, 2+1  );
 
  grid->addWidget( new QLabel( "Pi_tot", this ),18, 2 );
 
  grid->addWidget( Pi_tot_edit, 18, 2+1  );
 
  grid->addWidget( new QLabel( "transport", this ),19, 2 );
 
  grid->addWidget( transport_edit, 19, 2+1  );
 
  grid->addWidget( new QLabel( "ka", this ),20, 2 );
 
  grid->addWidget( ka_edit, 20, 2+1  );
 
  grid->addWidget( new QLabel( "pin_prod", this ),21, 2 );
 
  grid->addWidget( pin_prod_edit, 21, 2+1  );
 
  grid->addWidget( new QLabel( "pin_prod_in_epidermis", this ),22, 2 );
 
  grid->addWidget( pin_prod_in_epidermis_edit, 22, 2+1  );
 
  grid->addWidget( new QLabel( "pin_breakdown", this ),23, 2 );
 
  grid->addWidget( pin_breakdown_edit, 23, 2+1  );
 
  grid->addWidget( new QLabel( "pin_breakdown_internal", this ),24, 2 );
 
  grid->addWidget( pin_breakdown_internal_edit, 24, 2+1  );
 
  grid->addWidget( new QLabel( "aux1prod", this ),25, 2 );
 
  grid->addWidget( aux1prod_edit, 25, 2+1  );
 
  grid->addWidget( new QLabel( "aux1prodmeso", this ),26, 2 );
 
  grid->addWidget( aux1prodmeso_edit, 26, 2+1  );
 
  grid->addWidget( new QLabel( "aux1decay", this ),27, 2 );
 
  grid->addWidget( aux1decay_edit, 27, 2+1  );
 
  grid->addWidget( new QLabel( "aux1decaymeso", this ),28, 2 );
 
  grid->addWidget( aux1decaymeso_edit, 28, 2+1  );
 
  grid->addWidget( new QLabel( "aux1transport", this ),29, 2 );
 
  grid->addWidget( aux1transport_edit, 29, 2+1  );
 
  grid->addWidget( new QLabel( "aux_cons", this ),3, 4 );
 
  grid->addWidget( aux_cons_edit, 3, 4+1  );
 
  grid->addWidget( new QLabel( "aux_breakdown", this ),4, 4 );
 
  grid->addWidget( aux_breakdown_edit, 4, 4+1  );
 
  grid->addWidget( new QLabel( "kaux1", this ),5, 4 );
 
  grid->addWidget( kaux1_edit, 5, 4+1  );
 
  grid->addWidget( new QLabel( "kap", this ),6, 4 );
 
  grid->addWidget( kap_edit, 6, 4+1  );
 
  grid->addWidget( new QLabel( "leaf_tip_source", this ),7, 4 );
 
  grid->addWidget( leaf_tip_source_edit, 7, 4+1  );
 
  grid->addWidget( new QLabel( "sam_efflux", this ),8, 4 );
 
  grid->addWidget( sam_efflux_edit, 8, 4+1  );
 
  grid->addWidget( new QLabel( "sam_auxin", this ),9, 4 );
 
  grid->addWidget( sam_auxin_edit, 9, 4+1  );
 
  grid->addWidget( new QLabel( "sam_auxin_breakdown", this ),10, 4 );
 
  grid->addWidget( sam_auxin_breakdown_edit, 10, 4+1  );
 
  grid->addWidget( new QLabel( "van3prod", this ),11, 4 );
 
  grid->addWidget( van3prod_edit, 11, 4+1  );
 
  grid->addWidget( new QLabel( "van3autokat", this ),12, 4 );
 
  grid->addWidget( van3autokat_edit, 12, 4+1  );
 
  grid->addWidget( new QLabel( "van3sat", this ),13, 4 );
 
  grid->addWidget( van3sat_edit, 13, 4+1  );
 
  grid->addWidget( new QLabel( "k2van3", this ),14, 4 );
 
  grid->addWidget( k2van3_edit, 14, 4+1  );
 
  grid->addWidget( new QLabel( "", this), 15, 4, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Integration parameters</b>", this), 16, 4, 1, 2 );
 
  grid->addWidget( new QLabel( "dt", this ),17, 4 );
 
  grid->addWidget( dt_edit, 17, 4+1  );
 
  grid->addWidget( new QLabel( "rd_dt", this ),18, 4 );
 
  grid->addWidget( rd_dt_edit, 18, 4+1  );
 
  grid->addWidget( new QLabel( "datadir", this ),19, 4 );
 
  grid->addWidget( datadir_edit, 19, 4+1  );
 
  grid->addWidget( new QLabel( "movie", this ),20, 4 );
 
  grid->addWidget( movie_edit, 20, 4+1  );
 
  grid->addWidget( new QLabel( "nit", this ),21, 4 );
 
  grid->addWidget( nit_edit, 21, 4+1  );
 
  grid->addWidget( new QLabel( "maxt", this ),22, 4 );
 
  grid->addWidget( maxt_edit, 22, 4+1  );
 
  grid->addWidget( new QLabel( "storage_stride", this ),23, 4 );
 
  grid->addWidget( storage_stride_edit, 23, 4+1  );
 
  grid->addWidget( new QLabel( "xml_storage_stride", this ),24, 4 );
 
  grid->addWidget( xml_storage_stride_edit, 24, 4+1  );
 
  grid->addWidget( new QLabel( "rseed", this ),25, 4 );
 
  grid->addWidget( rseed_edit, 25, 4+1  );
 
  grid->addWidget( new QLabel( "", this), 26, 4, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Meinhardt leaf venation model</b>", this), 27, 4, 1, 2 );
 
  grid->addWidget( new QLabel( "constituous_expansion_limit", this ),28, 4 );
 
  grid->addWidget( constituous_expansion_limit_edit, 28, 4+1  );
 
  grid->addWidget( new QLabel( "vessel_inh_level", this ),29, 4 );
 
  grid->addWidget( vessel_inh_level_edit, 29, 4+1  );
 
  grid->addWidget( new QLabel( "vessel_expansion_rate", this ),3, 6 );
 
  grid->addWidget( vessel_expansion_rate_edit, 3, 6+1  );
 
  grid->addWidget( new QLabel( "d", this ),4, 6 );
 
  grid->addWidget( d_edit, 4, 6+1  );
 
  grid->addWidget( new QLabel( "e", this ),5, 6 );
 
  grid->addWidget( e_edit, 5, 6+1  );
 
  grid->addWidget( new QLabel( "f", this ),6, 6 );
 
  grid->addWidget( f_edit, 6, 6+1  );
 
  grid->addWidget( new QLabel( "c", this ),7, 6 );
 
  grid->addWidget( c_edit, 7, 6+1  );
 
  grid->addWidget( new QLabel( "mu", this ),8, 6 );
 
  grid->addWidget( mu_edit, 8, 6+1  );
 
  grid->addWidget( new QLabel( "nu", this ),9, 6 );
 
  grid->addWidget( nu_edit, 9, 6+1  );
 
  grid->addWidget( new QLabel( "rho0", this ),10, 6 );
 
  grid->addWidget( rho0_edit, 10, 6+1  );
 
  grid->addWidget( new QLabel( "rho1", this ),11, 6 );
 
  grid->addWidget( rho1_edit, 11, 6+1  );
 
  grid->addWidget( new QLabel( "c0", this ),12, 6 );
 
  grid->addWidget( c0_edit, 12, 6+1  );
 
  grid->addWidget( new QLabel( "gamma", this ),13, 6 );
 
  grid->addWidget( gamma_edit, 13, 6+1  );
 
  grid->addWidget( new QLabel( "eps", this ),14, 6 );
 
  grid->addWidget( eps_edit, 14, 6+1  );
 
  grid->addWidget( new QLabel( "", this), 15, 6, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>User-defined parameters</b>", this), 16, 6, 1, 2 );
 
  grid->addWidget( new QLabel( "k", this ),17, 6 );
 
  grid->addWidget( k_edit, 17, 6+1  );
 
  grid->addWidget( new QLabel( "i1", this ),18, 6 );
 
  grid->addWidget( i1_edit, 18, 6+1  );
 
  grid->addWidget( new QLabel( "i2", this ),19, 6 );
 
  grid->addWidget( i2_edit, 19, 6+1  );
 
  grid->addWidget( new QLabel( "i3", this ),20, 6 );
 
  grid->addWidget( i3_edit, 20, 6+1  );
 
  grid->addWidget( new QLabel( "i4", this ),21, 6 );
 
  grid->addWidget( i4_edit, 21, 6+1  );
 
  grid->addWidget( new QLabel( "i5", this ),22, 6 );
 
  grid->addWidget( i5_edit, 22, 6+1  );
 
  grid->addWidget( new QLabel( "s1", this ),23, 6 );
 
  grid->addWidget( s1_edit, 23, 6+1  );
 
  grid->addWidget( new QLabel( "s2", this ),24, 6 );
 
  grid->addWidget( s2_edit, 24, 6+1  );
 
  grid->addWidget( new QLabel( "s3", this ),25, 6 );
 
  grid->addWidget( s3_edit, 25, 6+1  );
 
  grid->addWidget( new QLabel( "b1", this ),26, 6 );
 
  grid->addWidget( b1_edit, 26, 6+1  );
 
  grid->addWidget( new QLabel( "b2", this ),27, 6 );
 
  grid->addWidget( b2_edit, 27, 6+1  );
 
  grid->addWidget( new QLabel( "b3", this ),28, 6 );
 
  grid->addWidget( b3_edit, 28, 6+1  );
 
  grid->addWidget( new QLabel( "b4", this ),29, 6 );
 
  grid->addWidget( b4_edit, 29, 6+1  );
 
  grid->addWidget( new QLabel( "dir1", this ),3, 8 );
 
  grid->addWidget( dir1_edit, 3, 8+1  );
 
  grid->addWidget( new QLabel( "dir2", this ),4, 8 );
 
  grid->addWidget( dir2_edit, 4, 8+1  );
 
  grid->addWidget( new QLabel( "export_interval", this ),5, 8 );
 
  grid->addWidget( export_interval_edit, 5, 8+1  );
 
  grid->addWidget( new QLabel( "export_fn_prefix", this ),6, 8 );
 
  grid->addWidget( export_fn_prefix_edit, 6, 8+1  );
 
  grid->addWidget( new QLabel( " <b>Data Export</b>", this), 14, 0, 1, 2 );
 
  grid->addWidget( new QLabel( "export_interval", this ),15, 0 );
 
  grid->addWidget( export_interval_edit, 15, 0+1  );
 
  grid->addWidget( new QLabel( "export_fn_prefix", this ),16, 0 );
 
  grid->addWidget( export_fn_prefix_edit, 16, 0+1  );
 
  grid->addWidget( new QLabel( "storage_stride", this ),17, 0 );
 
  grid->addWidget( storage_stride_edit, 17, 0+1  );
 
  grid->addWidget( new QLabel( "xml_storage_stride", this ),18, 0 );
 
  grid->addWidget( xml_storage_stride_edit, 18, 0+1  );
 
  grid->addWidget( new QLabel( "datadir", this ),19, 0 );
 
  grid->addWidget( datadir_edit, 19, 0+1  );
 
  grid->addWidget( new QLabel( "", this), 20, 0, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Cell mechanics</b>", this), 21, 0, 1, 2 );
 
  grid->addWidget( new QLabel( "T", this ),22, 0 );
 
  grid->addWidget( T_edit, 22, 0+1  );
 
  grid->addWidget( new QLabel( "lambda_length", this ),23, 0 );
 
  grid->addWidget( lambda_length_edit, 23, 0+1  );
 
  grid->addWidget( new QLabel( "yielding_threshold", this ),24, 0 );
 
  grid->addWidget( yielding_threshold_edit, 24, 0+1  );
 
  grid->addWidget( new QLabel( "lambda_celllength", this ),25, 0 );
 
  grid->addWidget( lambda_celllength_edit, 25, 0+1  );
 
  grid->addWidget( new QLabel( "target_length", this ),26, 0 );
 
  grid->addWidget( target_length_edit, 26, 0+1  );
 
  grid->addWidget( new QLabel( "cell_expansion_rate", this ),27, 0 );
 
  grid->addWidget( cell_expansion_rate_edit, 27, 0+1  );
 
  grid->addWidget( new QLabel( "cell_div_expansion_rate", this ),28, 0 );
 
  grid->addWidget( cell_div_expansion_rate_edit, 28, 0+1  );
 
  grid->addWidget( new QLabel( "auxin_dependent_growth", this ),29, 0 );
 
  grid->addWidget( auxin_dependent_growth_edit, 29, 0+1  );
 
  grid->addWidget( new QLabel( "ode_accuracy", this ),3, 2 );
 
  grid->addWidget( ode_accuracy_edit, 3, 2+1  );
 
  grid->addWidget( new QLabel( "mc_stepsize", this ),4, 2 );
 
  grid->addWidget( mc_stepsize_edit, 4, 2+1  );
 
  grid->addWidget( new QLabel( "mc_cell_stepsize", this ),5, 2 );
 
  grid->addWidget( mc_cell_stepsize_edit, 5, 2+1  );
 
  grid->addWidget( new QLabel( "energy_threshold", this ),6, 2 );
 
  grid->addWidget( energy_threshold_edit, 6, 2+1  );
 
  grid->addWidget( new QLabel( "bend_lambda", this ),7, 2 );
 
  grid->addWidget( bend_lambda_edit, 7, 2+1  );
 
  grid->addWidget( new QLabel( "alignment_lambda", this ),8, 2 );
 
  grid->addWidget( alignment_lambda_edit, 8, 2+1  );
 
  grid->addWidget( new QLabel( "rel_cell_div_threshold", this ),9, 2 );
 
  grid->addWidget( rel_cell_div_threshold_edit, 9, 2+1  );
 
  grid->addWidget( new QLabel( "rel_perimeter_stiffness", this ),10, 2 );
 
  grid->addWidget( rel_perimeter_stiffness_edit, 10, 2+1  );
 
  grid->addWidget( new QLabel( "collapse_node_threshold", this ),11, 2 );
 
  grid->addWidget( collapse_node_threshold_edit, 11, 2+1  );
 
  grid->addWidget( new QLabel( "morphogen_div_threshold", this ),12, 2 );
 
  grid->addWidget( morphogen_div_threshold_edit, 12, 2+1  );
 
  grid->addWidget( new QLabel( "morphogen_expansion_threshold", this ),13, 2 );
 
  grid->addWidget( morphogen_expansion_threshold_edit, 13, 2+1  );
 
  grid->addWidget( new QLabel( "copy_wall", this ),14, 2 );
 
  grid->addWidget( copy_wall_edit, 14, 2+1  );
 
  grid->addWidget( new QLabel( "", this), 15, 2, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Auxin transport and PIN1 dynamics</b>", this), 16, 2, 1, 2 );
 
  grid->addWidget( new QLabel( "source", this ),17, 2 );
 
  grid->addWidget( source_edit, 17, 2+1  );
 
  grid->addWidget( new QLabel( "D", this ),18, 2 );
 
  grid->addWidget( D_edit, 18, 2+1  );
 
  grid->addWidget( new QLabel( "initval", this ),19, 2 );
 
  grid->addWidget( initval_edit, 19, 2+1  );
 
  grid->addWidget( new QLabel( "k1", this ),20, 2 );
 
  grid->addWidget( k1_edit, 20, 2+1  );
 
  grid->addWidget( new QLabel( "k2", this ),21, 2 );
 
  grid->addWidget( k2_edit, 21, 2+1  );
 
  grid->addWidget( new QLabel( "r", this ),22, 2 );
 
  grid->addWidget( r_edit, 22, 2+1  );
 
  grid->addWidget( new QLabel( "kr", this ),23, 2 );
 
  grid->addWidget( kr_edit, 23, 2+1  );
 
  grid->addWidget( new QLabel( "km", this ),24, 2 );
 
  grid->addWidget( km_edit, 24, 2+1  );
 
  grid->addWidget( new QLabel( "Pi_tot", this ),25, 2 );
 
  grid->addWidget( Pi_tot_edit, 25, 2+1  );
 
  grid->addWidget( new QLabel( "transport", this ),26, 2 );
 
  grid->addWidget( transport_edit, 26, 2+1  );
 
  grid->addWidget( new QLabel( "ka", this ),27, 2 );
 
  grid->addWidget( ka_edit, 27, 2+1  );
 
  grid->addWidget( new QLabel( "pin_prod", this ),28, 2 );
 
  grid->addWidget( pin_prod_edit, 28, 2+1  );
 
  grid->addWidget( new QLabel( "pin_prod_in_epidermis", this ),29, 2 );
 
  grid->addWidget( pin_prod_in_epidermis_edit, 29, 2+1  );
 
  grid->addWidget( new QLabel( "pin_breakdown", this ),3, 4 );
 
  grid->addWidget( pin_breakdown_edit, 3, 4+1  );
 
  grid->addWidget( new QLabel( "pin_breakdown_internal", this ),4, 4 );
 
  grid->addWidget( pin_breakdown_internal_edit, 4, 4+1  );
 
  grid->addWidget( new QLabel( "aux1prod", this ),5, 4 );
 
  grid->addWidget( aux1prod_edit, 5, 4+1  );
 
  grid->addWidget( new QLabel( "aux1prodmeso", this ),6, 4 );
 
  grid->addWidget( aux1prodmeso_edit, 6, 4+1  );
 
  grid->addWidget( new QLabel( "aux1decay", this ),7, 4 );
 
  grid->addWidget( aux1decay_edit, 7, 4+1  );
 
  grid->addWidget( new QLabel( "aux1decaymeso", this ),8, 4 );
 
  grid->addWidget( aux1decaymeso_edit, 8, 4+1  );
 
  grid->addWidget( new QLabel( "aux1transport", this ),9, 4 );
 
  grid->addWidget( aux1transport_edit, 9, 4+1  );
 
  grid->addWidget( new QLabel( "aux_cons", this ),10, 4 );
 
  grid->addWidget( aux_cons_edit, 10, 4+1  );
 
  grid->addWidget( new QLabel( "aux_breakdown", this ),11, 4 );
 
  grid->addWidget( aux_breakdown_edit, 11, 4+1  );
 
  grid->addWidget( new QLabel( "kaux1", this ),12, 4 );
 
  grid->addWidget( kaux1_edit, 12, 4+1  );
 
  grid->addWidget( new QLabel( "kap", this ),13, 4 );
 
  grid->addWidget( kap_edit, 13, 4+1  );
 
  grid->addWidget( new QLabel( "leaf_tip_source", this ),14, 4 );
 
  grid->addWidget( leaf_tip_source_edit, 14, 4+1  );
 
  grid->addWidget( new QLabel( "sam_efflux", this ),15, 4 );
 
  grid->addWidget( sam_efflux_edit, 15, 4+1  );
 
  grid->addWidget( new QLabel( "sam_auxin", this ),16, 4 );
 
  grid->addWidget( sam_auxin_edit, 16, 4+1  );
 
  grid->addWidget( new QLabel( "sam_auxin_breakdown", this ),17, 4 );
 
  grid->addWidget( sam_auxin_breakdown_edit, 17, 4+1  );
 
  grid->addWidget( new QLabel( "van3prod", this ),18, 4 );
 
  grid->addWidget( van3prod_edit, 18, 4+1  );
 
  grid->addWidget( new QLabel( "van3autokat", this ),19, 4 );
 
  grid->addWidget( van3autokat_edit, 19, 4+1  );
 
  grid->addWidget( new QLabel( "van3sat", this ),20, 4 );
 
  grid->addWidget( van3sat_edit, 20, 4+1  );
 
  grid->addWidget( new QLabel( "k2van3", this ),21, 4 );
 
  grid->addWidget( k2van3_edit, 21, 4+1  );
 
  grid->addWidget( new QLabel( "", this), 22, 4, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Integration parameters</b>", this), 23, 4, 1, 2 );
 
  grid->addWidget( new QLabel( "dt", this ),24, 4 );
 
  grid->addWidget( dt_edit, 24, 4+1  );
 
  grid->addWidget( new QLabel( "rd_dt", this ),25, 4 );
 
  grid->addWidget( rd_dt_edit, 25, 4+1  );
 
  grid->addWidget( new QLabel( "movie", this ),26, 4 );
 
  grid->addWidget( movie_edit, 26, 4+1  );
 
  grid->addWidget( new QLabel( "nit", this ),27, 4 );
 
  grid->addWidget( nit_edit, 27, 4+1  );
 
  grid->addWidget( new QLabel( "maxt", this ),28, 4 );
 
  grid->addWidget( maxt_edit, 28, 4+1  );
 
  grid->addWidget( new QLabel( "rseed", this ),29, 4 );
 
  grid->addWidget( rseed_edit, 29, 4+1  );
 
  grid->addWidget( new QLabel( "", this), 3, 6, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Meinhardt leaf venation model</b>", this), 4, 6, 1, 2 );
 
  grid->addWidget( new QLabel( "constituous_expansion_limit", this ),5, 6 );
 
  grid->addWidget( constituous_expansion_limit_edit, 5, 6+1  );
 
  grid->addWidget( new QLabel( "vessel_inh_level", this ),6, 6 );
 
  grid->addWidget( vessel_inh_level_edit, 6, 6+1  );
 
  grid->addWidget( new QLabel( "vessel_expansion_rate", this ),7, 6 );
 
  grid->addWidget( vessel_expansion_rate_edit, 7, 6+1  );
 
  grid->addWidget( new QLabel( "d", this ),8, 6 );
 
  grid->addWidget( d_edit, 8, 6+1  );
 
  grid->addWidget( new QLabel( "e", this ),9, 6 );
 
  grid->addWidget( e_edit, 9, 6+1  );
 
  grid->addWidget( new QLabel( "f", this ),10, 6 );
 
  grid->addWidget( f_edit, 10, 6+1  );
 
  grid->addWidget( new QLabel( "c", this ),11, 6 );
 
  grid->addWidget( c_edit, 11, 6+1  );
 
  grid->addWidget( new QLabel( "mu", this ),12, 6 );
 
  grid->addWidget( mu_edit, 12, 6+1  );
 
  grid->addWidget( new QLabel( "nu", this ),13, 6 );
 
  grid->addWidget( nu_edit, 13, 6+1  );
 
  grid->addWidget( new QLabel( "rho0", this ),14, 6 );
 
  grid->addWidget( rho0_edit, 14, 6+1  );
 
  grid->addWidget( new QLabel( "rho1", this ),15, 6 );
 
  grid->addWidget( rho1_edit, 15, 6+1  );
 
  grid->addWidget( new QLabel( "c0", this ),16, 6 );
 
  grid->addWidget( c0_edit, 16, 6+1  );
 
  grid->addWidget( new QLabel( "gamma", this ),17, 6 );
 
  grid->addWidget( gamma_edit, 17, 6+1  );
 
  grid->addWidget( new QLabel( "eps", this ),18, 6 );
 
  grid->addWidget( eps_edit, 18, 6+1  );
 
  grid->addWidget( new QLabel( "", this), 19, 6, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>User-defined parameters</b>", this), 20, 6, 1, 2 );
 
  grid->addWidget( new QLabel( "k", this ),21, 6 );
 
  grid->addWidget( k_edit, 21, 6+1  );
 
  grid->addWidget( new QLabel( "i1", this ),22, 6 );
 
  grid->addWidget( i1_edit, 22, 6+1  );
 
  grid->addWidget( new QLabel( "i2", this ),23, 6 );
 
  grid->addWidget( i2_edit, 23, 6+1  );
 
  grid->addWidget( new QLabel( "i3", this ),24, 6 );
 
  grid->addWidget( i3_edit, 24, 6+1  );
 
  grid->addWidget( new QLabel( "i4", this ),25, 6 );
 
  grid->addWidget( i4_edit, 25, 6+1  );
 
  grid->addWidget( new QLabel( "i5", this ),26, 6 );
 
  grid->addWidget( i5_edit, 26, 6+1  );
 
  grid->addWidget( new QLabel( "s1", this ),27, 6 );
 
  grid->addWidget( s1_edit, 27, 6+1  );
 
  grid->addWidget( new QLabel( "s2", this ),28, 6 );
 
  grid->addWidget( s2_edit, 28, 6+1  );
 
  grid->addWidget( new QLabel( "s3", this ),29, 6 );
 
  grid->addWidget( s3_edit, 29, 6+1  );
 
  grid->addWidget( new QLabel( "b1", this ),3, 8 );
 
  grid->addWidget( b1_edit, 3, 8+1  );
 
  grid->addWidget( new QLabel( "b2", this ),4, 8 );
 
  grid->addWidget( b2_edit, 4, 8+1  );
 
  grid->addWidget( new QLabel( "b3", this ),5, 8 );
 
  grid->addWidget( b3_edit, 5, 8+1  );
 
  grid->addWidget( new QLabel( "b4", this ),6, 8 );
 
  grid->addWidget( b4_edit, 6, 8+1  );
 
  grid->addWidget( new QLabel( "dir1", this ),7, 8 );
 
  grid->addWidget( dir1_edit, 7, 8+1  );
 
  grid->addWidget( new QLabel( "dir2", this ),8, 8 );
 
  grid->addWidget( dir2_edit, 8, 8+1  );
 
QPushButton *pb = new QPushButton( "&Write", this );
 
grid->addWidget(pb, 31, 6 );
 
connect( pb, SIGNAL( clicked() ), this, SLOT( write() ) );
 
@@ -383,6 +385,11 @@ delete node_mag_edit;
 
delete outlinewidth_edit;
 
delete cell_outline_color_edit;
 
delete resize_stride_edit;
 
delete export_interval_edit;
 
delete export_fn_prefix_edit;
 
delete storage_stride_edit;
 
delete xml_storage_stride_edit;
 
delete datadir_edit;
 
delete T_edit;
 
delete lambda_length_edit;
 
delete yielding_threshold_edit;
 
@@ -437,12 +444,9 @@ 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;
 
@@ -473,8 +477,6 @@ delete b3_edit;
 
delete b4_edit;
 
delete dir1_edit;
 
delete dir2_edit;
 
delete export_interval_edit;
 
delete export_fn_prefix_edit;
 
}
 

	
 
void ParameterDialog::write(void) {
 
@@ -490,6 +492,11 @@ QString tmpval;
 
  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.export_interval = export_interval_edit->text().toInt();
 
  par.export_fn_prefix = strdup((const char *)export_fn_prefix_edit->text());
 
  par.storage_stride = storage_stride_edit->text().toInt();
 
  par.xml_storage_stride = xml_storage_stride_edit->text().toInt();
 
  par.datadir = strdup((const char *)datadir_edit->text());
 
  par.T = T_edit->text().toDouble();
 
  par.lambda_length = lambda_length_edit->text().toDouble();
 
  par.yielding_threshold = yielding_threshold_edit->text().toDouble();
 
@@ -614,7 +621,6 @@ QString tmpval;
 
  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;
 
@@ -624,8 +630,6 @@ QString tmpval;
 
  }
 
  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();
 
@@ -709,8 +713,6 @@ QString tmpval;
 
  }
 
  par.dir1 = strdup((const char *)dir1_edit->text());
 
  par.dir2 = strdup((const char *)dir2_edit->text());
 
  par.export_interval = export_interval_edit->text().toInt();
 
  par.export_fn_prefix = strdup((const char *)export_fn_prefix_edit->text());
 
Reset();
 

	
 
}
 
@@ -725,6 +727,11 @@ void ParameterDialog::Reset(void) {
 
  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) );
 
  export_interval_edit->setText( QString("%1").arg(par.export_interval) );
 
  export_fn_prefix_edit->setText( QString("%1").arg(par.export_fn_prefix) );
 
  storage_stride_edit->setText( QString("%1").arg(par.storage_stride) );
 
  xml_storage_stride_edit->setText( QString("%1").arg(par.xml_storage_stride) );
 
  datadir_edit->setText( QString("%1").arg(par.datadir) );
 
  T_edit->setText( QString("%1").arg(par.T) );
 
  lambda_length_edit->setText( QString("%1").arg(par.lambda_length) );
 
  yielding_threshold_edit->setText( QString("%1").arg(par.yielding_threshold) );
 
@@ -783,12 +790,9 @@ void ParameterDialog::Reset(void) {
 
  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) );
 
@@ -821,7 +825,5 @@ void ParameterDialog::Reset(void) {
 
  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) );
 
  export_interval_edit->setText( QString("%1").arg(par.export_interval) );
 
  export_fn_prefix_edit->setText( QString("%1").arg(par.export_fn_prefix) );
 
}
 

	
src/pardialog.h
Show inline comments
 
@@ -55,6 +55,11 @@ class ParameterDialog : public QDialog {
 
  QLineEdit *outlinewidth_edit;
 
  QLineEdit *cell_outline_color_edit;
 
  QLineEdit *resize_stride_edit;
 
  QLineEdit *export_interval_edit;
 
  QLineEdit *export_fn_prefix_edit;
 
  QLineEdit *storage_stride_edit;
 
  QLineEdit *xml_storage_stride_edit;
 
  QLineEdit *datadir_edit;
 
  QLineEdit *T_edit;
 
  QLineEdit *lambda_length_edit;
 
  QLineEdit *yielding_threshold_edit;
 
@@ -109,12 +114,9 @@ class ParameterDialog : public QDialog {
 
  QLineEdit *k2van3_edit;
 
  QLineEdit *dt_edit;
 
  QLineEdit *rd_dt_edit;
 
  QLineEdit *datadir_edit;
 
  QLineEdit *movie_edit;
 
  QLineEdit *nit_edit;
 
  QLineEdit *maxt_edit;
 
  QLineEdit *storage_stride_edit;
 
  QLineEdit *xml_storage_stride_edit;
 
  QLineEdit *rseed_edit;
 
  QLineEdit *constituous_expansion_limit_edit;
 
  QLineEdit *vessel_inh_level_edit;
 
@@ -145,7 +147,5 @@ class ParameterDialog : public QDialog {
 
  QLineEdit *b4_edit;
 
  QLineEdit *dir1_edit;
 
  QLineEdit *dir2_edit;
 
  QLineEdit *export_interval_edit;
 
  QLineEdit *export_fn_prefix_edit;
 
};
 
#endif
0 comments (0 inline, 0 general)