- else
- defaultFilenameString = "";
-
- wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y));
- if(defaultExtension)
- {
- unsigned int ii;
- int filterFind,filterIndex=0;
- filterFind=1;
- for(ii=0;ii<filter2.Length();ii++)
- {
- if(filter2[ii] == '|')
- {
- unsigned int is=ii++;
- filterIndex++;
- for(;ii<filter2.Length();ii++)
- if(filter2[ii] == '|')
- break;
- if(ii-is-1 > 0 && is+1 < filter2.Length())
- if(filter2.Mid(is+1,ii-is-1) == defaultExtension)
- {
- filterFind=filterIndex;
- break;
- }
- }
- }
- fileDialog.SetFilterIndex(filterFind);
- }
-
+
+ wxFileDialog fileDialog(parent, title, defaultDirString,
+ defaultFilenameString, filter2,
+ flags, wxPoint(x, y));
+ if( wxStrlen(defaultExtension) != 0 )
+ {
+ int filterFind = 1,
+ filterIndex = 0;
+
+ for( unsigned int i = 0; i < filter2.Len(); i++ )
+ {
+ if( filter2.GetChar(i) == wxT('|') )
+ {
+ // save the start index of the new filter
+ unsigned int is = i++;
+ filterIndex++;
+
+ // find the end of the filter
+ for( ; i < filter2.Len(); i++ )
+ {
+ if(filter2[i] == wxT('|'))
+ break;
+ }
+
+ if( i-is-1 > 0 && is+1 < filter2.Len() )
+ {
+ if( filter2.Mid(is+1,i-is-1).Contains(defaultExtension) )
+// if( filter2.Mid(is+1,i-is-1) == defaultExtension )
+ {
+ filterFind = filterIndex;
+ break;
+ }
+ }
+ }
+ }
+
+ fileDialog.SetFilterIndex(filterFind);
+ }
+