loleaflet/src/control/Control.PartsPreview.js | 62 ++++++++++++++++---------- 1 file changed, 39 insertions(+), 23 deletions(-)
New commits: commit 74adf2f61a52f9c13aa1f76ae816143c5038c514 Author: Henry Castro <hcas...@collabora.com> AuthorDate: Tue Oct 29 19:53:24 2019 -0400 Commit: Henry Castro <hcas...@collabora.com> CommitDate: Thu Oct 31 17:10:52 2019 +0100 loleaflet: parameterize the slide preview control in Impress document The initial design of the preview control was singleton object, but now there are new requirements to add a new instance of the preview control to show in dialog wizard. Change-Id: Ieec9dca244a87dd067e6c9e51408258b0f528e74 Reviewed-on: https://gerrit.libreoffice.org/81724 Reviewed-by: Henry Castro <hcas...@collabora.com> Tested-by: Henry Castro <hcas...@collabora.com> diff --git a/loleaflet/src/control/Control.PartsPreview.js b/loleaflet/src/control/Control.PartsPreview.js index 0d909645e..fa476ef3b 100644 --- a/loleaflet/src/control/Control.PartsPreview.js +++ b/loleaflet/src/control/Control.PartsPreview.js @@ -12,10 +12,24 @@ L.Control.PartsPreview = L.Control.extend({ }, partsFocused: false, + initialize: function (container, preview, options) { + L.setOptions(this, options); + + if (!container) { + container = L.DomUtil.get('presentation-controls-wrapper'); + } + + if (!preview) { + preview = L.DomUtil.get('slide-sorter'); + } + + this._container = container; + this._partsPreviewCont = preview; + }, + onAdd: function (map) { this._previewInitialized = false; this._previewTiles = []; - this._partsPreviewCont = L.DomUtil.get('slide-sorter'); this._direction = window.mode.isMobile() ? 'x' : 'y'; this._scrollY = 0; @@ -36,7 +50,7 @@ L.Control.PartsPreview = L.Control.extend({ } if (docType === 'presentation' || docType === 'drawing') { - var presentationControlWrapperElem = L.DomUtil.get('presentation-controls-wrapper'); + var presentationControlWrapperElem = this._container; var visible = L.DomUtil.getStyle(presentationControlWrapperElem, 'display'); if (visible === 'none') return; @@ -45,16 +59,18 @@ L.Control.PartsPreview = L.Control.extend({ // make room for the preview var control = this; var docContainer = this._map.options.documentContainer; - L.DomUtil.addClass(docContainer, 'parts-preview-document'); - setTimeout(L.bind(function () { - this._map.invalidateSize(); - $('.scroll-container').mCustomScrollbar('update'); - }, this), 500); + if (!L.DomUtil.hasClass(docContainer, 'parts-preview-document')) { + L.DomUtil.addClass(docContainer, 'parts-preview-document'); + setTimeout(L.bind(function () { + this._map.invalidateSize(); + $('.scroll-container').mCustomScrollbar('update'); + }, this), 500); + } var previewContBB = this._partsPreviewCont.getBoundingClientRect(); var bottomBound; if (this._direction === 'x') { - $('#presentation-controls-wrapper').css({ width: '100%'}); - $('#slide-sorter').css({ height: this.options.maxHeight + 'px' }); + $(this._container).css({ width: '100%'}); + $(this._partsPreviewCont).css({ height: this.options.maxHeight + 'px' }); this._previewContTop = previewContBB.left; bottomBound = previewContBB.right + previewContBB.width / 2; } else { @@ -62,7 +78,7 @@ L.Control.PartsPreview = L.Control.extend({ bottomBound = previewContBB.bottom + previewContBB.height / 2; } - $('#slide-sorter').mCustomScrollbar({ + $(this._partsPreviewCont).mCustomScrollbar({ axis: this._direction, theme: 'dark-thick', scrollInertia: 0, @@ -91,7 +107,7 @@ L.Control.PartsPreview = L.Control.extend({ } }, this); - this._scrollContainer = $('#slide-sorter .mCSB_container').get(0); + this._scrollContainer = $(this._partsPreviewCont).find('.mCSB_container').get(0); // Add a special frame just as a drop-site for reordering. var frame = L.DomUtil.create('div', 'preview-frame', this._scrollContainer); @@ -222,31 +238,31 @@ L.Control.PartsPreview = L.Control.extend({ if (e === 'prev' || e === 'next') { this._map.setPart(e); var nodePos; - var node = $('#slide-sorter .mCSB_container .preview-frame')[this._map.getCurrentPartNumber()]; + var node = $(this._partsPreviewCont).find('.mCSB_container .preview-frame')[this._map.getCurrentPartNumber()]; if (!isVisible(node)) { if (e === 'prev') { setTimeout(function () { - $('#slide-sorter').mCustomScrollbar('scrollTo', node); + $(this._partsPreviewCont).mCustomScrollbar('scrollTo', node); }, 50); } else if (this._direction === 'x') { var nodeWidth = $(node).width(); - var sliderWidth = $('#slide-sorter').width(); + var sliderWidth = $(this._partsPreviewCont).width(); nodePos = $(node).position().left; setTimeout(function () { - $('#slide-sorter').mCustomScrollbar('scrollTo', nodePos-(sliderWidth-nodeWidth-nodeWidth/2)); + $(this._partsPreviewCont).mCustomScrollbar('scrollTo', nodePos-(sliderWidth-nodeWidth-nodeWidth/2)); }, 50); } else { var nodeHeight = $(node).height(); - var sliderHeight= $('#slide-sorter').height(); + var sliderHeight= $(this._partsPreviewCont).height(); nodePos = $(node).position().top; setTimeout(function () { - $('#slide-sorter').mCustomScrollbar('scrollTo', nodePos-(sliderHeight-nodeHeight-nodeHeight/2)); + $(this._partsPreviewCont).mCustomScrollbar('scrollTo', nodePos-(sliderHeight-nodeHeight-nodeHeight/2)); }, 50); } } return; } - var part = $('#slide-sorter .mCSB_container .preview-frame').index(e.target.parentNode); + var part = $(this._partsPreviewCont).find('.mCSB_container .preview-frame').index(e.target.parentNode); if (part !== null) { var partId = parseInt(part) - 1; // The first part is just a drop-site for reordering. @@ -335,7 +351,7 @@ L.Control.PartsPreview = L.Control.extend({ }, _updatePreviewIds: function () { - $('#slide-sorter').mCustomScrollbar('update'); + $(this._partsPreviewCont).mCustomScrollbar('update'); }, _insertPreview: function (e) { @@ -412,7 +428,7 @@ L.Control.PartsPreview = L.Control.extend({ _handleDragStart: function (e) { // To avoid having to add a new message to move an arbitrary part, let's select the // slide that is being dragged. - var part = $('#slide-sorter .mCSB_container .preview-frame').index(e.target.parentNode); + var part = $(this._partsPreviewCont).find('.mCSB_container .preview-frame').index(e.target.parentNode); if (part !== null) { var partId = parseInt(part) - 1; // The first part is just a drop-site for reordering. this.partsPreview._map.setPart(partId); @@ -448,7 +464,7 @@ L.Control.PartsPreview = L.Control.extend({ e.stopPropagation(); } - var part = $('#slide-sorter .mCSB_container .preview-frame').index(e.target.parentNode); + var part = $(this._partsPreviewCont).find('.mCSB_container .preview-frame').index(e.target.parentNode); if (part !== null) { var partId = parseInt(part) - 1; // First frame is a drop-site for reordering. if (partId < 0) @@ -473,6 +489,6 @@ L.Control.PartsPreview = L.Control.extend({ }); -L.control.partsPreview = function (options) { - return new L.Control.PartsPreview(options); +L.control.partsPreview = function (container, preview, options) { + return new L.Control.PartsPreview(container, preview, options); }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits