]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/filedlg.cpp
Make use of new array functions.
[wxWidgets.git] / src / mac / filedlg.cpp
index 15771305be82e2dcddc19bca92cc655765951512..cef71e0136877a01afbaf557c339758558c5a22f 100644 (file)
@@ -144,12 +144,16 @@ void MakeUserDataRec(OpenUserDataRec      *myData , const wxString& filter )
         current += filter2.GetChar(i) ;
        }
     }
-//    if ( filterIndex > 0 )
-    {
-      wxASSERT_MSG( !isName , "incorrect format of format string" ) ;
-      myData->extensions[filterIndex] = current.MakeUpper() ;
-      ++filterIndex ;
-    }
+    // we allow for compatibility reason to have a single filter expression (like *.*) without
+    // an explanatory text, in that case the first part is name and extension at the same time
+      
+    wxASSERT_MSG( filterIndex == 0 || !isName , "incorrect format of format string" ) ;
+    if ( current.IsEmpty() )
+        myData->extensions[filterIndex] = myData->name[filterIndex] ;
+    else
+        myData->extensions[filterIndex] = current.MakeUpper() ;
+    ++filterIndex ;
+
 
                myData->numfilters = filterIndex ;
                for ( int i = 0 ; i < myData->numfilters ; i++ )
@@ -491,38 +495,17 @@ int wxFileDialog::ShowModal()
                                if (specDesc.dataHandle != nil) {
                                        ::AEDisposeDesc(&specDesc);
                                }
-#ifdef __DARWIN__
-        FSRef fsr ;
-        err = FSpMakeFSRef( &outFileSpec , &fsr ) ;
-        if ( err == fnfErr )
-        {
-          FSSpec fss ;
-          err = FSMakeFSSpec( outFileSpec.vRefNum , outFileSpec.parID, "\p" , &fss ) ;
-          err = FSpMakeFSRef( &fss , &fsr ) ;
-          char path[256] ;
-          err = FSRefMakePath( &fsr , (unsigned char*) path , sizeof(path) ) ;
-          strcat( path , "/" ) ;
-          p2cstr( outFileSpec.name ) ;
-          strcat( path , (char*) outFileSpec.name ) ;
-          m_path = path ;
-        }
-        else
-        {
-                                 m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ;
-        }
-#else
                                m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ;
-#endif
                                m_paths.Add( m_path ) ;
-        m_fileName = wxFileNameFromPath(m_path);
-             m_fileNames.Add(m_fileName);
-           }
-       // set these to the first hit
-       m_path = m_paths[ 0 ] ;
-       m_fileName = wxFileNameFromPath(m_path);
-       m_dir = wxPathOnly(m_path);
-       NavDisposeReply( &mNavReply ) ;
-                       return wxID_OK ;
+                m_fileName = wxFileNameFromPath(m_path);
+                   m_fileNames.Add(m_fileName);
+               }
+            // set these to the first hit
+            m_path = m_paths[ 0 ] ;
+            m_fileName = wxFileNameFromPath(m_path);
+            m_dir = wxPathOnly(m_path);
+            NavDisposeReply( &mNavReply ) ;
+           return wxID_OK ;
                }
                return wxID_CANCEL;
 }