wxFileDialog::GetPath() didn't return the value set by a previous call to
SetPath() in wxMSW version. Fix this and also implement SetPath() and
SetDirectory() methods in the generic versions in the same way as
SetFilename().
Closes #3672.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62722
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
bool HasFdFlag(int flag) const { return HasFlag(flag); }
virtual void SetMessage(const wxString& message) { m_message = message; }
- virtual void SetPath(const wxString& path) { m_path = path; }
- virtual void SetDirectory(const wxString& dir) { m_dir = dir; }
- virtual void SetFilename(const wxString& name) { m_fileName = name; }
+ virtual void SetPath(const wxString& path);
+ virtual void SetDirectory(const wxString& dir);
+ virtual void SetFilename(const wxString& name);
virtual void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
virtual void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
virtual ~wxGenericFileDialog();
+ virtual void SetDirectory(const wxString& dir)
+ { m_filectrl->SetDirectory(dir); }
+ virtual void SetFilename(const wxString& name)
+ { m_filectrl->SetFilename(name); }
virtual void SetMessage(const wxString& message) { SetTitle(message); }
virtual void SetPath(const wxString& path)
{ m_filectrl->SetPath(path); }
const wxSize& sz = wxDefaultSize,
const wxString& name = wxFileDialogNameStr);
- virtual void SetPath(const wxString& path);
virtual void GetPaths(wxArrayString& paths) const;
virtual void GetFilenames(wxArrayString& files) const;
#ifndef __WXWINCE__
#include "wx/filedlg.h"
#include "wx/dirdlg.h"
+#include "wx/filename.h"
#ifndef WX_PRECOMP
#include "wx/string.h"
return (*m_extraControlCreator)(&dlg)->GetSize();
}
+void wxFileDialogBase::SetPath(const wxString& path)
+{
+ wxString ext;
+ wxFileName::SplitPath(path, &m_dir, &m_fileName, &ext);
+ if ( !ext.empty() )
+ m_fileName << _T('.') << ext;
+ m_path = path;
+}
+
+void wxFileDialogBase::SetDirectory(const wxString& dir)
+{
+ m_dir = dir;
+ m_path = wxFileName(m_dir, m_fileName).GetFullPath();
+}
+
+void wxFileDialogBase::SetFilename(const wxString& name)
+{
+ m_fileName = name;
+ m_path = wxFileName(m_dir, m_fileName).GetFullPath();
+}
+
//----------------------------------------------------------------------------
// wxFileDialog convenience functions
//----------------------------------------------------------------------------
files = m_fileNames;
}
-void wxFileDialog::SetPath(const wxString& path)
-{
- wxString ext;
- wxFileName::SplitPath(path, &m_dir, &m_fileName, &ext);
- if ( !ext.empty() )
- m_fileName << wxT('.') << ext;
-}
-
void wxFileDialog::DoGetPosition(int *x, int *y) const
{
if ( x )