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