Changeset - 6d4ff3be53ef
[Not reviewed]
default
0 3 0
Michael Guravage - 14 years ago 2011-10-04 12:07:14
michael.guravage@cwi.nl
Bumped up the version number to 1.0.1

--
user: Michael Guravage <michael.guravage@cwi.nl>
branch 'default'
changed src/ChangeLog
changed src/VirtualLeaf-install-windows.nsi
changed src/canvas.cpp
3 files changed with 9 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/ChangeLog
Show inline comments
 
2011-10-04    <guravage@petitdru.sen.cwi.nl>
 

	
 
	* canvas.cpp (about): Bumped version number to 1.0.1.
 

	
 
	* VirtualLeaf-install-windows.nsi: Bumped PRODUCT_VERSION  to 1.0.1.
 

	
 
2011-02-28    <guravage@petitdru.sen.cwi.nl>
 

	
 
	* canvas.cpp (about): Correct citation text.
 
	Resolves issue #4: http://code.google.com/p/virtualleaf/issues/detail?id=4.
 

	
 
2011-01-13    <guravage@petitdru.sen.cwi.nl>
 

	
 
	* transporterdialog.cpp (TransporterDialog): Use wn to discern
 
	which cell a wallitem belongs to.
 

	
 
	* wallitem.cpp (WallItem): Add a comment explaining how
 
	wallnumber(wn) can be used to tell which cell a wallitem belongs
 
	to.
 

	
 
	* VirtualLeaf-install-windows.nsi: Remove previous change that added icon directory.
 

	
 
	* canvas.cpp: Instead of using a separate icon directory, compile
 
	leaficon_small.xpm directly into canvas.cpp.
 

	
 
	* VirtualLeaf-install-windows.nsi: Add new icons directory
 

	
 
	* canvas.cpp (about): Added virtual leaf logo to About message box.
 

	
 
2011-01-12    <guravage@petitdru.sen.cwi.nl>
 

	
 
	* transporterdialog.cpp (TransporterDialog): Add a proper title to
 
	the dialog, and place the cell and wall pairs in a seperate labe.
 

	
 
2011-01-10    <guravage@petitdru.sen.cwi.nl>
 

	
 
	* transporterdialog.cpp (TransporterDialog): Start numbering Transporter fields at zero.
 
	Resolves issue #1: http://code.google.com/p/virtualleaf/issues/detail?id=1.
 

	
 
	* wallitem.cpp (OnClick): Change dialog modality to Qt::WindowModal.
 
	Resolves issue #2: http://code.google.com/p/virtualleaf/issues/detail?id=2.
 

	
 
	* canvas.cpp (about): Add link to Plant Physiology paper.
 
	Resolves issue #3: http://code.google.com/p/virtualleaf/issues/detail?id=3.
 

	
 
2010-11-30    <guravage@petitdru.sen.cwi.nl>
 

	
 
	* canvas.cpp (snapshot): Preface each image format extension with
 
	an asterisk so files with those extensions to appear in the file
 
	dialogue.
 
	(snapshot): Forgot to add asterisk before our own pdf format.
 

	
 
	* VirtualLeaf-install-windows.nsi: Include imageformats folder
 
	alongside executable.
 

	
 
	* canvas.cpp (snapshot): PNG is the default image format.
 

	
 
2010-11-29    <guravage@petitdru.sen.cwi.nl>
 

	
 
	* canvas.cpp (snapshot): Query and display supported snapshot file
 
	formats.
 

	
 
	* VirtualLeaf-install-windows.nsi: To facilitate debugging I added
 
	the debug versions of all the windows DLLs.
 

	
 
2010-10-19    <guravage@caterpie.sen.cwi.nl>
 

	
 
	* mainbase.cpp (Save): Use format specified in function prototype.
 

	
 
	* VirtualLeaf.cpp (Plot): Render PNG instead of JPEG. Write image
 
	and XML files dependent only on getTime().
 

	
 
2010-10-18    <guravage@caterpie.sen.cwi.nl>
 

	
 
	* mainbase.cpp (Save): QDir::toNativeSeparators(fname). Invoke
 
	save with format argument set to zero to force QImage to guess the
 
	format by looking at fileName's suffix.
 

	
 
	* VirtualLeaf-install.nsi: Put uninstaller in top directory.
 

	
 
	* modelcatalogue.cpp (InstallModel): For all OS-es. Move from "bin" directory to root application folder.
 

	
 
	* VirtualLeaf.pro: MAXOSX, look for gpl3.txt in the ../doc directory.
 

	
 
	* Makefile (Makefile.libplugin): Removed -makefile qmake option.
 

	
 
	* VirtualLeaf.cpp (TIMESTEP): Removed getIterations().
 

	
 
	* mesh.h (Mesh): Removed {increment,get}Iterations().
 

	
 
	* canvas.cpp (TimeStepWrap): Replaced getIterations() with getTime().
 

	
 
2010-10-15    <guravage@caterpie.sen.cwi.nl>
 

	
 
	* mesh.h (Mesh): Added iterations. incrementIterations() and
 
	getIterations().
 

	
 
	* VirtualLeaf.cpp (Plot): Replaced local frame counter with
 
	mesh.incrementIterations().
 

	
 
	* canvas.cpp (TimeStepWrap): Replaced local counter with
 
	mesh.incrementIterations().
src/VirtualLeaf-install-windows.nsi
Show inline comments
 
# $Id$
 

	
 
# appends \ to the path if missing
 
# example: !insertmacro GetCleanDir "c:\blabla"
 
# Pop $0 => "c:\blabla\"
 
!macro GetCleanDir INPUTDIR
 
  ; ATTENTION: USE ON YOUR OWN RISK!
 
  ; Please report bugs here: http://stefan.bertels.org/
 
  !define Index_GetCleanDir 'GetCleanDir_Line${__LINE__}'
 
  Push $R0
 
  Push $R1
 
  StrCpy $R0 "${INPUTDIR}"
 
  StrCmp $R0 "" ${Index_GetCleanDir}-finish
 
  StrCpy $R1 "$R0" "" -1
 
  StrCmp "$R1" "\" ${Index_GetCleanDir}-finish
 
  StrCpy $R0 "$R0\"
 
${Index_GetCleanDir}-finish:
 
  Pop $R1
 
  Exch $R0
 
  !undef Index_GetCleanDir
 
!macroend
 
 
 
# similar to "RMDIR /r DIRECTORY", but does not remove DIRECTORY itself
 
# example: !insertmacro RemoveFilesAndSubDirs "$INSTDIR"
 
!macro RemoveFilesAndSubDirs DIRECTORY
 
  # ATTENTION: USE ON YOUR OWN RISK!
 
  # Please report bugs here: http://stefan.bertels.org/
 
  !define Index_RemoveFilesAndSubDirs 'RemoveFilesAndSubDirs_${__LINE__}'
 
 
 
  Push $R0
 
  Push $R1
 
  Push $R2
 
 
 
  !insertmacro GetCleanDir "${DIRECTORY}"
 
  Pop $R2
 
  FindFirst $R0 $R1 "$R2*.*"
 
${Index_RemoveFilesAndSubDirs}-loop:
 
  StrCmp $R1 "" ${Index_RemoveFilesAndSubDirs}-done
 
  StrCmp $R1 "." ${Index_RemoveFilesAndSubDirs}-next
 
  StrCmp $R1 ".." ${Index_RemoveFilesAndSubDirs}-next
 
  IfFileExists "$R2$R1\*.*" ${Index_RemoveFilesAndSubDirs}-directory
 
  ; file
 
  Delete "$R2$R1"
 
  goto ${Index_RemoveFilesAndSubDirs}-next
 
${Index_RemoveFilesAndSubDirs}-directory:
 
  ; directory
 
  RMDir /r "$R2$R1"
 
${Index_RemoveFilesAndSubDirs}-next:
 
  FindNext $R0 $R1
 
  Goto ${Index_RemoveFilesAndSubDirs}-loop
 
${Index_RemoveFilesAndSubDirs}-done:
 
  FindClose $R0
 
 
 
  Pop $R2
 
  Pop $R1
 
  Pop $R0
 
  !undef Index_RemoveFilesAndSubDirs
 
!macroend
 

	
 
!define PRODUCT_NAME "The Virtual Leaf"
 
!define PRODUCT_VERSION "1.0"
 
!define PRODUCT_VERSION "1.0.1"
 
!define PRODUCT_PUBLISHER "Center for Mathematics and Computer Science (CWI)"
 
!define PRODUCT_WEB_SITE "www.cwi.nl"
 
!define EXECUTABLE "VirtualLeaf.exe"
 
!define PROGICON "leaficon.ico"
 
!define SETUP_BITMAP "leaficon.ico"
 

	
 
# MUI 1.67 compatible ------
 
!include "MUI.nsh"
 
!include "EnvVarUpdate.nsh"
 

	
 
# MUI Settings
 
!define MUI_ABORTWARNING
 
!define MUI_ICON "leaficon.ico"
 
!define MUI_UNICON "leaficon.ico"
 

	
 
# Welcome page
 
!insertmacro MUI_PAGE_WELCOME
 

	
 
# License page
 
!insertmacro MUI_PAGE_LICENSE "..\doc\gpl3.txt"
 

	
 
# Components page
 
!insertmacro MUI_PAGE_COMPONENTS
 

	
 
# Directory page
 
!insertmacro MUI_PAGE_DIRECTORY
 

	
 
# Instfiles page
 
!insertmacro MUI_PAGE_INSTFILES
 

	
 
# Finish page
 
!insertmacro MUI_PAGE_FINISH
 

	
 
# Uninstaller pages
 
!insertmacro MUI_UNPAGE_CONFIRM
 
!insertmacro MUI_UNPAGE_INSTFILES
 
!insertmacro MUI_UNPAGE_FINISH
 

	
 
# Language files
 
!insertmacro MUI_LANGUAGE "English"
 

	
 
# MUI end ------
 

	
 
# set the name of the installer
 
outfile "VirtualLeaf-install.exe"
 
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
 
ShowInstDetails show
 
ShowUnInstDetails show
 
 
 
# define the directory to install to
 
installDir C:\VirtualLeaf
 

	
 
# Request application privileges
 
RequestExecutionLevel user
 

	
 
section "Virtual Leaf executable"
 
  #sectionIn RO
 
  # define the output path for the Virtual Leaf executable
 
  setOutPath $INSTDIR\bin
 
  writeUninstaller $INSTDIR\uninstaller.exe
 
  file ..\bin\VirtualLeaf.exe
 

	
 
  # Required DLLs
 
  setOutPath $INSTDIR\bin
 

	
 
  file ..\lib\libiconv\bin\libiconv-2.dll
 
  file ..\lib\libxml2\lib\libxml2.dll
 
  file ..\lib\libz\bin\zlib1.dll
 

	
 
  # Is the pegging of these DLLs to a specific QT version a problem?
 
  file C:\Qt\2010.02.1\mingw\bin\mingwm10.dll
 
  file C:\Qt\2010.02.1\mingw\bin\libgcc_s_dw2-1.dll
 
  file C:\Qt\2010.02.1\qt\bin\Qt3Support4.dll
 
  file C:\Qt\2010.02.1\qt\bin\QtCore4.dll
 
  file C:\Qt\2010.02.1\qt\bin\QtGui4.dll
 
  file C:\Qt\2010.02.1\qt\bin\QtNetwork4.dll
 
  file C:\Qt\2010.02.1\qt\bin\QtSql4.dll
 
  file C:\Qt\2010.02.1\qt\bin\QtXml4.dll
 

	
 
  # Prepend the Virtual Leaf bin directory to the installers PATH
 
  ${EnvVarUpdate} $0 "PATH" "P" "HKCU" "$INSTDIR\bin"  
 

	
 
  # create a shortcut named "VirtualLeaf" in the start menu programs directory
 
  # point the new shortcut at the program VirtualLeaf
 
  createShortCut "$SMPROGRAMS\VirtualLeaf.lnk" "$INSTDIR\bin\VirtualLeaf.exe"
 
sectionEnd
 

	
 
section "Image Formats"
 
  # define the output path for the Qt Image Formats
 
  setOutPath $INSTDIR\bin\imageformats
 
  file C:\Qt\2010.02.1\qt\plugins\imageformats\qgif4.dll
 
  file C:\Qt\2010.02.1\qt\plugins\imageformats\qico4.dll
 
  file C:\Qt\2010.02.1\qt\plugins\imageformats\qjpeg4.dll
 
  file C:\Qt\2010.02.1\qt\plugins\imageformats\qmng4.dll
 
  file C:\Qt\2010.02.1\qt\plugins\imageformats\qsvg4.dll
 
  file C:\Qt\2010.02.1\qt\plugins\imageformats\qtiff4.dll
src/canvas.cpp
Show inline comments
 
@@ -928,194 +928,194 @@ void Main::readFirstStateXML()
 
{
 

	
 
  // if we have already read a file, read the next file
 
  if (!currentFile.isEmpty() && working_dir) {
 
    QString next_file;
 

	
 
    QStringList xml_files = working_dir->entryList("*.xml");
 
    QString currentFile_nopath = currentFile.section( '/', -1 );
 
    QString currentFile_path = currentFile.section( '/', 0, -2 );
 

	
 

	
 
    next_file = xml_files.front();
 

	
 
    next_file = currentFile_path+"/"+next_file;
 

	
 
    readStateXML((const char*)next_file);
 
  }
 
}
 

	
 
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()
 
{
 

	
 
  //  extern Mesh mesh;
 

	
 
  stopSimulation();
 
#ifdef QDEBUG
 
  qDebug() << "Trying to open an OptionFileDialog" << endl;
 
#endif
 
  OptionFileDialog *fd = new OptionFileDialog( this, "read dialog", TRUE );
 
  fd->setMode( OptionFileDialog::ExistingFile );
 
  fd->setFilter( "LeafML files (*.xml)");
 
  if (working_dir) {
 
    fd->setDir(*working_dir);
 
  } else {
 
    fd->setDir(par.datadir);
 
  }
 
  QString fileName;
 
  if ( fd->exec() == QDialog::Accepted ) {
 

	
 
    fileName = fd->selectedFile();
 
    if (working_dir) {
 
      delete working_dir;
 
    }
 
    working_dir = fd->dir();
 

	
 
    if (readStateXML((const char *)fileName,fd->readGeometryP(), fd->readParametersP()) )
 
      return readStateXML(); // user can try again
 
  }
 
}
 

	
 

	
 
void Main::clear()
 
{
 
  editor->clear();
 
}
 

	
 
void Main::about()
 
{
 
  static QMessageBox* about = new QMessageBox
 
    ( "VirtualLeaf V1.0",
 
      "<h3>VirtualLeaf V1.0</h3>\
 
    ( "VirtualLeaf V1.0.1",
 
      "<h3>VirtualLeaf V1.0.1</h3>\
 
       <p>\
 
         An Open Source framework for cell-based modeling of plant\
 
         tissue growth and development.\
 
       </p>\
 
       <p>(c) 2005-2008, Roeland Merks <i>et al.</i>\
 
         <a href=\"http://www.psb.vib-ugent.be\">VIB Department Plant Systems Biology</a>,\
 
         Ghent, Belgium.\
 
       </p>\
 
       <p>(c) 2008-2010,\
 
         <a href=\"http://www.cwi.nl/~merks\">Roeland Merks <i>et al.</i></a>\
 
         <a href=\"http://www.cwi.nl\">Centrum Wiskunde & Informatica (CWI)</a> and\
 
         <a href=\"http://www.ncsb.nl\"> Netherlands Consortium for Systems Biology (NCSB)</a>,\
 
         Amsterdam, the Netherlands.\
 
       </p>\
 
       <p>\
 
         VirtualLeaf 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.\
 
       </p>\
 
       <p>\
 
         If you use this code for your projects, please cite our paper in\
 
         <a href=\"http://www.plantphysiol.org\">Plant Physiology</a>, &lsquo;\
 
         Roeland M. H. Merks, Michael Guravage, Dirk Inz&eacute;, and Gerrit T.S. Beemster,\
 
         <a href=\"http://www.plantphysiol.org/cgi/reprint/155/2/656.pdf\">\
 
         VirtualLeaf: an Open Source framework for cell-based modeling of plant tissue growth and development</a>,<br>\
 
         Plant Physiology 2011: 155:656-666.\
 
       </p>\
 
       <p>\
 
         Please share your model plugins and extensions at\
 
         <a href=\"http://virtualleaf.googlecode.com\">http://virtualleaf.googlecode.com</a>.\
 
       </p>",
 
      QMessageBox::Information, 1, 0, 0, this, 0, FALSE );
 
  about->setButtonText( 1, "Dismiss" );
 
  about->setIconPixmap(QPixmap( leaficon_small ));
 
  about->show();
 
}
 

	
 

	
 
void Main::gpl()
 
{
 
  static QMessageBox* gpl = new QMessageBox ( "GPL License", "", 
 
      QMessageBox::Information, 1, 0, 0, this, 0, FALSE );
 

	
 
  QDir docDir(QApplication::applicationDirPath());
 
  docDir.cd("../doc"); // Where Linux expects gpl3.txt
 
  QString path = docDir.filePath("gpl3.txt");
 
  if (!docDir.exists("gpl3.txt")){
 
    docDir = QApplication::applicationDirPath();
 
    docDir.cd("doc"); // Where Windows expects gpl3.txt
 
    path = docDir.filePath("gpl3.txt");
 
  }
 

	
 
  // At this point path points either to the linux variant, which
 
  // exists, or the windows variant, which may exist. Testing the
 
  // ifstream object will determine whether we've found gpl3.txt.
 

	
 
  std::ifstream file(path.toStdString().c_str());
 
  std::string str;
 

	
 
  if (file) {
 
    file.seekg(0, std::ios::end);   
 
    str.reserve(file.tellg());
 
    file.seekg(0, std::ios::beg);
 

	
 
    str.assign((std::istreambuf_iterator<char>(file)),
 
	       std::istreambuf_iterator<char>());
 

	
 
    gpl->setDetailedText(QString(str.c_str()));
 
  }
 

	
 
  gpl->setText(QString( "<h3>GNU GENERAL PUBLIC LICENSE</h3>"
 
			"<p>Version 3, 29 June 2007</p>"
 
			"<p>Copyright &copy; 2007 Free Software Foundation, Inc. "
 
			"&lt;<a href=\"http://fsf.org/\">http://fsf.org/</a>&gt;</p><p>"
 
			"Everyone is permitted to copy and distribute verbatim copies "
 
			"of this license document, but changing it is not allowed.</p>"
 
			"<h2>GNU GENERAL PUBLIC LICENSE</h2>"));
 

	
 
  gpl->setButtonText( 1, "Dismiss" );
 
  gpl->show();
 
}
 

	
 
void Main::aboutQt(){
 
  QMessageBox::aboutQt( this, "Virtual Leaf" );
 
}
 

	
 
void Main::toggleShowCellCenters()
 
{
 
  Plot();
 
}
 

	
 
void Main::toggleShowWalls()
 
{
 
  Plot();
 
}
0 comments (0 inline, 0 general)