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

Unified Diff: chrome/browser/ui/webui/print_preview_handler.cc

Issue 8351048: Print Preview: Making margin selection sticky (part 2/2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing some of the comments Created 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/print_preview_handler.h ('k') | printing/page_size_margins.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/print_preview_handler.cc
diff --git a/chrome/browser/ui/webui/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview_handler.cc
index 66e4aa3f243d49b59090e79b268394955acda618..6b346fdb6f006eb549d2bd37521189e1c3e504c2 100644
--- a/chrome/browser/ui/webui/print_preview_handler.cc
+++ b/chrome/browser/ui/webui/print_preview_handler.cc
@@ -50,6 +50,7 @@
#include "printing/metafile.h"
#include "printing/metafile_impl.h"
#include "printing/page_range.h"
+#include "printing/page_size_margins.h"
#include "printing/print_settings.h"
#include "unicode/ulocdata.h"
@@ -206,6 +207,8 @@ printing::ColorModels PrintPreviewHandler::last_used_color_model_ =
printing::UNKNOWN_COLOR_MODEL;
printing::MarginType PrintPreviewHandler::last_used_margins_type_ =
printing::DEFAULT_MARGINS;
+printing::PageSizeMargins*
+ PrintPreviewHandler::last_used_page_size_margins_ = NULL;
PrintPreviewHandler::PrintPreviewHandler()
: print_backend_(printing::PrintBackend::CreateInstance(NULL)),
@@ -271,6 +274,9 @@ void PrintPreviewHandler::RegisterMessages() {
base::Bind(
&PrintPreviewHandler::HandleGetNumberFormatAndMeasurementSystem,
base::Unretained(this)));
+ web_ui_->RegisterMessageCallback("getLastUsedMarginSettings",
+ base::Bind(&PrintPreviewHandler::HandleGetLastUsedMarginSettings,
+ base::Unretained(this)));
}
TabContentsWrapper* PrintPreviewHandler::preview_tab_wrapper() const {
@@ -401,6 +407,11 @@ void PrintPreviewHandler::HandlePrint(const ListValue* args) {
if (!settings->GetInteger(printing::kSettingMarginsType, &margin_type))
margin_type = printing::DEFAULT_MARGINS;
last_used_margins_type_ = static_cast<printing::MarginType>(margin_type);
+ if (last_used_margins_type_ == printing::CUSTOM_MARGINS) {
+ if (!last_used_page_size_margins_)
+ last_used_page_size_margins_ = new printing::PageSizeMargins();
+ getCustomMarginsFromJobSettings(*settings, last_used_page_size_margins_);
+ }
bool print_to_pdf = false;
settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf);
@@ -641,6 +652,30 @@ void PrintPreviewHandler::HandleGetNumberFormatAndMeasurementSystem(
system);
}
+void PrintPreviewHandler::HandleGetLastUsedMarginSettings(
+ const ListValue* /*args*/) {
+ base::FundamentalValue margins_type(
+ PrintPreviewHandler::last_used_margins_type_);
+ if (last_used_margins_type_ == printing::CUSTOM_MARGINS) {
+ DCHECK(last_used_page_size_margins_);
dpapad 2011/11/03 18:48:27 Let me clarify a bit how the 4 margin values are u
+ base::DictionaryValue page_size_margins;
+ page_size_margins.SetDouble(printing::kSettingMarginTop,
+ last_used_page_size_margins_->margin_top);
+ page_size_margins.SetDouble(printing::kSettingMarginBottom,
+ last_used_page_size_margins_->margin_bottom);
+ page_size_margins.SetDouble(printing::kSettingMarginLeft,
+ last_used_page_size_margins_->margin_left);
+ page_size_margins.SetDouble(printing::kSettingMarginRight,
+ last_used_page_size_margins_->margin_right);
+ web_ui_->CallJavascriptFunction("print_preview.setLastUsedMargins",
+ margins_type,
+ page_size_margins);
+ } else {
+ web_ui_->CallJavascriptFunction("print_preview.setLastUsedMargins",
+ margins_type);
+ }
+}
+
void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() {
TabContentsWrapper* initiator_tab = GetInitiatorTab();
if (initiator_tab) {
@@ -660,12 +695,8 @@ void PrintPreviewHandler::SendPrinterCapabilities(
void PrintPreviewHandler::SendDefaultPrinter(
const StringValue& default_printer,
const StringValue& cloud_print_data) {
- base::FundamentalValue margins_type(
- PrintPreviewHandler::last_used_margins_type_);
- web_ui_->CallJavascriptFunction("setDefaultPrinter",
- default_printer,
- cloud_print_data,
- margins_type);
+ web_ui_->CallJavascriptFunction(
+ "setDefaultPrinter", default_printer, cloud_print_data);
}
void PrintPreviewHandler::SetupPrinterList(const ListValue& printers) {
« no previous file with comments | « chrome/browser/ui/webui/print_preview_handler.h ('k') | printing/page_size_margins.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698