844eb6f
diff -r 7510fdcc8b8a -r 185ccbce5421 src/3Depict.cpp
844eb6f
--- src/3Depict.cpp	Mon Aug 25 14:41:48 2014 +0100
844eb6f
+++ src/3Depict.cpp	Mon Aug 25 14:42:29 2014 +0100
844eb6f
@@ -39,6 +39,12 @@
844eb6f
 
844eb6f
 class threeDepictApp: public wxApp {
844eb6f
 private:
844eb6f
+#ifndef DEBUG
844eb6f
+	//instance of this class suppresses internal wx error dialogs.
844eb6f
+	// these are a nuisance in release code, as recovered errors often annoy the user
844eb6f
+	wxLogNull nullifyLogs;
844eb6f
+#endif
844eb6f
+
844eb6f
 	MainWindowFrame* MainFrame ;
844eb6f
 	wxArrayString commandLineFiles;
844eb6f
 	wxLocale* usrLocale;
844eb6f
@@ -62,9 +68,6 @@
844eb6f
     void MacReopenFile(const wxString & fileName);
844eb6f
 #endif
844eb6f
 
844eb6f
-#ifdef DEBUG
844eb6f
-    void setEventloggerFile(const char *file);
844eb6f
-#endif
844eb6f
 };
844eb6f
 
844eb6f
 //Check version is in place because wxT is deprecated for wx 2.9
844eb6f
diff -r 185ccbce5421 -r c8ff86119e58 src/backend/filters/clusterAnalysis.cpp
844eb6f
--- src/backend/filters/clusterAnalysis.cpp	Mon Aug 25 14:42:29 2014 +0100
844eb6f
+++ src/backend/filters/clusterAnalysis.cpp	Mon Aug 25 14:43:10 2014 +0100
844eb6f
@@ -264,7 +264,7 @@
844eb6f
 
844eb6f
 ClusterAnalysisFilter::ClusterAnalysisFilter() : algorithm(CLUSTER_LINK_ERODE),
844eb6f
 	enableCoreClassify(false), coreDist(0.0f), coreKNN(1), linkDist(0.5f), 
844eb6f
-	enableBulkLink(false), bulkLink(1), enableErosion(false), dErosion(0.25),
844eb6f
+	enableBulkLink(false), bulkLink(0.25), enableErosion(false), dErosion(0.25),
844eb6f
 	wantClusterID(false), wantCropSize(false), nMin(0),nMax(std::numeric_limits<size_t>::max()),
844eb6f
 	wantClusterSizeDist(false),logClusterSize(false),
844eb6f
 	wantClusterComposition(true),normaliseComposition(true),
844eb6f
diff -r c8ff86119e58 -r 55ec5e056846 src/gui/mainFrame.cpp
844eb6f
--- src/gui/mainFrame.cpp	Mon Aug 25 14:43:10 2014 +0100
844eb6f
+++ src/gui/mainFrame.cpp	Mon Aug 25 14:51:53 2014 +0100
844eb6f
@@ -464,7 +464,7 @@
844eb6f
     fileExport->Append(ID_FILE_EXPORT_IMAGE, TRANS("&Image...\tCtrl+I"), TRANS("Export Current 3D View"), wxITEM_NORMAL);
844eb6f
     fileExport->Append(ID_FILE_EXPORT_IONS, TRANS("Ion&s...\tCtrl+N"), TRANS("Export Ion Data"), wxITEM_NORMAL);
844eb6f
     fileExport->Append(ID_FILE_EXPORT_RANGE, TRANS("Ran&ges...\tCtrl+G"), TRANS("Export Range Data"), wxITEM_NORMAL);
844eb6f
-    fileExport->Append(ID_FILE_EXPORT_FILTER_ANIMATION, TRANS("&Animate Filters...\tCtrl+A"), TRANS("Export Animated Filter"), wxITEM_NORMAL);
844eb6f
+    fileExport->Append(ID_FILE_EXPORT_FILTER_ANIMATION, TRANS("&Animate Filters...\tCtrl+T"), TRANS("Export Animated Filter"), wxITEM_NORMAL);
844eb6f
     fileExport->Append(ID_FILE_EXPORT_ANIMATION, TRANS("Ani&mate Camera...\tCtrl+M"), TRANS("Export Animated Camera"), wxITEM_NORMAL);
844eb6f
     fileExport->Append(ID_FILE_EXPORT_PACKAGE, TRANS("Pac&kage...\tCtrl+K"), TRANS("Export analysis package"), wxITEM_NORMAL);
844eb6f
 
844eb6f
diff -r 9d545342c3ad -r 3c853d1f5af7 src/backend/filters/externalProgram.cpp
844eb6f
--- src/backend/filters/externalProgram.cpp	Mon Aug 25 14:52:42 2014 +0100
844eb6f
+++ src/backend/filters/externalProgram.cpp	Mon Aug 25 14:53:04 2014 +0100
844eb6f
@@ -551,7 +551,7 @@
844eb6f
 	
844eb6f
 	p.name=TRANS("Work Dir");
844eb6f
 	p.data= workingDir;
844eb6f
-	p.type=PROPERTY_TYPE_STRING;
844eb6f
+	p.type=PROPERTY_TYPE_DIR;
844eb6f
 	p.helpText=TRANS("Directory to run the command in");
844eb6f
 	p.key=EXTERNALPROGRAM_KEY_WORKDIR;		
844eb6f
 	propertyList.addProperty(p,curGroup);
844eb6f
diff -r 9d545342c3ad -r 3c853d1f5af7 src/common/constants.h
844eb6f
--- src/common/constants.h	Mon Aug 25 14:52:42 2014 +0100
844eb6f
+++ src/common/constants.h	Mon Aug 25 14:53:04 2014 +0100
844eb6f
@@ -57,6 +57,7 @@
844eb6f
 	PROPERTY_TYPE_POINT3D,
844eb6f
 	PROPERTY_TYPE_CHOICE,
844eb6f
 	PROPERTY_TYPE_FILE,
844eb6f
+	PROPERTY_TYPE_DIR,
844eb6f
 	PROPERTY_TYPE_ENUM_END //Not a prop, just end of enum
844eb6f
 };
844eb6f
 
844eb6f
diff -r 9d545342c3ad -r 3c853d1f5af7 src/wx/propertyGridUpdater.cpp
844eb6f
--- src/wx/propertyGridUpdater.cpp	Mon Aug 25 14:52:42 2014 +0100
844eb6f
+++ src/wx/propertyGridUpdater.cpp	Mon Aug 25 14:53:04 2014 +0100
844eb6f
@@ -61,7 +61,7 @@
844eb6f
 		g->Append(new wxPropertyCategory(string("") + title,title));
844eb6f
 		
844eb6f
 		
844eb6f
-		//Set the children of thies property
844eb6f
+		//Set the children of this property
844eb6f
 		for(size_t uj=0;uj
844eb6f
 		{
844eb6f
 			FilterProperty fp;
844eb6f
@@ -83,6 +83,7 @@
844eb6f
 							boolVal);
844eb6f
 					break;
844eb6f
 				};
844eb6f
+				//TODO: we need a PROPERTY_TYPE_UINT
844eb6f
 				case PROPERTY_TYPE_INTEGER:
844eb6f
 				{
844eb6f
 					long long iV;
844eb6f
@@ -145,16 +146,24 @@
844eb6f
 					
844eb6f
 					break;
844eb6f
 				}
844eb6f
+				case PROPERTY_TYPE_DIR:
844eb6f
+				{
844eb6f
+					pgp = new wxDirProperty(fp.name,keyStr,fp.data);
844eb6f
+					break;
844eb6f
+				}
844eb6f
 			}
844eb6f
 
844eb6f
+			//Set the tooltip
844eb6f
 			pgp->SetHelpString(fp.helpText);
844eb6f
 
844eb6f
+			//add the property to the grid
844eb6f
 			g->Append(pgp);
844eb6f
 
844eb6f
 			switch(fp.type)
844eb6f
 			{
844eb6f
 				case PROPERTY_TYPE_BOOL:
844eb6f
 				{
844eb6f
+					//if a bool property, use a checkbox to edit
844eb6f
 					g->SetPropertyEditor(pgp,wxPGEditor_CheckBox);
844eb6f
 					break;
844eb6f
 				}
844eb6f
diff -r 7372047ee6f9 src/common/basics.cpp
844eb6f
--- src/common/basics.cpp	Sun Aug 03 16:58:06 2014 -0400
844eb6f
+++ src/common/basics.cpp	Sun Aug 03 17:01:04 2014 -0400
844eb6f
@@ -1471,6 +1471,21 @@
844eb6f
 	return 0;
844eb6f
 }
844eb6f
 
844eb6f
+bool isNotDirectory(const char *filename)
844eb6f
+{
844eb6f
+	struct stat statbuf;
844eb6f
+
844eb6f
+	if(stat(filename,&statbuf) == -1)
844eb6f
+		return false;
844eb6f
+
844eb6f
+	return (statbuf.st_mode !=S_IFDIR);
844eb6f
+}
844eb6f
+
844eb6f
+bool rmFile(const std::string &filename)
844eb6f
+{
844eb6f
+	return remove(filename.c_str()) == 0;
844eb6f
+}
844eb6f
+
844eb6f
 #ifdef DEBUG
844eb6f
 bool isValidXML(const char *filename)
844eb6f
 {
844eb6f
@@ -1503,27 +1518,6 @@
844eb6f
 	return true;
844eb6f
 }
844eb6f
 
844eb6f
-#if !defined(__WIN32__) && !defined(__WIN64)
844eb6f
 	
844eb6f
-bool isNotDirectory(const char *filename)
844eb6f
-{
844eb6f
-	struct stat statbuf;
844eb6f
-
844eb6f
-	if(stat(filename,&statbuf) == -1)
844eb6f
-		return false;
844eb6f
-
844eb6f
-	return (statbuf.st_mode !=S_IFDIR);
844eb6f
-}
844eb6f
-
844eb6f
-bool rmFile(const std::string &filename)
844eb6f
-{
844eb6f
-	return remove(filename.c_str()) == 0;
844eb6f
-}
844eb6f
-#elif defined(__WIN32) || defined(__WIN64)
844eb6f
-bool rmFile(const std::string &filename)
844eb6f
-{ 
844eb6f
-	return DeleteFile((const wchar_t*)filename.c_str()) == 0;
844eb6f
-}
844eb6f
-#endif
844eb6f
 
844eb6f
 #endif