cypress_test/integration_tests/common/helper.js | 17 + cypress_test/integration_tests/desktop/writer/form_field_spec.js | 89 ++++++++++ loleaflet/src/layer/FormFieldButtonLayer.js | 9 - 3 files changed, 112 insertions(+), 3 deletions(-)
New commits: commit 18325d8889f716ac5c5b243dfb27a43761ff49ef Author: Tamás Zolnai <[email protected]> AuthorDate: Mon May 18 13:16:15 2020 +0200 Commit: Tamás Zolnai <[email protected]> CommitDate: Mon May 18 18:41:48 2020 +0200 MSForms: make list items's font size relative to the button size. Change-Id: I05149e704ca248584ba190f2e637e69082ca33fa Reviewed-on: https://gerrit.libreoffice.org/c/online/+/94420 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Tamás Zolnai <[email protected]> diff --git a/cypress_test/integration_tests/common/helper.js b/cypress_test/integration_tests/common/helper.js index 8d68cfb38..b2053c4a7 100644 --- a/cypress_test/integration_tests/common/helper.js +++ b/cypress_test/integration_tests/common/helper.js @@ -188,6 +188,22 @@ function initAliasToNegative(aliasName) { cy.log('Initializing alias to a negative value - end.'); } +function initAliasToEmptyString(aliasName) { + cy.log('Initializing alias to empty string - start.'); + cy.log('Param - aliasName: ' + aliasName); + + // Do an empty slice to generate empty string + cy.get('#copy-paste-container') + .invoke('css', 'display') + .invoke('slice', '0', '0') + .as(aliasName); + + cy.get('@' + aliasName) + .should('be.equal', ''); + + cy.log('Initializing alias to empty string - end.'); +} + function isCalc() { return Cypress.$('.spreadsheet-header-columns').length != 0; } @@ -221,6 +237,7 @@ module.exports.clearAllText = clearAllText; module.exports.expectTextForClipboard = expectTextForClipboard; module.exports.afterAll = afterAll; module.exports.initAliasToNegative = initAliasToNegative; +module.exports.initAliasToEmptyString = initAliasToEmptyString; module.exports.isCalc = isCalc; module.exports.isImpress = isImpress; module.exports.isWriter = isWriter; diff --git a/cypress_test/integration_tests/desktop/writer/form_field_spec.js b/cypress_test/integration_tests/desktop/writer/form_field_spec.js index 1d2528472..6aba35888 100644 --- a/cypress_test/integration_tests/desktop/writer/form_field_spec.js +++ b/cypress_test/integration_tests/desktop/writer/form_field_spec.js @@ -315,5 +315,75 @@ describe('Form field button tests.', function() { cy.contains('#tb_actionbar_item_zoom', '120') .should('exist'); }); + + it.skip('Test dynamic font size.', function() { + helper.loadTestDoc('form_field.odt', 'writer'); + + // Move the cursor next to the form field + cy.get('textarea.clipboard') + .type('{rightArrow}'); + + buttonShouldExist(); + + // Get the initial font size from the style + helper.initAliasToEmptyString('prevFontSize'); + + cy.get('.drop-down-field-list-item') + .invoke('css', 'font-size') + .as('prevFontSize'); + + cy.get('@prevFontSize') + .should('not.be.equal', ''); + + // Do a zoom in + cy.get('#tb_actionbar_item_zoom') + .click(); + + cy.contains('.menu-text', '280') + .click(); + + cy.contains('#tb_actionbar_item_zoom', '280') + .should('exist'); + + buttonShouldExist(); + + // Check that the font size was changed + cy.get('@prevFontSize') + .then(function(prevFontSize) { + cy.get('.drop-down-field-list-item') + .should(function(items) { + var prevSize = parseInt(prevFontSize, 10); + var currentSize = parseInt(items.css('font-size'), 10); + expect(currentSize).to.be.greaterThan(prevSize); + }); + }); + + cy.get('.drop-down-field-list-item') + .invoke('css', 'font-size') + .as('prevFontSize'); + + // Do a zoom out + cy.get('#tb_actionbar_item_zoom') + .click(); + + cy.contains('.menu-text', '85') + .click(); + + cy.contains('#tb_actionbar_item_zoom', '85') + .should('exist'); + + buttonShouldExist(); + + // Check that the font size was changed + cy.get('@prevFontSize') + .then(function(prevFontSize) { + cy.get('.drop-down-field-list-item') + .should(function(items) { + var prevSize = parseInt(prevFontSize, 10); + var currentSize = parseInt(items.css('font-size'), 10); + expect(currentSize).to.be.lessThan(prevSize); + }); + }); + }); }); diff --git a/loleaflet/src/layer/FormFieldButtonLayer.js b/loleaflet/src/layer/FormFieldButtonLayer.js index 42f4d5ff8..9db313c36 100644 --- a/loleaflet/src/layer/FormFieldButtonLayer.js +++ b/loleaflet/src/layer/FormFieldButtonLayer.js @@ -109,17 +109,18 @@ L.FormFieldButton = L.Layer.extend({ var selected = parseInt(this._buttonData.params.selected); for (var i = 0; i < itemList.length; ++i) { - this._buildListItem(dropDownList, itemList[i], i === selected); + this._buildListItem(dropDownList, itemList[i], frameHeight, i === selected); } if (this._buttonData.params.items.length === 0) { - this._buildListItem(dropDownList, this._buttonData.params.placeholderText, false); + this._buildListItem(dropDownList, this._buttonData.params.placeholderText, frameHeight, false); } }, - _buildListItem: function(parent, text, selected) { + _buildListItem: function(parent, text, frameHeight, selected) { var option = L.DomUtil.create('div', 'drop-down-field-list-item', parent); option.innerHTML = text; + option.style.fontSize = frameHeight * 0.7 + 'px'; option.addEventListener('click', this._onListItemSelect); option.map = this.map; commit 43d1567b9d53e5841621b283415a768aa75ec747 Author: Tamás Zolnai <[email protected]> AuthorDate: Mon May 18 12:41:08 2020 +0200 Commit: Tamás Zolnai <[email protected]> CommitDate: Mon May 18 18:41:37 2020 +0200 MSForms: stop listening on zoom events after button is removed. Change-Id: I96e484b5fa7309b7d1a6f0a3ec4269f21bb93496 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/94410 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Tamás Zolnai <[email protected]> diff --git a/cypress_test/integration_tests/desktop/writer/form_field_spec.js b/cypress_test/integration_tests/desktop/writer/form_field_spec.js index a1554fa3b..1d2528472 100644 --- a/cypress_test/integration_tests/desktop/writer/form_field_spec.js +++ b/cypress_test/integration_tests/desktop/writer/form_field_spec.js @@ -295,6 +295,25 @@ describe('Form field button tests.', function() { .should('exist'); buttonShouldExist(); + + // Now check that event listener does not do + // anything stupid after the button is removed. + + // Move the cursor away from the field + cy.get('textarea.clipboard') + .type('{leftArrow}'); + + buttonShouldNotExist(); + + // Do a zoom in again + cy.get('#tb_actionbar_item_zoom') + .click(); + + cy.contains('.menu-text', '120') + .click(); + + cy.contains('#tb_actionbar_item_zoom', '120') + .should('exist'); }); }); diff --git a/loleaflet/src/layer/FormFieldButtonLayer.js b/loleaflet/src/layer/FormFieldButtonLayer.js index a8c268872..42f4d5ff8 100644 --- a/loleaflet/src/layer/FormFieldButtonLayer.js +++ b/loleaflet/src/layer/FormFieldButtonLayer.js @@ -135,6 +135,8 @@ L.FormFieldButton = L.Layer.extend({ onRemove: function () { this._clearButton(); + this.map.off('zoomstart', this._onZoomStart, this); + this.map.off('zoomend', this._onZoomEnd, this); }, _onClickDropDown: function(event) { _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
