From: Vadim Zeitlin <vadim@wxwidgets.org> Date: Fri, 15 Oct 2004 22:55:13 +0000 (+0000) Subject: implemented SetWildcard() X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b4cfe261db9bec8cdfb2664ed3f50e3e8350bbde implemented SetWildcard() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 48b6cb15d3..62a64151e4 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -214,6 +214,11 @@ Unix: - wxPuts() now correctly outputs trailing new line in Unicode build +wxGTK: + +- fixed wxFileDialog::SetWildcard() + + 2.5.3 ----- diff --git a/include/wx/generic/filedlgg.h b/include/wx/generic/filedlgg.h index e94d7d5468..23203759db 100644 --- a/include/wx/generic/filedlgg.h +++ b/include/wx/generic/filedlgg.h @@ -59,6 +59,7 @@ public: virtual void SetMessage(const wxString& message) { SetTitle(message); } virtual void SetPath(const wxString& path); virtual void SetFilterIndex(int filterIndex); + virtual void SetWildcard(const wxString& wildCard); // for multiple file selection virtual void GetPaths(wxArrayString& paths) const; 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; n<wildFilters.GetCount(); n++) - { - m_choice->Append( 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 );