- // set currently selected directory to match the path:
- if (!m_dir.empty() && wxDirExists(m_dir))
- {
- // NB: This is important -- if we set directory only and not the path,
- // then dialog will still remember old path set using previous
- // call to gtk_chooser_set_filename. If the previous directory
- // was a subdirectory of the directory we want to select now,
- // the dialog would still contain directory selector controls
- // for the subdirectory (with the parent directory selected),
- // instead of showing only the parent directory as expected.
- // This way, we force GtkFileChooser to really change the
- // directory. Finally, it doesn't have to be done if filename
- // is not empty because of the code that sets the filename below.
- if (m_fileName.empty())
- gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(m_widget),
- wxGTK_CONV(m_dir));
-
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(m_widget),
- wxGTK_CONV(m_dir));
- }
-
- // if the user set only the directory (e.g. by calling SetDirectory)
- // and not the default filename, then we don't want to set the filename:
- if (!m_fileName.empty())
- {
- gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(m_widget),
- wxGTK_CONV(m_path));
-
- // pre-fill the filename when saving, too (there's no text entry
- // control when opening a file, so it doesn't make sense to
- // do this when opening files):
- if (GetWindowStyle() & wxSAVE)
- {
- gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(m_widget),
- wxGTK_CONV(m_fileName));
- }
- }