| Index: printing/printing_context_system_dialog_win.cc
|
| diff --git a/printing/printing_context_system_dialog_win.cc b/printing/printing_context_system_dialog_win.cc
|
| index 2e226419f23eb99d3cc855de66c864e71fc04f4d..0d09fb356190f368d7a04689185b41e468e8f00d 100644
|
| --- a/printing/printing_context_system_dialog_win.cc
|
| +++ b/printing/printing_context_system_dialog_win.cc
|
| @@ -13,14 +13,13 @@
|
|
|
| namespace printing {
|
|
|
| -PrintingContextSytemDialogWin::PrintingContextSytemDialogWin(Delegate* delegate)
|
| - : PrintingContextWin(delegate) {
|
| -}
|
| +PrintingContextSystemDialogWin::PrintingContextSystemDialogWin(
|
| + Delegate* delegate)
|
| + : PrintingContextWin(delegate) {}
|
|
|
| -PrintingContextSytemDialogWin::~PrintingContextSytemDialogWin() {
|
| -}
|
| +PrintingContextSystemDialogWin::~PrintingContextSystemDialogWin() {}
|
|
|
| -void PrintingContextSytemDialogWin::AskUserForSettings(
|
| +void PrintingContextSystemDialogWin::AskUserForSettings(
|
| int max_pages,
|
| bool has_selection,
|
| bool is_scripted,
|
| @@ -32,11 +31,9 @@ void PrintingContextSytemDialogWin::AskUserForSettings(
|
|
|
| // Show the OS-dependent dialog box.
|
| // If the user press
|
| - // - OK, the settings are reset and reinitialized with the new settings. OK
|
| - // is
|
| + // - OK, the settings are reset and reinitialized with the new settings. OK is
|
| // returned.
|
| - // - Apply then Cancel, the settings are reset and reinitialized with the
|
| - // new
|
| + // - Apply then Cancel, the settings are reset and reinitialized with the new
|
| // settings. CANCEL is returned.
|
| // - Cancel, the settings are not changed, the previous setting, if it was
|
| // initialized before, are kept. CANCEL is returned.
|
| @@ -77,7 +74,7 @@ void PrintingContextSytemDialogWin::AskUserForSettings(
|
| callback.Run(ParseDialogResultEx(dialog_options));
|
| }
|
|
|
| -HRESULT PrintingContextSytemDialogWin::ShowPrintDialog(PRINTDLGEX* options) {
|
| +HRESULT PrintingContextSystemDialogWin::ShowPrintDialog(PRINTDLGEX* options) {
|
| // Runs always on the UI thread.
|
| static bool is_dialog_shown = false;
|
| if (is_dialog_shown)
|
| @@ -97,7 +94,7 @@ HRESULT PrintingContextSytemDialogWin::ShowPrintDialog(PRINTDLGEX* options) {
|
| return PrintDlgEx(options);
|
| }
|
|
|
| -bool PrintingContextSytemDialogWin::InitializeSettingsWithRanges(
|
| +bool PrintingContextSystemDialogWin::InitializeSettingsWithRanges(
|
| const DEVMODE& dev_mode,
|
| const std::wstring& new_device_name,
|
| const PRINTPAGERANGE* ranges,
|
| @@ -143,12 +140,14 @@ bool PrintingContextSytemDialogWin::InitializeSettingsWithRanges(
|
| return true;
|
| }
|
|
|
| -PrintingContext::Result PrintingContextSytemDialogWin::ParseDialogResultEx(
|
| +PrintingContext::Result PrintingContextSystemDialogWin::ParseDialogResultEx(
|
| const PRINTDLGEX& dialog_options) {
|
| // If the user clicked OK or Apply then Cancel, but not only Cancel.
|
| if (dialog_options.dwResultAction != PD_RESULT_CANCEL) {
|
| - // Start fresh.
|
| + // Start fresh, but preserve GDI print setting.
|
| + bool print_text_with_gdi = settings_.print_text_with_gdi();
|
| ResetSettings();
|
| + settings_.set_print_text_with_gdi(print_text_with_gdi);
|
|
|
| DEVMODE* dev_mode = NULL;
|
| if (dialog_options.hDevMode) {
|
| @@ -218,53 +217,4 @@ PrintingContext::Result PrintingContextSytemDialogWin::ParseDialogResultEx(
|
| }
|
| }
|
|
|
| -PrintingContext::Result PrintingContextSytemDialogWin::ParseDialogResult(
|
| - const PRINTDLG& dialog_options) {
|
| - // If the user clicked OK or Apply then Cancel, but not only Cancel.
|
| - // Start fresh.
|
| - ResetSettings();
|
| -
|
| - DEVMODE* dev_mode = NULL;
|
| - if (dialog_options.hDevMode) {
|
| - dev_mode = reinterpret_cast<DEVMODE*>(GlobalLock(dialog_options.hDevMode));
|
| - DCHECK(dev_mode);
|
| - }
|
| -
|
| - std::wstring device_name;
|
| - if (dialog_options.hDevNames) {
|
| - DEVNAMES* dev_names =
|
| - reinterpret_cast<DEVNAMES*>(GlobalLock(dialog_options.hDevNames));
|
| - DCHECK(dev_names);
|
| - if (dev_names) {
|
| - device_name = reinterpret_cast<const wchar_t*>(
|
| - reinterpret_cast<const wchar_t*>(dev_names) +
|
| - dev_names->wDeviceOffset);
|
| - GlobalUnlock(dialog_options.hDevNames);
|
| - }
|
| - }
|
| -
|
| - bool success = false;
|
| - if (dev_mode && !device_name.empty()) {
|
| - set_context(dialog_options.hDC);
|
| - success =
|
| - InitializeSettingsWithRanges(*dev_mode, device_name, NULL, 0, false);
|
| - }
|
| -
|
| - if (!success && dialog_options.hDC) {
|
| - DeleteDC(dialog_options.hDC);
|
| - set_context(NULL);
|
| - }
|
| -
|
| - if (dev_mode) {
|
| - GlobalUnlock(dialog_options.hDevMode);
|
| - }
|
| -
|
| - if (dialog_options.hDevMode != NULL)
|
| - GlobalFree(dialog_options.hDevMode);
|
| - if (dialog_options.hDevNames != NULL)
|
| - GlobalFree(dialog_options.hDevNames);
|
| -
|
| - return context() ? OK : FAILED;
|
| -}
|
| -
|
| } // namespace printing
|
|
|