ChangeLog 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. 2007-03-13 Andreia Gaita <[email protected]>
  2. * PrintingServices.cs: Add missing static method SysPrn.GetPrintDialogInfo
  3. for SWF to call up printing dialogues.
  4. 2007-02-21 Andreia Gaita <[email protected]>
  5. * PrintingServicesUnix.cs: Report an error in the console if there is
  6. a problem opening the printer.
  7. 2007-02-21 Andreia Gaita <[email protected]>
  8. * PrintingServicesUnix.cs: don't free up pointers unnecessarily (doh)
  9. 2007-02-21 Andreia Gaita <[email protected]>
  10. * PrintingServicesUnix.cs: add checks and try blocks to make sure
  11. things don't blow up if we try to double free anything (not that
  12. we're trying to do anything like that :p )
  13. 2007-02-21 Andreia Gaita <[email protected]>
  14. * PrintingServicesUnix.cs: fix a double-free bug
  15. 2007-02-20 Andreia Gaita <[email protected]>
  16. * PrintingServicesUnix.cs: Fix leak caused by not calling cupsFreeDests
  17. on certain codepaths. Fix return value of cupsFreeDests to void.
  18. 2007-02-20 Andreia Gaita <[email protected]>
  19. * PrintingServicesUnix.cs: Correct missing static initialization
  20. of loaded printers hashtable, unit tests were failing (oops :p)
  21. 2007-02-17 Marek (please complete)
  22. * PrintPreviewController, InvalidPrinterException:
  23. Remove warnings
  24. 2007-02-16 Andreia Gaita <[email protected]>
  25. Redesign how and when cups gets called to minimize
  26. p/invokes, implements caching of printers and printer
  27. settings as per calberto's patch - #79822, plotter detection,
  28. duplex, fixes for image disposing, code modularization,
  29. misc. fixes.
  30. * PageSettings.cs: Check and ignore null setter values on
  31. paper sizes, sources and resolutions.
  32. * PaperSize.cs: Add default paper size flag
  33. * PaperSource.cs: Add default paper source flag, minor code
  34. beautification
  35. * PrinterSettings.cs: Add duplex and plotter implementation,
  36. modify calls to PrintingServices to support caching, add
  37. a printer capabilities list to store specific printer options -
  38. only loaded with cups, for now. Move the internal list classes
  39. to the end of the code so as not to clutter.
  40. * PrintingServices.cs: Separate the PrintingServices class in 2 -
  41. PrintingServices and GlobalPrintingServices (see calberto's patch
  42. in #79822). The PrintingServices class is where all the methods
  43. caching information reside, the GlobalPrintingServices methods do
  44. no caching.
  45. The cached information resides on the Printer class, added to the
  46. SysPrn class.
  47. * PrintingServicesUnix.cs: Big rewrite.
  48. - Essentially, redesigned and modularized the code to minimize cups
  49. calls. Then, applied the caching so all the cups calls are reduced
  50. to a minimum, by loading a list of printers onto a hashtable, then
  51. loading the settings of the chosen printer and saving that in the
  52. hashtable all in one go.
  53. - Also, fixes for loading the proper default values of the printer,
  54. which are stored in it's global options;
  55. - Modularization of cups/ppd loading methods (LoadPrinterOptions,
  56. LoadOptionList, OpenPrinter, ClosePrinter) so we don't repeat
  57. cups/ppd loading loops everywhere.
  58. - Proper disposing of pointers and structures, calling the proper
  59. cups free calls.
  60. - Add duplex support
  61. * PrintingServicesWin32.cs: IsPrinterValid is no longer caching the value,
  62. since it should be supporting global caching as well, though that is not
  63. yet complete on win32. Implements plotter detection support, and changes for
  64. the new PrinterSettings/GlobalPrinterSettings structure. Some minor changes
  65. the code to minimize p/invoke calls (load the printer sources and sizes
  66. before accessing the collections)
  67. * StandardPrintController.cs: PrinterSettings/GlobalPrinterSettings structure
  68. changes
  69. 2007-02-09 Sebastien Pouliot <[email protected]>
  70. * PrintingServicesUnix.cs: Ensure we free the original pointer in
  71. GetAlternativeDefaultPrinter (not the one used for iteration).
  72. 2007-01-19 Andreia Gaita <[email protected]>
  73. * PrintingServicesUnix.cs: Add is_default flag check for
  74. detecting default printer when cupsGetDefault doesn't return
  75. valid values (mainly ubuntu). Fixes #80198, #80519
  76. 2007-01-09 Sebastien Pouliot <[email protected]>
  77. * PrintingServices.cs: Unify platform detection code.
  78. 2006-12-04 Carlos Alberto Cortez <[email protected]>
  79. * PrintingServicesUnix.cs: Add "landscape" option
  80. when using PaperSettings.Landscape set to true. Also
  81. swap the width and height for the postscript file.
  82. 2006-12-01 Andreia Gaita <[email protected]>
  83. * PrintingServicesUnix: Proper size structure use for 64 bit
  84. support.
  85. 2006-12-01 Andreia Gaita <[email protected]>
  86. * PrintingServicesUnix: *properly* check return value from
  87. cupsGetDefault. If there are no default printers set,
  88. check if there are installed printers, and use that.
  89. Hopefully fixes #79835
  90. 2006-12-01 Andreia Gaita <[email protected]>
  91. * PrintingServicesUnix: check return value from cupsGetDefault.
  92. Hopefully fixes #79835
  93. 2006-12-01 Jordi Mas i Hernandez <[email protected]>
  94. * PrintingServicesWin32.cs: Fixes paper sizes reading. The POINT
  95. structure is 8 bytes long not 4. This fixes margins calculations
  96. (based on the paper size) that were badly broken.
  97. 2006-11-28 Andreia Gaita <[email protected]>
  98. * PageSettings.cs:
  99. - internal member name changes to help
  100. out with intelisense.
  101. - Use internal members directly instead of using
  102. corresponding properties so that exceptions are not thrown
  103. * PrintingServicesWin32:
  104. - Only return DefaultPrinter if it is actually valid. This
  105. is because Win32GetDefaultPrinter returns a printer name
  106. even if PrintSpooler is stopped (which should behave the
  107. same way as if there are no printers installed)
  108. - Do not try to allocate if EnumPrinters returns 0
  109. 2006-11-25 Jordi Mas i Hernandez <[email protected]>
  110. * PrintingServicesUnix.cs: Implements GetPrintDialogInfo
  111. 2006-11-24 Carlos Alberto Cortez <[email protected]>
  112. Initial support for PageSettings (color, copies, collate,
  113. and media size).
  114. * StandardPrintController.cs: Pass PrintDocument.PageSettings to
  115. create the Graphics object (althought PageSettings
  116. contains a PrinterSettings and vice versa, PrintDocument
  117. can contain non-related PrinterSettings and PageSettings objects).
  118. * PrintingServices.cs: Likewise.
  119. * PrintingServicesWin32.cs: Likewise.
  120. * PrintingServicesUnix.cs: Likewise. Also use cupsParseOptions
  121. to pass printing options when calling cupsPrintFile. Use "Custom"
  122. as name for custom pages without associated name (Laxmark printers
  123. have this problem, causing a nullref exc). Add GetPaperKind () method
  124. to retrieve and set the right PaperKind value for PaperSize, instead
  125. of using PaperKind.Custom for all page sizes. Finally save
  126. PageSettings in DOCINFO to use it later.
  127. * PrintDocument.cs: Clone PrinterSettings.PageSettings
  128. instead of creating a new one (this avoid creating an additional
  129. PrinterSettings instance).
  130. 2006-11-17 Andreia Gaita <[email protected]>
  131. * PrintingServicesWin32.cs: fix another dumb typo -
  132. check proper return value from printer validity call
  133. 2006-11-16 Chris Toshok <[email protected]>
  134. * PreviewPrintController.cs: fix typo - don't throw
  135. InvalidPrinterException when it wasn't supposed to be.
  136. 2006-11-16 Carlos Alberto Cortez <[email protected]>
  137. * PrintDocument.cs: Use QueryPageSettingsEventArgs.PageSettings
  138. in PrintPageEventArgs, instead of using the default one (mimic
  139. .Net behaviour).
  140. * PageSettings.cs: Implement Clone the right way (intead of using
  141. the default page settings).
  142. 2006-11-14 Andreia Gaita <[email protected]>
  143. Fixes #79835, implements PrinterSettings.IsValid, throws proper
  144. InvalidPrinterException with differentiated messages.
  145. * PrintingServices.cs: Declares IsPrinterValid to enable easy checking
  146. if printer name is a valid printer
  147. * PrintingServicesWin32.cs: Implements IsPrinterValid, caches
  148. last assigned printer name and if it is valid to speed up next calls.
  149. * PrintingServicesUnix.cs: Implements IsPrinterValid, caches
  150. last assigned printer name and if it is valid to speed up next calls.
  151. * PageSettings.cs:
  152. - throw InvalidPrinterException in the properties,
  153. according to the docs: Color, Landscape, PaperSize, PaperSource,
  154. PrinterResolution
  155. - change the private fields above to internal, so that in the
  156. constructor we can access them without triggering the exceptions
  157. if there are no printers installed
  158. * PrinterSettings.cs: Implement IsValid to call IsPrinterValid
  159. implemented above
  160. * PreviewPrintController.cs: throw InvalidPrinterException on
  161. StartPrint() if there's no valid printer configured
  162. * InvalidPrinterException.cs: New private GetMessage() to customize
  163. printer error message, used by constructor
  164. 2006-09-27 Jordi Mas i Hernandez <[email protected]>
  165. * PrintingServicesUnix.cs: Implements LoadPrinterPaperSources member,
  166. simplifies GetPaperSizeName and loads paper source and size defaults
  167. 2006-09-27 Jordi Mas i Hernandez <[email protected]>
  168. * PrintingServices.cs: Add LoadPrinterPaperSources member
  169. * PrintingServicesWin32.cs: Implements LoadPrinterPaperSources and
  170. reads the default paper source and size.
  171. * PrintingServicesUnix.cs: Add stub LoadPrinterPaperSources member
  172. * PrinterSettings.cs: Implements PaperSourceCollection property and
  173. makes default paper source and size from the system.
  174. 2006-08-02 Chris Toshok <[email protected]>
  175. * PreviewPrintController.cs: scale the Graphics context we pass
  176. back from OnStartPage such that the preview looks the way the
  177. printed output will.
  178. 2006-07-28 Carlos Alberto Cortez <[email protected]>
  179. * PrintDocument.cs: When null is passed to PrinterSettings,
  180. it should be set to a new PrinterSettings instance, and should never
  181. be null.
  182. * PrinterSettings.cs: Default value for Copies should be 1. Also
  183. add a space in the ToString method, to correctly show the printer
  184. info.
  185. 2006-07-26 Chris Toshok <[email protected]>
  186. * PrinterSettings.cs: expose PrintFileName in the 1.1 case as an
  187. internal property, so we can get at it from MWF.
  188. * PrintingServicesUnix.cs: handle print to file, and also remove
  189. the temp file after sending the data to the printer. fix some
  190. dllimports to match the rest of system.drawing.
  191. * PreviewPrintController.cs: implement this (warning, it'll eat
  192. all your memory until we get a real Metafile implementation, as
  193. we're storing bitmaps).
  194. * PrintDocument.cs: shift the graphics context stuff around a bit
  195. in Print(), so that the events after OnStartPrint are passed the
  196. graphics context the controller created there, and we use the
  197. return value of OnStartPage to do all drawing.
  198. 2006-05-20 Jordi Mas i Hernandez <[email protected]>
  199. * PrintingServices.cs: GetPrintDialogInfo definition
  200. * PrintingServicesWin32.cs GetPrintDialogInfo implementation
  201. * PrintingServicesUnix.cs: GetPrintDialogInfo stub
  202. 2006-04-14 Jordi Mas i Hernandez <[email protected]>
  203. * PrintingServicesUnix.cs: Replace cupsGetPrinters deprecated API call
  204. 2006-04-13 Jordi Mas i Hernandez <[email protected]>
  205. * PrintingServicesUnix.cs: Checks if cups is installed
  206. * PrinterSettings.cs: PrintToFile property and ToString method
  207. 2006-04-28 Sebastien Pouliot <[email protected]>
  208. * PrintController.cs: corcompare fix. No public ctor in 2.0.
  209. * PrinterSettings.cs: corcompare fix. Clone method isn't virtual.
  210. 2006-03-21 Sebastien Pouliot <[email protected]>
  211. * PrintingServicesUnix.cs: cupsGetPrinters(char***) requires to free
  212. each individual string and (finally) the list. Note that this call is
  213. deprecated.
  214. 2006-03-13 Peter Dennis Bartok <[email protected]>
  215. * PrintingServicesUnix.cs: Handle not having a printer
  216. 2006-02-09 Peter Dennis Bartok <[email protected]>
  217. * PrintingServicesWin32.cs: Simplyfied the code, removing the need
  218. for pointer calculations (part of 64bit cleanup)
  219. 2006-01-27 Sebastien Pouliot <[email protected]>
  220. * PrintingServicesWin32.cs: Ensure Marshal.FreeHGlobal is called for
  221. all unmanaged memory allocated with AllocHGlobal.
  222. 2006-01-15 Jordi Mas i Hernandez <[email protected]>
  223. * PrintingServicesUnix.cs: Allow setting the dpy's for the surface
  224. 2005-12-22 Jordi Mas i Hernandez <[email protected]>
  225. * PrintingServices.cs: Printing services abstration class
  226. * PrintingServicesWin32.cs: Win32 printer driver
  227. * PrintingServicesUnix.cs: Unix printer driver
  228. * Margins.cs: Fixes exceptions error messages
  229. * PrinterResolution.cs: Fixes
  230. * PrintEventArgs.cs: New internal method
  231. * PrintPageEventArgs.cs: New internal method
  232. * StandardPrintController.cs: Fixes
  233. * PrinterUnitConvert.cs: Fixes conversion errors
  234. * PrintDocument.cs: Fixes to make it print
  235. * PageSettings.cs: Take margains into account
  236. * PrintController.cs: Fixes
  237. * PaperSize.cs: Method to set paper Kind
  238. * PrinterSettings.cs: Implements settings and fixes
  239. *
  240. 2005-12-07 Jordi Mas i Hernandez <[email protected]>
  241. * PrinterResolutionKind.cs: Fixes signature for .Net 2.0
  242. * PaperKind.cs: Fixes signature for .Net 2.0
  243. * PaperSource.cs: Fixes signature for .Net 2.0
  244. * Margins.cs: Fixes signature for .Net 2.0
  245. * PrinterResolution.cs: Fixes signature for .Net 2.0
  246. * PrintEventArgs.cs: Fixes signature for .Net 2.0
  247. * PrintAction.cs: New enum in .Net 2.0
  248. * PageSettings.cs: Fixes signature for .Net 2.0
  249. * PaperSourceKind.cs: Fixes signature for .Net 2.0
  250. * PrintController.cs: Fixes signature for .Net 2.0
  251. * Duplex.cs: Fixes signature for .Net 2.0
  252. * PaperSize.cs: Fixes signature for .Net 2.0
  253. * PreviewPrintController.cs: Fixes signature for .Net 2.0
  254. * PrinterSettings.cs: Fixes signature for .Net 2.0
  255. * PrintRange.cs: Fixes signature for .Net 2.0
  256. 2005-09-16 Sebastien Pouliot <[email protected]>
  257. * InvalidPrinterException.cs: Removed NotImplementedException (not
  258. required) and added a demand for SerializationFormatter on the
  259. GetObjectData method.
  260. * PrintingPermission.cs: Throw ArgumentException if the class or
  261. version attributes are missing in the supplied XML (only in 1.x).
  262. 2005-03-23 Jordi Mas i Hernandez <[email protected]>
  263. * PaperKind.cs: fixes wrong enum values
  264. 2005-01-27 Lluis Sanchez Gual <[email protected]>
  265. * MarginsConverter.cs: Implemented support for InstanceDescriptor.