summaryrefslogtreecommitdiffstats
path: root/printing
diff options
context:
space:
mode:
authorkmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-31 16:12:36 +0000
committerkmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-31 16:12:36 +0000
commit37a401bfb45cf6d197c7bfa23f6f2dc73800d206 (patch)
treeebfcc300a5c1bc33fd77fc4ebf3a2515753457e7 /printing
parent92acf3449e8092146151cef5ffee6a05d25b46bd (diff)
downloadchromium_src-37a401bfb45cf6d197c7bfa23f6f2dc73800d206.zip
chromium_src-37a401bfb45cf6d197c7bfa23f6f2dc73800d206.tar.gz
chromium_src-37a401bfb45cf6d197c7bfa23f6f2dc73800d206.tar.bz2
PrintPreview: Added a helper function to get print job settings from dictionary.
BUG=none TEST=none Review URL: http://codereview.chromium.org/6758014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80008 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing')
-rw-r--r--printing/printing_context.cc18
-rw-r--r--printing/printing_context.h7
-rw-r--r--printing/printing_context_cairo.cc5
-rw-r--r--printing/printing_context_mac.mm9
-rw-r--r--printing/printing_context_win.cc4
5 files changed, 31 insertions, 12 deletions
diff --git a/printing/printing_context.cc b/printing/printing_context.cc
index bc9ba21..390d8f0 100644
--- a/printing/printing_context.cc
+++ b/printing/printing_context.cc
@@ -1,9 +1,12 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "printing/printing_context.h"
+#include "base/values.h"
+#include "printing/print_job_constants.h"
+
namespace printing {
PrintingContext::PrintingContext(const std::string& app_locale)
@@ -26,6 +29,19 @@ void PrintingContext::ResetSettings() {
abort_printing_ = false;
}
+bool PrintingContext::GetSettingsFromDict(const DictionaryValue& settings,
+ bool* landscape,
+ std::string* printerName) {
+ bool ret = true;
+ if (landscape)
+ ret &= settings.GetBoolean(kSettingLandscape, landscape);
+
+ if (printerName)
+ ret &= settings.GetString(kSettingPrinterName, printerName);
+
+ return ret;
+}
+
PrintingContext::Result PrintingContext::OnError() {
ResetSettings();
return abort_printing_ ? CANCEL : FAILED;
diff --git a/printing/printing_context.h b/printing/printing_context.h
index c4e2094..0a30cea 100644
--- a/printing/printing_context.h
+++ b/printing/printing_context.h
@@ -104,6 +104,13 @@ class PrintingContext {
// Reinitializes the settings for object reuse.
void ResetSettings();
+ // Extracts print job settings from |settings|. Out parameters can be NULL.
+ // Returns true if all non-NULL out parameters are successfully extracted
+ // from |settings| else returns false.
+ bool GetSettingsFromDict(const DictionaryValue& settings,
+ bool* landscape,
+ std::string* printerName);
+
// Does bookkeeping when an error occurs.
PrintingContext::Result OnError();
diff --git a/printing/printing_context_cairo.cc b/printing/printing_context_cairo.cc
index c721e3d..17e7885 100644
--- a/printing/printing_context_cairo.cc
+++ b/printing/printing_context_cairo.cc
@@ -6,7 +6,6 @@
#include "base/logging.h"
#include "base/values.h"
-#include "printing/print_job_constants.h"
#include "printing/print_settings_initializer_gtk.h"
#include "printing/units.h"
@@ -154,10 +153,10 @@ PrintingContext::Result PrintingContextCairo::UpdatePrintSettings(
DCHECK(!in_print_job_);
bool landscape;
- if (!job_settings.GetBoolean(kSettingLandscape, &landscape))
+ if (!GetSettingsFromDict(job_settings, &landscape, NULL))
return OnError();
- settings_.SetOrientation(landscape);
+ settings_.SetOrientation(landscape);
settings_.ranges = ranges;
// TODO(kmadhusu): Update other print settings such as number of copies,
diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm
index cf6ea9f..9357e77 100644
--- a/printing/printing_context_mac.mm
+++ b/printing/printing_context_mac.mm
@@ -11,7 +11,6 @@
#include "base/mac/scoped_cftyperef.h"
#include "base/sys_string_conversions.h"
#include "base/values.h"
-#include "printing/print_job_constants.h"
#include "printing/print_settings_initializer_mac.h"
namespace printing {
@@ -93,14 +92,12 @@ PrintingContext::Result PrintingContextMac::UpdatePrintSettings(
print_info_.reset([[NSPrintInfo sharedPrintInfo] copy]);
bool landscape;
- if (!job_settings.GetBoolean(kSettingLandscape, &landscape))
- return OnError();
- settings_.SetOrientation(landscape);
-
std::string printer_name;
- if (!job_settings.GetString(kSettingPrinterName, &printer_name))
+ if (!GetSettingsFromDict(job_settings, &landscape, &printer_name))
return OnError();
+ settings_.SetOrientation(landscape);
+
if (!SetPrinter(printer_name))
return OnError();
diff --git a/printing/printing_context_win.cc b/printing/printing_context_win.cc
index d410f31..b1b8ba9 100644
--- a/printing/printing_context_win.cc
+++ b/printing/printing_context_win.cc
@@ -12,7 +12,6 @@
#include "base/time.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
-#include "printing/print_job_constants.h"
#include "printing/print_settings_initializer_win.h"
#include "printing/printed_document.h"
#include "skia/ext/platform_device_win.h"
@@ -215,8 +214,9 @@ PrintingContext::Result PrintingContextWin::UpdatePrintSettings(
DCHECK(!in_print_job_);
bool landscape;
- if (!job_settings.GetBoolean(kSettingLandscape, &landscape))
+ if (!GetSettingsFromDict(job_settings, &landscape, NULL))
return OnError();
+
settings_.SetOrientation(landscape);
// TODO(kmadhusu): Update other print settings such as number of copies,