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

Unified Diff: chrome/browser/resources/print_preview/margin_settings.js

Issue 8564040: Revert 110035 - Print Preview: Making margin selection sticky (part 2/2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: 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
Index: chrome/browser/resources/print_preview/margin_settings.js
===================================================================
--- chrome/browser/resources/print_preview/margin_settings.js (revision 110039)
+++ chrome/browser/resources/print_preview/margin_settings.js (working copy)
@@ -40,8 +40,6 @@
* @return {boolean} true if they are equal.
*/
isEqual: function(rhs) {
- if (!rhs)
- return false;
return this[MarginSettings.TOP_GROUP] === rhs[MarginSettings.TOP_GROUP] &&
this[MarginSettings.LEFT_GROUP] === rhs[MarginSettings.LEFT_GROUP] &&
this[MarginSettings.RIGHT_GROUP] ===
@@ -50,11 +48,15 @@
rhs[MarginSettings.BOTTOM_GROUP];
},
- clone: function() {
- return new Margins(this[MarginSettings.TOP_GROUP],
- this[MarginSettings.LEFT_GROUP],
- this[MarginSettings.RIGHT_GROUP],
- this[MarginSettings.BOTTOM_GROUP]);
+ /**
+ * Copies the four margin values from |rhs|.
+ * @param {Margins} rhs The Margins object values to be used.
+ */
+ copy: function(rhs) {
+ this[MarginSettings.TOP_GROUP] = rhs[MarginSettings.TOP_GROUP];
+ this[MarginSettings.LEFT_GROUP] = rhs[MarginSettings.LEFT_GROUP];
+ this[MarginSettings.RIGHT_GROUP] = rhs[MarginSettings.RIGHT_GROUP];
+ this[MarginSettings.BOTTOM_GROUP] = rhs[MarginSettings.BOTTOM_GROUP];
},
/**
@@ -91,7 +93,6 @@
this.contentWidth_ = width;
this.contentHeight_ = height;
this.margins_ = new Margins(left, top, right, bottom);
- this.margins_.roundToLocaleUnits();
}
PageLayout.prototype = {
@@ -121,18 +122,21 @@
this.marginsUI_ = null;
// Holds the custom margin values in points (if set).
- this.customMargins_ = null;
+ this.customMargins_ = new Margins(-1, -1, -1, -1);
// Holds the previous custom margin values in points.
- this.previousCustomMargins_ = null;
+ this.previousCustomMargins_ = new Margins(-1, -1, -1, -1);
// Holds the width of the page in points.
this.pageWidth_ = -1;
// Holds the height of the page in points.
this.pageHeight_ = -1;
- // @type {boolean} True if the margins UI should be diplayed when the next
- // |customEvents.PDF_LOADED| event occurs.
- this.forceMarginsUIOnPDFLoad_ = false;
+ // The last selected margin option.
+ this.lastSelectedOption_ = MarginSettings.MARGINS_VALUE_DEFAULT;
+
// Holds the currently updated default page layout values.
this.currentDefaultPageLayout = null;
+ // Holds the default page layout values when the custom margins was last
+ // selected.
+ this.previousDefaultPageLayout_ = null;
// True if the margins UI should be shown regardless of mouse position.
this.forceDisplayingMarginLines_ = true;
@@ -199,19 +203,6 @@
},
/**
- * Sets |this.customMargins_| according to |margins|.
- * @param {{marginLeft: number, marginTop: number, marginRight: number,
- * marginBottom: number}} margins An object holding the four margin
- * values.
- */
- set customMargins(margins) {
- this.customMargins_.left = margins.marginLeft;
- this.customMargins_.top = margins.marginTop;
- this.customMargins_.right = margins.marginRight;
- this.customMargins_.bottom = margins.marginBottom;
- },
-
- /**
* @return {number} The value of the selected margin option.
*/
get selectedMarginsValue() {
@@ -220,26 +211,13 @@
},
/**
- * Sets the current margin selection to |lastUsedMarginType|.
- * @param {number} lastUsedMarginType An integer value identifying a margin
+ * Sets the current margin selection to |lastUsedMarginsType|.
+ * @param {number} lastUsedMarginsType An integer value identifying a margin
* type according to MarginType enum in printing/print_job_constants.h.
- * @param {Object} lastUsedCustomMargins The last used custom margins. If
- * custom margins have not been used before
- * |margin{Top|Bottom|Left|Right}| attributes are missing.
*/
- setLastUsedMargins: function(lastUsedMarginsSettings) {
- var lastUsedMarginsType = lastUsedMarginsSettings['marginsType']
- this.forceMarginsUIOnPDFLoad_ =
- lastUsedMarginsType == MarginSettings.MARGINS_VALUE_CUSTOM;
+ setLastUsedMarginsType: function(lastUsedMarginsType) {
this.marginList_.selectedIndex =
this.getMarginOptionIndexByValue_(lastUsedMarginsType);
- if (lastUsedMarginsSettings.hasOwnProperty('marginTop') &&
- lastUsedMarginsSettings.hasOwnProperty('marginBottom') &&
- lastUsedMarginsSettings.hasOwnProperty('marginRight') &&
- lastUsedMarginsSettings.hasOwnProperty('marginLeft')) {
- this.customMargins_ = new Margins(-1, -1, -1 , -1);
- this.customMargins = lastUsedMarginsSettings;
- }
},
/**
@@ -312,11 +290,9 @@
requestPreviewIfNeeded_: function() {
if (!this.areMarginSettingsValid())
return;
-
if (this.customMargins_.isEqual(this.previousCustomMargins_))
return;
-
- this.previousCustomMargins_ = this.customMargins_.clone();
+ this.previousCustomMargins_.copy(this.customMargins_);
setDefaultValuesAndRegeneratePreview(false);
},
@@ -326,8 +302,6 @@
* @private
*/
onSidebarMouseOver_: function(e) {
- $('mainview').onmouseover = this.onMainviewMouseOver_.bind(this);
- $('navbar-container').onmouseover = null;
if (!this.forceDisplayingMarginLines_)
this.marginsUI.hide(false);
},
@@ -338,8 +312,6 @@
* @private
*/
onMainviewMouseOver_: function() {
- $('mainview').onmouseover = null;
- $('navbar-container').onmouseover = this.onSidebarMouseOver_.bind(this);
this.forceDisplayingMarginLines_ = false;
this.marginsUI.show();
},
@@ -396,7 +368,7 @@
* @return {boolean} True if the margin settings are valid.
*/
areMarginSettingsValid: function() {
- if (!this.isCustomMarginsSelected() || !this.marginsUI_)
+ if (this.marginsUI_ == null)
return true;
var pairs = this.marginsUI.pairsAsList;
@@ -502,8 +474,6 @@
* @private
*/
removeCustomMarginEventListeners_: function() {
- if (!this.marginsUI_)
- return;
$('mainview').onmouseover = null;
$('navbar-container').onmouseover = null;
this.eventTracker_.remove(this.marginsUI, customEvents.MARGIN_LINE_DRAG);
@@ -562,6 +532,8 @@
this.onDefaultMinimumNoMarginsSelected_();
else if (this.isCustomMarginsSelected())
this.onCustomMarginsSelected_();
+
+ this.lastSelectedOption_ = this.selectedMarginsValue;
},
/**
@@ -571,7 +543,6 @@
onDefaultMinimumNoMarginsSelected_: function() {
this.removeCustomMarginEventListeners_();
this.forceDisplayingMarginLines_ = true;
- this.previousCustomMargins_ = null;
setDefaultValuesAndRegeneratePreview(false);
},
@@ -580,18 +551,20 @@
* @private
*/
onCustomMarginsSelected_: function() {
- var customMarginsNotSpecified = !this.customMargins_;
- this.updatePageData_();
+ this.addCustomMarginEventListeners_();
- if (customMarginsNotSpecified) {
- this.previousCustomMargins_ = this.customMargins_.clone();
- this.drawCustomMarginsUI_();
- this.addCustomMarginEventListeners_();
- this.marginsUI.show();
- } else {
- this.forceMarginsUIOnPDFLoad_ = true;
- this.requestPreviewIfNeeded_();
+ this.customMargins_ = this.currentDefaultPageLayout.margins_;
+ this.customMargins_.roundToLocaleUnits();
+ this.previousCustomMargins_.copy(this.customMargins_);
+
+ if (this.previousDefaultPageLayout_ != this.currentDefaultPageLayout) {
+ this.pageWidth_ = this.currentDefaultPageLayout.pageWidth;
+ this.pageHeight_ = this.currentDefaultPageLayout.pageHeight;
}
+
+ this.previousDefaultPageLayout_ = this.currentDefaultPageLayout;
+ this.drawCustomMarginsUI_();
+ this.marginsUI.show();
},
/**
@@ -654,8 +627,7 @@
MarginSettings.OPTION_INDEX_DEFAULT].selected = true;
this.removeCustomMarginEventListeners_();
this.forceDisplayingMarginLines_ = true;
- this.customMargins_ = null;
- this.previousCustomMargins_ = null;
+ this.lastSelectedOption_ = MarginSettings.MARGINS_VALUE_DEFAULT;
}
},
@@ -664,35 +636,15 @@
* @private
*/
onPDFLoaded_: function() {
- if (!previewModifiable) {
+ if (!previewModifiable)
fadeOutOption(this.marginsOption_);
- return;
- }
-
- if (this.forceMarginsUIOnPDFLoad_) {
- this.updatePageData_();
- this.drawCustomMarginsUI_();
- this.addCustomMarginEventListeners_();
- this.marginsUI.show();
- this.forceMarginsUIOnPDFLoad_ = false;
- }
- },
-
- /**
- * Updates |this.customMargins_|, |this.pageWidth_|, |this.pageHeight_|.
- * @private
- */
- updatePageData_: function() {
- if (!this.customMargins_)
- this.customMargins_ = this.currentDefaultPageLayout.margins_.clone();
-
- this.pageWidth_ = this.currentDefaultPageLayout.pageWidth;
- this.pageHeight_ = this.currentDefaultPageLayout.pageHeight;
}
};
return {
MarginSettings: MarginSettings,
PageLayout: PageLayout,
+ setNumberFormatAndMeasurementSystem:
+ MarginSettings.setNumberFormatAndMeasurementSystem,
};
});
« no previous file with comments | « chrome/browser/printing/print_system_task_proxy.cc ('k') | chrome/browser/resources/print_preview/print_preview.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698