- m_printDialogData.GetPrintData().SetPrintMode(wxPRINT_MODE_FILE);
- wxThePrintSetupData->SetPrinterMode(wxPRINT_MODE_FILE);
-
- wxString f = wxFileSelector(_("PostScript file"),
- wxPathOnly(wxThePrintSetupData->GetPrinterFile()),
- wxFileNameFromPath(wxThePrintSetupData->GetPrinterFile()),
- wxT("ps"), wxT("*.ps"), 0, this);
- if ( f.IsEmpty() )
- return;
-
- m_printDialogData.GetPrintData().SetFilename(f);
- wxThePrintSetupData->SetPrinterFile(f);
+ data->SetPrintMode(wxPRINT_MODE_FILE);
+
+ wxFileName fname( m_printDialogData.GetPrintData().GetFilename() );
+
+ wxFileDialog dialog( this, _("PostScript file"),
+ fname.GetPath(), fname.GetFullName(), wxT("*.ps"), wxOPEN | wxOVERWRITE_PROMPT );
+ if (dialog.ShowModal() != wxID_OK) return;
+
+ m_printDialogData.GetPrintData().SetFilename( dialog.GetPath() );