X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/254a21292b0ccf234ed1dbc6acd37708672ffcc0..7b25d8e7bd0eca9f0f6efe62b3721d14c394dac9:/src/generic/filedlgg.cpp diff --git a/src/generic/filedlgg.cpp b/src/generic/filedlgg.cpp index 4380c60f36..a39f76d034 100644 --- a/src/generic/filedlgg.cpp +++ b/src/generic/filedlgg.cpp @@ -903,13 +903,6 @@ wxGenericFileDialog::wxGenericFileDialog(wxWindow *parent, m_path += defaultFile; m_filterExtension = wxEmptyString; - // interpret wildcards - wxArrayString wildDescriptions, wildFilters; - if ( !wxParseCommonDialogsFilter(m_wildCard, wildDescriptions, wildFilters) ) - { - wxFAIL_MSG( wxT("Wrong file type description") ); - } - // layout bool is_pda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA); @@ -978,7 +971,7 @@ wxGenericFileDialog::wxGenericFileDialog(wxWindow *parent, style2 |= wxLC_SINGLE_SEL; m_list = new wxFileCtrl( this, ID_LIST_CTRL, - wildFilters[0], ms_lastShowHidden, + _T(""), ms_lastShowHidden, wxDefaultPosition, wxSize(540,200), style2); @@ -1021,11 +1014,7 @@ wxGenericFileDialog::wxGenericFileDialog(wxWindow *parent, mainsizer->Add( choicesizer, 0, wxEXPAND ); } - for (size_t n=0; nAppend( wildDescriptions[n], (void*) new wxString( wildFilters[n] ) ); - } - SetFilterIndex( 0 ); + SetWildcard(wildCard); SetAutoLayout( true ); SetSizer( mainsizer ); @@ -1093,6 +1082,25 @@ void wxGenericFileDialog::DoSetFilterIndex(int filterindex) } } +void wxGenericFileDialog::SetWildcard(const wxString& wildCard) +{ + wxFileDialogBase::SetWildcard(wildCard); + + wxArrayString wildDescriptions, wildFilters; + const size_t count = wxParseCommonDialogsFilter(m_wildCard, + wildDescriptions, + wildFilters); + wxCHECK_RET( count, wxT("wxFileDialog: bad wildcard string") ); + + m_choice->Clear(); + for ( size_t n = 0; n < count; n++ ) + { + m_choice->Append( wildDescriptions[n], new wxString( wildFilters[n] ) ); + } + + SetFilterIndex( 0 ); +} + void wxGenericFileDialog::SetFilterIndex( int filterindex ) { m_choice->SetSelection( filterindex );