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

Unified Diff: chrome/browser/resources/print_preview/settings/other_options_settings.js

Issue 1125343004: Add a "Simplify Page" option to the print preview dialog (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More refactors and remove tab_helpers dependency Created 5 years, 5 months 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
Index: chrome/browser/resources/print_preview/settings/other_options_settings.js
diff --git a/chrome/browser/resources/print_preview/settings/other_options_settings.js b/chrome/browser/resources/print_preview/settings/other_options_settings.js
index dd8a3fde574580ca9e320380906c76beea715658..cf77a58380fcfdc0b35377b161500d4f4d282eed 100644
--- a/chrome/browser/resources/print_preview/settings/other_options_settings.js
+++ b/chrome/browser/resources/print_preview/settings/other_options_settings.js
@@ -16,11 +16,14 @@ cr.define('print_preview', function() {
* only ticket item.
* @param {!print_preview.ticket_items.HeaderFooter} headerFooter Header
* footer ticket item.
+ * @param {!print_preview.ticket_items.DistillPage} distillPage Print
+ * distill page ticket item.
* @constructor
* @extends {print_preview.SettingsSection}
*/
function OtherOptionsSettings(
- duplex, fitToPage, cssBackground, selectionOnly, headerFooter) {
+ duplex, fitToPage, cssBackground, selectionOnly,
+ headerFooter, distillPage) {
print_preview.SettingsSection.call(this);
/**
@@ -59,6 +62,27 @@ cr.define('print_preview', function() {
this.headerFooterTicketItem_ = headerFooter;
/**
+ * Distill page ticket item, used to read/write.
+ * @type {!print_preview.ticket_items.DistillPage}
+ * @private
+ */
+ this.distillPageTicketItem_ = distillPage;
+
+ /**
+ * Distill page container element.
+ * @type {HTMLElement}
+ * @private
+ */
+ this.distillPageContainer_ = null;
+
+ /**
+ * Distill page checkbox.
+ * @type {HTMLInputElement}
+ * @private
+ */
+ this.distillPageCheckbox_ = null;
+
+ /**
* Header footer container element.
* @type {HTMLElement}
* @private
@@ -134,7 +158,8 @@ cr.define('print_preview', function() {
/** @override */
isAvailable: function() {
- return this.headerFooterTicketItem_.isCapabilityAvailable() ||
+ return this.distillPageTicketItem_.isCapabilityAvailable() ||
+ this.headerFooterTicketItem_.isCapabilityAvailable() ||
this.fitToPageTicketItem_.isCapabilityAvailable() ||
this.duplexTicketItem_.isCapabilityAvailable() ||
this.cssBackgroundTicketItem_.isCapabilityAvailable() ||
@@ -154,6 +179,7 @@ cr.define('print_preview', function() {
this.headerFooterCheckbox_.disabled = !isEnabled;
this.fitToPageCheckbox_.disabled = !isEnabled;
this.duplexCheckbox_.disabled = !isEnabled;
+ this.distillPageCheckbox_.disabled = !isEnabled;
this.cssBackgroundCheckbox_.disabled = !isEnabled;
},
@@ -161,6 +187,10 @@ cr.define('print_preview', function() {
enterDocument: function() {
print_preview.SettingsSection.prototype.enterDocument.call(this);
this.tracker.add(
+ this.distillPageCheckbox_,
+ 'click',
+ this.onDistillPageCheckboxClick_.bind(this));
+ this.tracker.add(
this.headerFooterCheckbox_,
'click',
this.onHeaderFooterCheckboxClick_.bind(this));
@@ -200,11 +230,17 @@ cr.define('print_preview', function() {
this.headerFooterTicketItem_,
print_preview.ticket_items.TicketItem.EventType.CHANGE,
this.onHeaderFooterChange_.bind(this));
+ this.tracker.add(
+ this.distillPageTicketItem_,
+ print_preview.ticket_items.TicketItem.EventType.CHANGE,
+ this.onDistillPageChange_.bind(this));
},
/** @override */
exitDocument: function() {
print_preview.SettingsSection.prototype.exitDocument.call(this);
+ this.distillPageContainer_ = null;
+ this.distillPageCheckbox_ = null;
this.headerFooterContainer_ = null;
this.headerFooterCheckbox_ = null;
this.fitToPageContainer_ = null;
@@ -219,6 +255,10 @@ cr.define('print_preview', function() {
/** @override */
decorateInternal: function() {
+ this.distillPageContainer_ = this.getElement().querySelector(
+ '.distill-page-container');
+ this.distillPageCheckbox_ = this.distillPageContainer_.querySelector(
+ '.distill-page-checkbox');
this.headerFooterContainer_ = this.getElement().querySelector(
'.header-footer-container');
this.headerFooterCheckbox_ = this.headerFooterContainer_.querySelector(
@@ -244,6 +284,8 @@ cr.define('print_preview', function() {
/** @override */
updateUiStateInternal: function() {
if (this.isAvailable()) {
+ setIsVisible(this.distillPageContainer_,
+ this.distillPageTicketItem_.isCapabilityAvailable());
setIsVisible(this.headerFooterContainer_,
this.headerFooterTicketItem_.isCapabilityAvailable() &&
!this.collapseContent);
@@ -264,11 +306,25 @@ cr.define('print_preview', function() {
/** @override */
isSectionVisibleInternal: function() {
- return this.collapseContent ?
- this.duplexTicketItem_.isCapabilityAvailable() : this.isAvailable();
+ if (this.collapseContent) {
+ return this.distillPageTicketItem_.isCapabilityAvailable() ||
+ this.duplexTicketItem_.isCapabilityAvailable();
+ }
+
+ return this.isAvailable();
},
/**
+ * Called when the distill-page checkbox is clicked. Updates the print
+ * ticket.
+ * @private
+ */
+ onDistillPageCheckboxClick_: function() {
+ this.distillPageTicketItem_.updateValue(
+ this.distillPageCheckbox_.checked);
+ },
+
+ /**
* Called when the header-footer checkbox is clicked. Updates the print
* ticket.
* @private
@@ -366,6 +422,17 @@ cr.define('print_preview', function() {
this.headerFooterCheckbox_.checked =
this.headerFooterTicketItem_.getValue();
this.updateUiStateInternal();
+ },
+
+ /**
+ * Called when the distill-page ticket item has changed. Updates the
+ * distill-page checkbox.
+ * @private
+ */
+ onDistillPageChange_: function() {
+ this.distillPageCheckbox_.checked =
+ this.distillPageTicketItem_.getValue();
+ this.updateUiStateInternal();
}
};

Powered by Google App Engine
This is Rietveld 408576698