- wxFileDialog* const dialog = new wxFileDialog
- (
- GetDialogParent(),
- m_message,
- wxEmptyString,
- wxEmptyString,
- m_wildcard,
- GetDialogStyle()
- );
-
- // this sets both the default folder and the default file of the dialog
- dialog->SetPath(m_path);
-
- // If there is no default file or if it doesn't have any path, use the
- // explicitly set initial directory.
- if ( !m_initialDir.empty() )
- DoSetInitialDirectory(dialog, m_initialDir);
-
- return dialog;
+ // Determine the initial directory for the dialog: it comes either from the
+ // default path, if it has it, or from the separately specified initial
+ // directory that can be set even if the path is e.g. empty.
+ wxFileName fn(m_path);
+ wxString initialDir = fn.GetPath();
+ if ( initialDir.empty() )
+ initialDir = m_initialDir;
+
+ return new wxFileDialog
+ (
+ GetDialogParent(),
+ m_message,
+ initialDir,
+ fn.GetFullName(),
+ m_wildcard,
+ GetDialogStyle()
+ );