Index: printing/printing_context_mac.mm |
diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm |
index 65e707f1696f4642f9060c1edaeba63a9c1f9027..fc534e07d397ecf0a3b05af914dfcbbb751e7294 100644 |
--- a/printing/printing_context_mac.mm |
+++ b/printing/printing_context_mac.mm |
@@ -53,15 +53,8 @@ void PrintingContextMac::AskUserForSettings(gfx::NativeView parent_view, |
[panel setOptions:options]; |
// Set the print job title text. |
- if (parent_view) { |
- NSString* job_title = [[parent_view window] title]; |
- if (job_title) { |
- PMPrintSettings printSettings = |
- (PMPrintSettings)[printInfo PMPrintSettings]; |
- PMPrintSettingsSetJobName(printSettings, (CFStringRef)job_title); |
- [printInfo updateFromPMPrintSettings]; |
- } |
- } |
+ if (parent_view) |
+ UpdatePrintInfoWithJobName(printInfo, [[parent_view window] title]); |
// TODO(stuartmorgan): We really want a tab sheet here, not a modal window. |
// Will require restructuring the PrintingContext API to use a callback. |
@@ -104,6 +97,13 @@ PrintingContext::Result PrintingContextMac::UpdatePrintSettings( |
if (!SetPrinter(printer_name)) |
return OnError(); |
+ string16 job_name; |
+ if (!job_settings.GetString(kSettingPrintJobTitle, &job_name)) |
+ return OnError(); |
+ |
+ if (!SetPrintJobName(job_name)) |
+ return OnError(); |
+ |
InitPrintSettingsFromPrintInfo(ranges); |
return OK; |
} |
@@ -135,6 +135,23 @@ bool PrintingContextMac::SetPrinter(const std::string& printer_name) { |
return true; |
} |
+bool PrintingContextMac::SetPrintJobName(const string16& job_name) { |
+ NSString* print_job_name = base::SysUTF16ToNSString(job_name); |
+ if (!print_job_name) |
+ return false; |
+ UpdatePrintInfoWithJobName(print_info_.get(), print_job_name); |
+ return true; |
+} |
+ |
+void PrintingContextMac::UpdatePrintInfoWithJobName( |
+ NSPrintInfo* printInfo, NSString* job_name) { |
+ if (job_name) { |
+ PMPrintSettings settings = (PMPrintSettings)[printInfo PMPrintSettings]; |
+ PMPrintSettingsSetJobName(settings, (CFStringRef)job_name); |
+ [printInfo updateFromPMPrintSettings]; |
+ } |
+} |
+ |
void PrintingContextMac::ParsePrintInfo(NSPrintInfo* print_info) { |
ResetSettings(); |
print_info_.reset([print_info retain]); |