Fixed problem trying to print from a preview, whereby wrong printer
class was used instead of Gnome printer class. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -52,6 +52,8 @@ wxGTK:
|
||||
|
||||
- Fixed problem with choice editor in wxGrid whereby the editor
|
||||
lost focus when the combobox menu was shown.
|
||||
- Fixed problem trying to print from a preview, whereby wrong printer
|
||||
class was used.
|
||||
|
||||
wxMac:
|
||||
|
||||
|
@@ -1973,9 +1973,9 @@ void wxPostScriptDC::DoGetTextExtent(const wxString& string,
|
||||
// it just crashes
|
||||
#ifndef __WIN32__
|
||||
wxPostScriptPrintNativeData *data =
|
||||
(wxPostScriptPrintNativeData *) m_printData.GetNativeData();
|
||||
wxDynamicCast(m_printData.GetNativeData(), wxPostScriptPrintNativeData);
|
||||
|
||||
if (!data->GetFontMetricPath().empty())
|
||||
if (data && !data->GetFontMetricPath().empty())
|
||||
{
|
||||
afmName = data->GetFontMetricPath();
|
||||
afmName << wxFILE_SEP_PATH << name;
|
||||
|
@@ -148,12 +148,12 @@ bool wxPostScriptPrinter::Print(wxWindow *parent, wxPrintout *printout, bool pro
|
||||
// set by the user
|
||||
m_printDialogData.SetMinPage(minPage);
|
||||
m_printDialogData.SetMaxPage(maxPage);
|
||||
|
||||
|
||||
if (m_printDialogData.GetFromPage() < minPage)
|
||||
m_printDialogData.SetFromPage( minPage );
|
||||
if (m_printDialogData.GetToPage() > maxPage)
|
||||
m_printDialogData.SetToPage( maxPage );
|
||||
|
||||
|
||||
int
|
||||
pagesPerCopy = m_printDialogData.GetToPage()-m_printDialogData.GetFromPage()+1,
|
||||
totalPages = pagesPerCopy * m_printDialogData.GetNoCopies(),
|
||||
@@ -233,13 +233,13 @@ bool wxPostScriptPrinter::Print(wxWindow *parent, wxPrintout *printout, bool pro
|
||||
wxDC* wxPostScriptPrinter::PrintDialog(wxWindow *parent)
|
||||
{
|
||||
wxDC* dc = (wxDC*) NULL;
|
||||
|
||||
|
||||
wxGenericPrintDialog dialog( parent, &m_printDialogData );
|
||||
if (dialog.ShowModal() == wxID_OK)
|
||||
{
|
||||
dc = dialog.GetPrintDC();
|
||||
m_printDialogData = dialog.GetPrintDialogData();
|
||||
|
||||
|
||||
if (dc == NULL)
|
||||
sm_lastError = wxPRINTER_ERROR;
|
||||
else
|
||||
@@ -265,7 +265,7 @@ bool wxPostScriptPrinter::Setup(wxWindow *WXUNUSED(parent))
|
||||
}
|
||||
|
||||
dialog->Destroy();
|
||||
|
||||
|
||||
return (ret == wxID_OK);
|
||||
#endif
|
||||
|
||||
@@ -307,7 +307,16 @@ bool wxPostScriptPrintPreview::Print(bool interactive)
|
||||
{
|
||||
if (!m_printPrintout)
|
||||
return false;
|
||||
|
||||
// Assume that on Unix, the preview may use the PostScript
|
||||
// (generic) version, but printing using the native system is required.
|
||||
// TODO: make a generic print preview class from which wxPostScriptPrintPreview
|
||||
// is derived.
|
||||
#ifdef __UNIX__
|
||||
wxPrinter printer(& m_printDialogData);
|
||||
#else
|
||||
wxPostScriptPrinter printer(& m_printDialogData);
|
||||
#endif
|
||||
return printer.Print(m_previewFrame, m_printPrintout, interactive);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user