Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6424)

Unified Diff: chrome/browser/printing/print_dialog_gtk.cc

Issue 47823002: De-duplicate job_settings parsing code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Noam's comments Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/printing/print_dialog_gtk.h ('k') | chrome/browser/printing/print_job_worker.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « chrome/browser/printing/print_dialog_gtk.h ('k') | chrome/browser/printing/print_job_worker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698