From 2f75dcb3e3de9717994e090207a21438add0a42d Mon Sep 17 00:00:00 2001 From: agriyadev5 Date: Tue, 21 Sep 2021 15:50:08 +0530 Subject: [PATCH] #631 main menu image path update changes --- src/editor/MainMenu.js | 4 +++- src/editor/components/seMenuItem.js | 21 ++++++++++++++++--- .../extensions/ext-imagelib/ext-imagelib.js | 1 + .../extensions/ext-opensave/ext-opensave.js | 3 +++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/editor/MainMenu.js b/src/editor/MainMenu.js index 6d4891bb..0b680f5f 100644 --- a/src/editor/MainMenu.js +++ b/src/editor/MainMenu.js @@ -293,7 +293,9 @@ class MainMenu { /** * Associate all button actions as well as non-button keyboard shortcuts. */ - + [ "tool_import", "tool_export", "tool_docprops", "tool_editor_prefs", "tool_editor_homepage" ].forEach((attrId) => + $id(attrId).init(this.editor) + ); $id("tool_import").addEventListener("click", () => { this.clickImport(); window.dispatchEvent(new CustomEvent("importImages")); diff --git a/src/editor/components/seMenuItem.js b/src/editor/components/seMenuItem.js index 3ab19d2c..7297bdf9 100644 --- a/src/editor/components/seMenuItem.js +++ b/src/editor/components/seMenuItem.js @@ -29,6 +29,18 @@ export class SeMenuItem extends HTMLElement { this.$menuitem = this._shadowRoot.querySelector('elix-menu-item'); this.$svg = this.$menuitem.shadowRoot.querySelector('#checkmark'); this.$svg.setAttribute('style', 'display: none;'); + this.editor = null; + } + /** + * @function init + * @param {any} name + * @returns {void} + */ + init (editor) { + this.editor = editor; + if (this.hasAttribute("src")) { + this.setAttribute('src', this.getAttribute("src")); + } } /** * @function observedAttributes @@ -46,11 +58,14 @@ export class SeMenuItem extends HTMLElement { */ attributeChangedCallback (name, oldValue, newValue) { let shortcut = ''; - if (oldValue === newValue) return; + if (oldValue === newValue && name !== 'src') return; switch (name) { case 'src': - this.$img.setAttribute('src', './images/'+newValue); - this.$img.style.display = 'inline-block'; + if(this.editor !== null) { + const { imgPath } = this.editor.configObj.curConfig; + this.$img.style.display = 'inline-block'; + this.$img.setAttribute('src', imgPath + '/' + newValue); + } break; case 'label': shortcut = this.getAttribute('shortcut'); diff --git a/src/editor/extensions/ext-imagelib/ext-imagelib.js b/src/editor/extensions/ext-imagelib/ext-imagelib.js index e9cc44f3..9b64956b 100644 --- a/src/editor/extensions/ext-imagelib/ext-imagelib.js +++ b/src/editor/extensions/ext-imagelib/ext-imagelib.js @@ -530,6 +530,7 @@ export default { $id('tool_imagelib').addEventListener("click", () => { showBrowser(); }); + $id('tool_imagelib').init(svgEditor); const style = document.createElement('style'); style.textContent = '#imgbrowse_holder {' + diff --git a/src/editor/extensions/ext-opensave/ext-opensave.js b/src/editor/extensions/ext-opensave/ext-opensave.js index d042d56a..904f4066 100644 --- a/src/editor/extensions/ext-opensave/ext-opensave.js +++ b/src/editor/extensions/ext-opensave/ext-opensave.js @@ -174,6 +174,9 @@ export default { $id("tool_open").addEventListener("click", clickOpen.bind(this)); $id("tool_save").addEventListener("click", clickSave.bind(this, "save")); $id("tool_save_as").addEventListener("click", clickSave.bind(this, "saveas")); + [ "tool_clear", "tool_open", "tool_save", "tool_save_as" ].forEach((attrId) => + $id(attrId).init(svgEditor) + ); } }; }