]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix wxGTK's wxFileDialog:Get/SetFilename() to be in sync.
authorVáclav Slavík <vslavik@fastmail.fm>
Tue, 13 Nov 2012 12:36:32 +0000 (12:36 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Tue, 13 Nov 2012 12:36:32 +0000 (12:36 +0000)
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

src/gtk/filedlg.cpp

index c86a7e37e21e4ae1858ee5e5108e3d1408a5cff5..28f087c24626f1d3a39fc894d5fa63ace9cd12ce 100644 (file)
@@ -385,6 +385,8 @@ void wxFileDialog::SetMessage(const wxString& message)
 
 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.
@@ -401,12 +403,9 @@ void wxFileDialog::SetPath(const wxString& path)
 
 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
@@ -423,10 +422,11 @@ wxString wxFileDialog::GetDirectory() const
 
 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));
-        m_fileName = name;
     }
 
     else
@@ -438,7 +438,6 @@ void wxFileDialog::SetFilename(const wxString& name)
             return;
         }
         SetPath(wxFileName(path, name).GetFullPath());
-        m_fileName = name;
     }
 }