From f0e4407f440279a023e294c9bd06f420c1c22042 Mon Sep 17 00:00:00 2001
From: JFH <20402845+jfhenon@users.noreply.github.com>
Date: Sun, 10 Dec 2023 10:52:20 +0100
Subject: [PATCH] Fix export (#936)
* fix export
* improve dialog and fix quality
---
packages/svgcanvas/core/svg-exec.js | 2 +-
src/editor/Editor.js | 7 ++-----
src/editor/MainMenu.js | 24 ------------------------
src/editor/dialogs/exportDialog.html | 18 ++++--------------
src/editor/dialogs/exportDialog.js | 10 +++-------
src/editor/locale/lang.fr.js | 2 +-
6 files changed, 11 insertions(+), 52 deletions(-)
diff --git a/packages/svgcanvas/core/svg-exec.js b/packages/svgcanvas/core/svg-exec.js
index b74134f8..e22f9774 100644
--- a/packages/svgcanvas/core/svg-exec.js
+++ b/packages/svgcanvas/core/svg-exec.js
@@ -896,7 +896,7 @@ const rasterExport = async (imgType, quality, WindowName, opts = {}) => {
WindowName
}
if (!opts.avoidEvent) {
- svgCanvas.call('ed', obj)
+ svgCanvas.call('exported', obj)
}
resolve(obj)
}
diff --git a/src/editor/Editor.js b/src/editor/Editor.js
index 0d64b102..cc314893 100644
--- a/src/editor/Editor.js
+++ b/src/editor/Editor.js
@@ -28,7 +28,7 @@ import LayersPanel from './panels/LayersPanel.js'
import MainMenu from './MainMenu.js'
import { getParentsUntil } from '@svgedit/svgcanvas/common/util.js'
-const { $id, $click, decode64, blankPageObjectURL } = SvgCanvas
+const { $id, $click, decode64 } = SvgCanvas
/**
*
@@ -295,9 +295,7 @@ class Editor extends EditorStartup {
*/
exportHandler (win, data) {
const { issues, exportWindowName } = data
-
- this.exportWindow = window.open(blankPageObjectURL || '', exportWindowName) // A hack to get the window via JSON-able name without opening a new one
-
+ this.exportWindow = window.open('', exportWindowName) // A hack to get the window via JSON-able name without opening a new one
if (!this.exportWindow || this.exportWindow.closed) {
seAlert(this.i18next.t('notification.popupWindowBlocked'))
return
@@ -319,7 +317,6 @@ class Editor extends EditorStartup {
pre +
issues.join(pre)
}
-
// Note that this will also prevent the notice even though new issues may appear later.
// May want to find a way to deal with that without annoying the user
this.configObj.pref('export_notice_done', 'all')
diff --git a/src/editor/MainMenu.js b/src/editor/MainMenu.js
index 91ab09f7..2eeef52b 100644
--- a/src/editor/MainMenu.js
+++ b/src/editor/MainMenu.js
@@ -129,35 +129,11 @@ class MainMenu {
* @returns {void}
*/
const openExportWindow = () => {
- const loadingImage = this.editor.i18next.t('notification.loadingImage')
if (this.editor.configObj.curConfig.exportWindowType === 'new') {
this.editor.exportWindowCt++
}
this.editor.exportWindowName =
this.editor.configObj.curConfig.canvasName + this.editor.exportWindowCt
- let popHTML; let popURL
- if (this.editor.loadingURL) {
- popURL = this.editor.loadingURL
- } else {
- popHTML = `
-
-
- ${loadingImage}
-
- ${loadingImage}
- `
- if (URL?.createObjectURL) {
- const blob = new Blob([popHTML], { type: 'text/html' })
- popURL = URL.createObjectURL(blob)
- } else {
- popURL = 'data:text/html;base64;charset=utf-8,' + popHTML
- }
- this.editor.loadingURL = popURL
- }
- this.editor.exportWindow = window.open(
- popURL,
- this.editor.exportWindowName
- )
}
const chrome = isChrome()
if (imgType === 'PDF') {
diff --git a/src/editor/dialogs/exportDialog.html b/src/editor/dialogs/exportDialog.html
index 41c5bb58..7c2fc657 100644
--- a/src/editor/dialogs/exportDialog.html
+++ b/src/editor/dialogs/exportDialog.html
@@ -3,7 +3,6 @@
margin: 10px 10px 5px 10px;
background: #5a6162;
overflow: auto;
- text-align: left;
border: 1px solid #c8c8c8;
}
@@ -12,6 +11,7 @@
#dialog_content label {
margin: 10px;
line-height: 0.3em;
+ color: #fff
}
#dialog_container {
@@ -56,19 +56,9 @@
-
-
-
-
-
-
-
+
+
+
diff --git a/src/editor/dialogs/exportDialog.js b/src/editor/dialogs/exportDialog.js
index 2f9bfbc1..93ee60ff 100644
--- a/src/editor/dialogs/exportDialog.js
+++ b/src/editor/dialogs/exportDialog.js
@@ -21,7 +21,7 @@ export class SeExportDialog extends HTMLElement {
this.$cancelBtn = this._shadowRoot.querySelector('#export_cancel')
this.$exportOption = this._shadowRoot.querySelector('#se-storage-pref')
this.$qualityCont = this._shadowRoot.querySelector('#se-quality')
- this.$input = this._shadowRoot.querySelector('elix-number-spin-box')
+ this.$input = this._shadowRoot.querySelector('#se-quality')
this.value = 1
}
@@ -33,8 +33,8 @@ export class SeExportDialog extends HTMLElement {
init (i18next) {
this.setAttribute('common-ok', i18next.t('common.ok'))
this.setAttribute('common-cancel', i18next.t('common.cancel'))
- this.setAttribute('ui-quality', i18next.t('ui.quality'))
this.setAttribute('ui-export_type_label', i18next.t('ui.export_type_label'))
+ this.value = 100
}
/**
@@ -42,7 +42,7 @@ export class SeExportDialog extends HTMLElement {
* @returns {any} observed
*/
static get observedAttributes () {
- return ['dialog', 'common-ok', 'common-cancel', 'ui-quality', 'ui-export_type_label']
+ return ['dialog', 'common-ok', 'common-cancel', 'ui-export_type_label']
}
/**
@@ -68,10 +68,6 @@ export class SeExportDialog extends HTMLElement {
case 'common-cancel':
this.$cancelBtn.textContent = newValue
break
- case 'ui-quality':
- node = this._shadowRoot.querySelector('#se-quality')
- node.prepend(newValue)
- break
case 'ui-export_type_label':
node = this._shadowRoot.querySelector('#export_select')
node.textContent = newValue
diff --git a/src/editor/locale/lang.fr.js b/src/editor/locale/lang.fr.js
index 71268996..25f6c96d 100644
--- a/src/editor/locale/lang.fr.js
+++ b/src/editor/locale/lang.fr.js
@@ -21,7 +21,7 @@ export default {
palette_info: 'Cliquer pour changer la couleur de remplissage, Maj+clic pour changer la couleur de contour',
zoom_level: 'Changer le niveau de zoom',
panel_action: 'Cliquer pour ouvrir le panel de côté',
- quality: 'Quality:',
+ quality: 'Qualité:',
pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',