From: Robin Dunn Date: Tue, 8 Jun 2004 00:04:54 +0000 (+0000) Subject: Make the copy ctor for the wxPrint*Data classes avaialble from X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/356f3c650c69999793635e296f1332cefdcc60ab Make the copy ctor for the wxPrint*Data classes avaialble from Python. This is so we can ensure we get a copy of the data objects when needed instead of just a reference to a data object within another that may get deleted unexpectedly. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/demo/PrintFramework.py b/wxPython/demo/PrintFramework.py index 0bf389a6ae..5db34aaa3e 100644 --- a/wxPython/demo/PrintFramework.py +++ b/wxPython/demo/PrintFramework.py @@ -130,7 +130,12 @@ class TestPrintPanel(wx.Panel): printerDialog = wx.PrintDialog(self, data) printerDialog.GetPrintDialogData().SetSetupDialog(True) printerDialog.ShowModal(); - self.printData = printerDialog.GetPrintDialogData().GetPrintData() + + # this makes a copy of the wx.PrintData instead of just saving + # a reference to the one inside the printDialogData that will + # be destroyed + self.printData = wx.PrintData( printerDialog.GetPrintDialogData().GetPrintData() ) + printerDialog.Destroy() @@ -163,7 +168,7 @@ class TestPrintPanel(wx.Panel): if not printer.Print(self.frame, printout, True): wx.MessageBox("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", wx.OK) else: - self.printData = printer.GetPrintDialogData().GetPrintData() + self.printData = wx.PrintData( printer.GetPrintDialogData().GetPrintData() ) printout.Destroy() diff --git a/wxPython/src/_printfw.i b/wxPython/src/_printfw.i index 78bb05e19d..afe09dbd29 100644 --- a/wxPython/src/_printfw.i +++ b/wxPython/src/_printfw.i @@ -40,7 +40,10 @@ enum wxPrintMode class wxPrintData : public wxObject { public: + %nokwargs wxPrintData; wxPrintData(); + wxPrintData(const wxPrintData& data); // for making copies + ~wxPrintData(); int GetNoCopies(); @@ -103,7 +106,9 @@ public: class wxPageSetupDialogData : public wxObject { public: + %nokwargs wxPageSetupDialogData; wxPageSetupDialogData(); + wxPageSetupDialogData(const wxPageSetupDialogData& data); // for making copies ~wxPageSetupDialogData(); void EnableHelp(bool flag); @@ -168,7 +173,7 @@ class wxPrintDialogData : public wxObject { public: %nokwargs wxPrintDialogData; wxPrintDialogData(); - wxPrintDialogData(const wxPrintData& printData); + wxPrintDialogData(const wxPrintData& printData); // for making copies ~wxPrintDialogData(); int GetFromPage() const;