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

Side by Side Diff: chrome/browser/printing/print_dialog_gtk.cc

Issue 46623002: Move settings setup for PDF and cloud print into single location in PrintingContext (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/printing/print_dialog_gtk.h" 5 #include "chrome/browser/printing/print_dialog_gtk.h"
6 6
7 #include <gtk/gtkunixprint.h> 7 #include <gtk/gtkunixprint.h>
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 159
160 // |gtk_settings_| is a new copy. 160 // |gtk_settings_| is a new copy.
161 gtk_settings_ = 161 gtk_settings_ =
162 gtk_print_settings_copy(g_last_used_settings.Get().settings()); 162 gtk_print_settings_copy(g_last_used_settings.Get().settings());
163 page_setup_ = gtk_page_setup_new(); 163 page_setup_ = gtk_page_setup_new();
164 164
165 PrintSettings settings; 165 PrintSettings settings;
166 InitPrintSettings(&settings); 166 InitPrintSettings(&settings);
167 } 167 }
168 168
169 bool PrintDialogGtk::UpdateSettings(bool target_is_pdf, 169 bool PrintDialogGtk::UpdateSettings(printing::PrintSettings* settings) {
170 printing::PrintSettings* settings) {
171 if (!gtk_settings_) { 170 if (!gtk_settings_) {
172 gtk_settings_ = 171 gtk_settings_ =
173 gtk_print_settings_copy(g_last_used_settings.Get().settings()); 172 gtk_print_settings_copy(g_last_used_settings.Get().settings());
174 } 173 }
175 174
176 if (!target_is_pdf) { 175 scoped_ptr<GtkPrinterList> printer_list(new GtkPrinterList);
177 scoped_ptr<GtkPrinterList> printer_list(new GtkPrinterList); 176 printer_ = printer_list->GetPrinterWithName(
178 printer_ = printer_list->GetPrinterWithName( 177 UTF16ToUTF8(settings->device_name()));
179 UTF16ToUTF8(settings->device_name())); 178 if (printer_) {
180 if (printer_) { 179 g_object_ref(printer_);
181 g_object_ref(printer_); 180 gtk_print_settings_set_printer(gtk_settings_,
182 gtk_print_settings_set_printer(gtk_settings_, 181 gtk_printer_get_name(printer_));
183 gtk_printer_get_name(printer_)); 182 if (!page_setup_) {
184 if (!page_setup_) { 183 page_setup_ = gtk_printer_get_default_page_size(printer_);
185 page_setup_ = gtk_printer_get_default_page_size(printer_);
186 }
187 } 184 }
185 }
188 186
189 gtk_print_settings_set_n_copies(gtk_settings_, settings->copies()); 187 gtk_print_settings_set_n_copies(gtk_settings_, settings->copies());
190 gtk_print_settings_set_collate(gtk_settings_, settings->collate()); 188 gtk_print_settings_set_collate(gtk_settings_, settings->collate());
191 189
192 #if defined(USE_CUPS) 190 #if defined(USE_CUPS)
193 std::string color_value; 191 std::string color_value;
194 std::string color_setting_name; 192 std::string color_setting_name;
195 printing::GetColorModelForMode(settings->color(), &color_setting_name, 193 printing::GetColorModelForMode(settings->color(), &color_setting_name,
196 &color_value); 194 &color_value);
197 gtk_print_settings_set(gtk_settings_, color_setting_name.c_str(), 195 gtk_print_settings_set(gtk_settings_, color_setting_name.c_str(),
198 color_value.c_str()); 196 color_value.c_str());
199 197
200 if (settings->duplex_mode() != printing::UNKNOWN_DUPLEX_MODE) { 198 if (settings->duplex_mode() != printing::UNKNOWN_DUPLEX_MODE) {
201 const char* cups_duplex_mode = NULL; 199 const char* cups_duplex_mode = NULL;
202 switch (settings->duplex_mode()) { 200 switch (settings->duplex_mode()) {
203 case printing::LONG_EDGE: 201 case printing::LONG_EDGE:
204 cups_duplex_mode = kDuplexNoTumble; 202 cups_duplex_mode = kDuplexNoTumble;
205 break; 203 break;
206 case printing::SHORT_EDGE: 204 case printing::SHORT_EDGE:
207 cups_duplex_mode = kDuplexTumble; 205 cups_duplex_mode = kDuplexTumble;
208 break; 206 break;
209 case printing::SIMPLEX: 207 case printing::SIMPLEX:
210 cups_duplex_mode = kDuplexNone; 208 cups_duplex_mode = kDuplexNone;
211 break; 209 break;
212 default: // UNKNOWN_DUPLEX_MODE 210 default: // UNKNOWN_DUPLEX_MODE
213 NOTREACHED(); 211 NOTREACHED();
214 break; 212 break;
215 }
216 gtk_print_settings_set(gtk_settings_, kCUPSDuplex, cups_duplex_mode);
217 } 213 }
214 gtk_print_settings_set(gtk_settings_, kCUPSDuplex, cups_duplex_mode);
215 }
218 #endif 216 #endif
219 }
220 if (!page_setup_) 217 if (!page_setup_)
221 page_setup_ = gtk_page_setup_new(); 218 page_setup_ = gtk_page_setup_new();
222 219
223 gtk_print_settings_set_orientation( 220 gtk_print_settings_set_orientation(
224 gtk_settings_, 221 gtk_settings_,
225 settings->landscape() ? GTK_PAGE_ORIENTATION_LANDSCAPE : 222 settings->landscape() ? GTK_PAGE_ORIENTATION_LANDSCAPE :
226 GTK_PAGE_ORIENTATION_PORTRAIT); 223 GTK_PAGE_ORIENTATION_PORTRAIT);
227 224
228 InitPrintSettings(settings); 225 InitPrintSettings(settings);
229 return true; 226 return true;
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 base::FileUtilProxy::StatusCallback()); 427 base::FileUtilProxy::StatusCallback());
431 // Printing finished. Matches AddRef() in PrintDocument(); 428 // Printing finished. Matches AddRef() in PrintDocument();
432 Release(); 429 Release();
433 } 430 }
434 431
435 void PrintDialogGtk::InitPrintSettings(PrintSettings* settings) { 432 void PrintDialogGtk::InitPrintSettings(PrintSettings* settings) {
436 printing::PrintSettingsInitializerGtk::InitPrintSettings( 433 printing::PrintSettingsInitializerGtk::InitPrintSettings(
437 gtk_settings_, page_setup_, settings); 434 gtk_settings_, page_setup_, settings);
438 context_->InitWithSettings(*settings); 435 context_->InitWithSettings(*settings);
439 } 436 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698