Index: chrome/browser/printing/print_dialog_gtk.cc |
diff --git a/chrome/browser/printing/print_dialog_gtk.cc b/chrome/browser/printing/print_dialog_gtk.cc |
index a3d00a8c64630f5c5c02f0c976efa60901a44333..557ce321fea5e012c93793d238aeb30a9ff3ecb4 100644 |
--- a/chrome/browser/printing/print_dialog_gtk.cc |
+++ b/chrome/browser/printing/print_dialog_gtk.cc |
@@ -155,7 +155,9 @@ void PrintDialogGtk::UseDefaultSettings() { |
// No page range to initialize for default settings. |
PageRanges ranges_vector; |
- InitPrintSettings(ranges_vector); |
+ DictionaryValue header_footer_info; |
+ header_footer_info.SetBoolean(printing::kSettingHeaderFooterEnabled, false); |
+ InitPrintSettings(ranges_vector, header_footer_info); |
} |
bool PrintDialogGtk::UpdateSettings(const DictionaryValue& settings, |
@@ -210,7 +212,27 @@ bool PrintDialogGtk::UpdateSettings(const DictionaryValue& settings, |
landscape ? GTK_PAGE_ORIENTATION_LANDSCAPE : |
GTK_PAGE_ORIENTATION_PORTRAIT); |
- InitPrintSettings(ranges); |
+ bool display_header_footer; |
+ // Getting Header and Footer settings. |
+ if (!settings.GetBoolean(printing::kSettingHeaderFooterEnabled, |
+ &display_header_footer)) { |
+ NOTREACHED(); |
+ } |
+ DictionaryValue header_footer_info; |
+ header_footer_info.SetBoolean(printing::kSettingHeaderFooterEnabled, |
+ display_header_footer); |
+ if (display_header_footer) { |
+ string16 title; |
+ std::string url; |
+ if (!settings.GetString(printing::kSettingHeaderFooterTitle, &title) || |
+ !settings.GetString(printing::kSettingHeaderFooterURL, &url)) { |
+ NOTREACHED(); |
+ } |
+ header_footer_info.SetString(printing::kSettingHeaderFooterURL, url); |
+ header_footer_info.SetString(printing::kSettingHeaderFooterTitle, title); |
+ } |
+ |
+ InitPrintSettings(ranges, header_footer_info); |
return true; |
} |
@@ -315,8 +337,12 @@ void PrintDialogGtk::OnResponse(GtkWidget* dialog, int response_id) { |
} |
PrintSettings settings; |
+ DictionaryValue header_footer_info; |
+ header_footer_info.SetBoolean(printing::kSettingHeaderFooterEnabled, |
+ false); |
printing::PrintSettingsInitializerGtk::InitPrintSettings( |
- gtk_settings_, page_setup_, ranges_vector, false, &settings); |
+ gtk_settings_, page_setup_, ranges_vector, false, header_footer_info, |
+ &settings); |
context_->InitWithSettings(settings); |
callback_->Run(PrintingContextCairo::OK); |
callback_ = NULL; |
@@ -408,9 +434,12 @@ void PrintDialogGtk::OnJobCompleted(GtkPrintJob* print_job, GError* error) { |
Release(); |
} |
-void PrintDialogGtk::InitPrintSettings(const PageRanges& page_ranges) { |
+void PrintDialogGtk::InitPrintSettings( |
+ const PageRanges& page_ranges, |
+ const DictionaryValue& header_footer_info) { |
PrintSettings settings; |
printing::PrintSettingsInitializerGtk::InitPrintSettings( |
- gtk_settings_, page_setup_, page_ranges, false, &settings); |
+ gtk_settings_, page_setup_, page_ranges, false, header_footer_info, |
+ &settings); |
context_->InitWithSettings(settings); |
} |