X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ff654490b7cb185631a1dc4621094d88643ccf41..55410bb4f67febe1ca20654f078ea4fb9a6223ae:/src/gtk/filectrl.cpp diff --git a/src/gtk/filectrl.cpp b/src/gtk/filectrl.cpp index d2b6e8c501..8be3759997 100644 --- a/src/gtk/filectrl.cpp +++ b/src/gtk/filectrl.cpp @@ -16,7 +16,7 @@ #include "wx/filectrl.h" -#if !defined(__WXUNIVERSAL__) +#if wxUSE_FILECTRL && !defined(__WXUNIVERSAL__) #ifndef WX_PRECOMP # include "wx/sizer.h" @@ -111,6 +111,8 @@ wxString wxGtkFileChooser::GetFilename() const void wxGtkFileChooser::SetWildcard( const wxString& wildCard ) { + m_wildcards.Empty(); + // parse filters wxArrayString wildDescriptions, wildFilters; @@ -144,10 +146,16 @@ void wxGtkFileChooser::SetWildcard( const wxString& wildCard ) gtk_file_filter_set_name( filter, wxGTK_CONV_SYS( wildDescriptions[n] ) ); wxStringTokenizer exttok( wildFilters[n], wxT( ";" ) ); + + int n1 = 1; while ( exttok.HasMoreTokens() ) { wxString token = exttok.GetNextToken(); gtk_file_filter_add_pattern( filter, wxGTK_CONV_SYS( token ) ); + + if (n1 == 1) + m_wildcards.Add( token ); // Only add first pattern to list, used later when saving + n1++; } gtk_file_chooser_add_filter( chooser, filter ); @@ -258,7 +266,6 @@ IMPLEMENT_DYNAMIC_CLASS( wxGtkFileCtrl, wxControl ) void wxGtkFileCtrl::Init() { - m_hasFocus = false; m_checkNextSelEvent = false; // ignore the first folder change event which is fired upon startup. @@ -288,6 +295,7 @@ bool wxGtkFileCtrl::Create( wxWindow *parent, gtkAction = GTK_FILE_CHOOSER_ACTION_SAVE; m_widget = gtk_alignment_new ( 0, 0, 1, 1 ); + g_object_ref(m_widget); m_fcWidget = GTK_FILE_CHOOSER( gtk_file_chooser_widget_new(gtkAction) ); gtk_widget_show ( GTK_WIDGET( m_fcWidget ) ); gtk_container_add ( GTK_CONTAINER ( m_widget ), GTK_WIDGET( m_fcWidget ) ); @@ -423,4 +431,4 @@ void wxGtkFileCtrl::ShowHidden(bool show) #endif // wxUSE_FILECTRL -#endif // !defined(__WXUNIVERSAL__) +#endif // wxUSE_FILECTRL && !defined(__WXUNIVERSAL__)