Chromium Code Reviews| Index: printing/printing_context_mac.mm |
| diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm |
| index 599fa7859c25da2b84cadc33edd380da9c5e63b7..286e20e12442ec9f6501c2ced4443717883dc7d3 100644 |
| --- a/printing/printing_context_mac.mm |
| +++ b/printing/printing_context_mac.mm |
| @@ -27,6 +27,7 @@ PrintingContext* PrintingContext::Create(const std::string& app_locale) { |
| PrintingContextMac::PrintingContextMac(const std::string& app_locale) |
| : PrintingContext(app_locale), |
| + print_info_([[NSPrintInfo sharedPrintInfo] copy]), |
| context_(NULL) { |
| } |
| @@ -57,7 +58,7 @@ void PrintingContextMac::AskUserForSettings(gfx::NativeView parent_view, |
| // adding a new custom view to the panel on 10.5; 10.6 has |
| // NSPrintPanelShowsPrintSelection). |
| NSPrintPanel* panel = [NSPrintPanel printPanel]; |
| - NSPrintInfo* printInfo = [NSPrintInfo sharedPrintInfo]; |
| + NSPrintInfo* printInfo = print_info_.get(); |
| NSPrintPanelOptions options = [panel options]; |
| options |= NSPrintPanelShowsPaperSize; |
| @@ -80,7 +81,8 @@ void PrintingContextMac::AskUserForSettings(gfx::NativeView parent_view, |
| // Will require restructuring the PrintingContext API to use a callback. |
| NSInteger selection = [panel runModalWithPrintInfo:printInfo]; |
| if (selection == NSOKButton) { |
| - ParsePrintInfo([panel printInfo]); |
| + ResetPrintInfo([panel printInfo]); |
| + InitPrintSettingsFromPrintInfo(GetPageRangesFromPrintInfo()); |
| callback->Run(OK); |
| } else { |
| callback->Run(CANCEL); |
| @@ -90,7 +92,8 @@ void PrintingContextMac::AskUserForSettings(gfx::NativeView parent_view, |
| PrintingContext::Result PrintingContextMac::UseDefaultSettings() { |
| DCHECK(!in_print_job_); |
| - ParsePrintInfo([NSPrintInfo sharedPrintInfo]); |
| + ResetPrintInfo([[NSPrintInfo sharedPrintInfo] copy]); |
|
stuartmorgan
2011/06/02 21:07:20
copy + retain = leak
kmadhusu
2011/06/02 23:07:00
Fixed.
|
| + InitPrintSettingsFromPrintInfo(GetPageRangesFromPrintInfo()); |
| return OK; |
| } |
| @@ -99,8 +102,7 @@ PrintingContext::Result PrintingContextMac::UpdatePrintSettings( |
| const DictionaryValue& job_settings, const PageRanges& ranges) { |
| DCHECK(!in_print_job_); |
| - ResetSettings(); |
| - print_info_.reset([[NSPrintInfo sharedPrintInfo] copy]); |
| + ResetPrintInfo([[NSPrintInfo sharedPrintInfo]copy]); |
|
stuartmorgan
2011/06/02 21:07:20
copy + retain = leak
Also, why was the space remo
kmadhusu
2011/06/02 23:07:00
Fixed.
|
| bool collate; |
| bool color; |
| @@ -250,9 +252,12 @@ bool PrintingContextMac::SetOutputIsColor(bool color) { |
| false) == noErr; |
| } |
| -void PrintingContextMac::ParsePrintInfo(NSPrintInfo* print_info) { |
| +void PrintingContextMac::ResetPrintInfo(NSPrintInfo* print_info) { |
| ResetSettings(); |
|
stuartmorgan
2011/06/02 21:07:20
I just looked at ResetSettings(), and it doesn't d
kmadhusu
2011/06/02 23:07:00
Done.
|
| print_info_.reset([print_info retain]); |
| +} |
| + |
| +PageRanges PrintingContextMac::GetPageRangesFromPrintInfo() { |
| PageRanges page_ranges; |
| NSDictionary* print_info_dict = [print_info_.get() dictionary]; |
| if (![[print_info_dict objectForKey:NSPrintAllPages] boolValue]) { |
| @@ -261,7 +266,7 @@ void PrintingContextMac::ParsePrintInfo(NSPrintInfo* print_info) { |
| range.to = [[print_info_dict objectForKey:NSPrintLastPage] intValue] - 1; |
| page_ranges.push_back(range); |
| } |
| - InitPrintSettingsFromPrintInfo(page_ranges); |
| + return page_ranges; |
| } |
| PrintingContext::Result PrintingContextMac::InitWithSettings( |