X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9854b6eddf82c31af6753452bb3c2d0b7cb7d2a8..de56032161f8780e776dd68e5371022f68f3f703:/src/mac/filedlg.cpp diff --git a/src/mac/filedlg.cpp b/src/mac/filedlg.cpp index 15771305be..cef71e0136 100644 --- a/src/mac/filedlg.cpp +++ b/src/mac/filedlg.cpp @@ -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; }