The m_fileName and m_dir variables, managed by the base class, were out
of sync when the dialog wasn't shown yet, because the wxGTK
implementation didn't always set them. GetFilename() following
SetFilename(x) could return something other than x. Fixed by calling the
base class version.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72948
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
void wxFileDialog::SetPath(const wxString& path)
{
void wxFileDialog::SetPath(const wxString& path)
{
+ wxFileDialogBase::SetPath(path);
+
// Don't do anything if no path is specified, in particular don't set the
// path to m_dir below as this would result in opening the dialog in the
// parent directory of this one instead of m_dir itself.
// Don't do anything if no path is specified, in particular don't set the
// path to m_dir below as this would result in opening the dialog in the
// parent directory of this one instead of m_dir itself.
void wxFileDialog::SetDirectory(const wxString& dir)
{
void wxFileDialog::SetDirectory(const wxString& dir)
{
- if (m_fc.SetDirectory( dir ))
- {
- // Cache the dir, as gtk_file_chooser_get_current_folder()
- // doesn't return anything until the dialog has been shown
- m_dir = dir;
- }
+ wxFileDialogBase::SetDirectory(dir);
+
+ m_fc.SetDirectory(dir);
}
wxString wxFileDialog::GetDirectory() const
}
wxString wxFileDialog::GetDirectory() const
void wxFileDialog::SetFilename(const wxString& name)
{
void wxFileDialog::SetFilename(const wxString& name)
{
+ wxFileDialogBase::SetFilename(name);
+
if (HasFdFlag(wxFD_SAVE))
{
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(m_widget), wxGTK_CONV(name));
if (HasFdFlag(wxFD_SAVE))
{
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(m_widget), wxGTK_CONV(name));
return;
}
SetPath(wxFileName(path, name).GetFullPath());
return;
}
SetPath(wxFileName(path, name).GetFullPath());