OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ui/webui/print_preview_handler.h" | 5 #include "chrome/browser/ui/webui/print_preview_handler.h" |
6 | 6 |
7 #include <ctype.h> | 7 #include <ctype.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 | 398 |
399 // Storing last used margin settings. | 399 // Storing last used margin settings. |
400 int margin_type; | 400 int margin_type; |
401 if (!settings->GetInteger(printing::kSettingMarginsType, &margin_type)) | 401 if (!settings->GetInteger(printing::kSettingMarginsType, &margin_type)) |
402 margin_type = printing::DEFAULT_MARGINS; | 402 margin_type = printing::DEFAULT_MARGINS; |
403 last_used_margins_type_ = static_cast<printing::MarginType>(margin_type); | 403 last_used_margins_type_ = static_cast<printing::MarginType>(margin_type); |
404 | 404 |
405 bool print_to_pdf = false; | 405 bool print_to_pdf = false; |
406 settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf); | 406 settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf); |
407 | 407 |
| 408 bool open_pdf_in_preview = false; |
| 409 #if defined(OS_MACOSX) |
| 410 open_pdf_in_preview = settings->HasKey(printing::kSettingOpenPDFInPreview); |
| 411 #endif |
| 412 |
408 settings->SetBoolean(printing::kSettingHeaderFooterEnabled, false); | 413 settings->SetBoolean(printing::kSettingHeaderFooterEnabled, false); |
409 | 414 |
410 bool is_cloud_printer = settings->HasKey(printing::kSettingCloudPrintId); | 415 bool is_cloud_printer = settings->HasKey(printing::kSettingCloudPrintId); |
411 bool is_cloud_dialog = false; | 416 bool is_cloud_dialog = false; |
412 settings->GetBoolean(printing::kSettingCloudPrintDialog, &is_cloud_dialog); | 417 settings->GetBoolean(printing::kSettingCloudPrintDialog, &is_cloud_dialog); |
413 if (is_cloud_printer) { | 418 if (is_cloud_printer && !open_pdf_in_preview) { |
414 std::string print_ticket; | 419 std::string print_ticket; |
415 args->GetString(1, &print_ticket); | 420 args->GetString(1, &print_ticket); |
416 SendCloudPrintJob(*settings, print_ticket); | 421 SendCloudPrintJob(*settings, print_ticket); |
417 } else if (print_to_pdf) { | 422 } else if (print_to_pdf && !open_pdf_in_preview) { |
418 HandlePrintToPdf(*settings); | 423 HandlePrintToPdf(*settings); |
419 } else if (is_cloud_dialog) { | 424 } else if (is_cloud_dialog && !open_pdf_in_preview) { |
420 HandlePrintWithCloudPrint(); | 425 HandlePrintWithCloudPrint(); |
421 } else { | 426 } else { |
422 ReportPrintSettingsStats(*settings); | 427 ReportPrintSettingsStats(*settings); |
423 ReportUserActionHistogram(PRINT_TO_PRINTER); | 428 ReportUserActionHistogram(PRINT_TO_PRINTER); |
424 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPrinter", | 429 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPrinter", |
425 GetPageCountFromSettingsDictionary(*settings)); | 430 GetPageCountFromSettingsDictionary(*settings)); |
426 | 431 |
427 // This tries to activate the initiator tab as well, so do not clear the | 432 // This tries to activate the initiator tab as well, so do not clear the |
428 // association with the initiator tab yet. | 433 // association with the initiator tab yet. |
429 HidePreviewTab(); | 434 HidePreviewTab(); |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
868 return; | 873 return; |
869 | 874 |
870 // We no longer require the initiator tab details. Remove those details | 875 // We no longer require the initiator tab details. Remove those details |
871 // associated with the preview tab to allow the initiator tab to create | 876 // associated with the preview tab to allow the initiator tab to create |
872 // another preview tab. | 877 // another preview tab. |
873 printing::PrintPreviewTabController* tab_controller = | 878 printing::PrintPreviewTabController* tab_controller = |
874 printing::PrintPreviewTabController::GetInstance(); | 879 printing::PrintPreviewTabController::GetInstance(); |
875 if (tab_controller) | 880 if (tab_controller) |
876 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); | 881 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); |
877 } | 882 } |
OLD | NEW |