| 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 ff22fe35ca6f86949b7c58d690c6f011b47d94f2..1ebcbdbcafe40527abf6d65993a40205c2a3cf81 100644
|
| --- a/chrome/browser/printing/print_dialog_gtk.cc
|
| +++ b/chrome/browser/printing/print_dialog_gtk.cc
|
| @@ -162,43 +162,21 @@ void PrintDialogGtk::UseDefaultSettings() {
|
| gtk_print_settings_copy(g_last_used_settings.Get().settings());
|
| page_setup_ = gtk_page_setup_new();
|
|
|
| - // No page range to initialize for default settings.
|
| - PageRanges ranges_vector;
|
| PrintSettings settings;
|
| - InitPrintSettings(ranges_vector, &settings);
|
| + InitPrintSettings(&settings);
|
| }
|
|
|
| -bool PrintDialogGtk::UpdateSettings(const base::DictionaryValue& job_settings,
|
| - const printing::PageRanges& ranges,
|
| +bool PrintDialogGtk::UpdateSettings(bool target_is_pdf,
|
| printing::PrintSettings* settings) {
|
| - bool collate;
|
| - int color;
|
| - bool landscape;
|
| - bool print_to_pdf;
|
| - int copies;
|
| - int duplex_mode;
|
| - std::string device_name;
|
| -
|
| - if (!job_settings.GetBoolean(printing::kSettingLandscape, &landscape) ||
|
| - !job_settings.GetBoolean(printing::kSettingCollate, &collate) ||
|
| - !job_settings.GetInteger(printing::kSettingColor, &color) ||
|
| - !job_settings.GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf) ||
|
| - !job_settings.GetInteger(printing::kSettingDuplexMode, &duplex_mode) ||
|
| - !job_settings.GetInteger(printing::kSettingCopies, &copies) ||
|
| - !job_settings.GetString(printing::kSettingDeviceName, &device_name)) {
|
| - return false;
|
| - }
|
| -
|
| - bool is_cloud_print = job_settings.HasKey(printing::kSettingCloudPrintId);
|
| -
|
| if (!gtk_settings_) {
|
| gtk_settings_ =
|
| gtk_print_settings_copy(g_last_used_settings.Get().settings());
|
| }
|
|
|
| - if (!print_to_pdf && !is_cloud_print) {
|
| + if (!target_is_pdf) {
|
| scoped_ptr<GtkPrinterList> printer_list(new GtkPrinterList);
|
| - printer_ = printer_list->GetPrinterWithName(device_name);
|
| + printer_ = printer_list->GetPrinterWithName(
|
| + UTF16ToUTF8(settings->device_name()));
|
| if (printer_) {
|
| g_object_ref(printer_);
|
| gtk_print_settings_set_printer(gtk_settings_,
|
| @@ -208,19 +186,20 @@ bool PrintDialogGtk::UpdateSettings(const base::DictionaryValue& job_settings,
|
| }
|
| }
|
|
|
| - gtk_print_settings_set_n_copies(gtk_settings_, copies);
|
| - gtk_print_settings_set_collate(gtk_settings_, collate);
|
| + gtk_print_settings_set_n_copies(gtk_settings_, settings->copies());
|
| + gtk_print_settings_set_collate(gtk_settings_, settings->collate());
|
|
|
| #if defined(USE_CUPS)
|
| std::string color_value;
|
| std::string color_setting_name;
|
| - printing::GetColorModelForMode(color, &color_setting_name, &color_value);
|
| + printing::GetColorModelForMode(settings->color(), &color_setting_name,
|
| + &color_value);
|
| gtk_print_settings_set(gtk_settings_, color_setting_name.c_str(),
|
| color_value.c_str());
|
|
|
| - if (duplex_mode != printing::UNKNOWN_DUPLEX_MODE) {
|
| + if (settings->duplex_mode() != printing::UNKNOWN_DUPLEX_MODE) {
|
| const char* cups_duplex_mode = NULL;
|
| - switch (duplex_mode) {
|
| + switch (settings->duplex_mode()) {
|
| case printing::LONG_EDGE:
|
| cups_duplex_mode = kDuplexNoTumble;
|
| break;
|
| @@ -243,10 +222,10 @@ bool PrintDialogGtk::UpdateSettings(const base::DictionaryValue& job_settings,
|
|
|
| gtk_print_settings_set_orientation(
|
| gtk_settings_,
|
| - landscape ? GTK_PAGE_ORIENTATION_LANDSCAPE :
|
| - GTK_PAGE_ORIENTATION_PORTRAIT);
|
| + settings->landscape() ? GTK_PAGE_ORIENTATION_LANDSCAPE :
|
| + GTK_PAGE_ORIENTATION_PORTRAIT);
|
|
|
| - InitPrintSettings(ranges, settings);
|
| + InitPrintSettings(settings);
|
| return true;
|
| }
|
|
|
| @@ -387,9 +366,10 @@ void PrintDialogGtk::OnResponse(GtkWidget* dialog, int response_id) {
|
| }
|
|
|
| PrintSettings settings;
|
| + settings.set_ranges(ranges_vector);
|
| + settings.set_selection_only(print_selection_only);
|
| printing::PrintSettingsInitializerGtk::InitPrintSettings(
|
| - gtk_settings_, page_setup_, ranges_vector, print_selection_only,
|
| - &settings);
|
| + gtk_settings_, page_setup_, &settings);
|
| context_->InitWithSettings(settings);
|
| callback_.Run(PrintingContextGtk::OK);
|
| callback_.Reset();
|
| @@ -452,9 +432,8 @@ void PrintDialogGtk::OnJobCompleted(GtkPrintJob* print_job, GError* error) {
|
| Release();
|
| }
|
|
|
| -void PrintDialogGtk::InitPrintSettings(const PageRanges& page_ranges,
|
| - PrintSettings* settings) {
|
| +void PrintDialogGtk::InitPrintSettings(PrintSettings* settings) {
|
| printing::PrintSettingsInitializerGtk::InitPrintSettings(
|
| - gtk_settings_, page_setup_, page_ranges, false, settings);
|
| + gtk_settings_, page_setup_, settings);
|
| context_->InitWithSettings(*settings);
|
| }
|
|
|