Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix export #936

Merged
merged 2 commits into from
Dec 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/svgcanvas/core/svg-exec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
7 changes: 2 additions & 5 deletions src/editor/Editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -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

/**
*
Expand Down Expand Up @@ -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
Expand All @@ -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')
Expand Down
24 changes: 0 additions & 24 deletions src/editor/MainMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 = `<!DOCTYPE html><html>
<head>
<meta charset="utf-8">
<title>${loadingImage}</title>
</head>
<body><h1>${loadingImage}</h1></body>
<html>`
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') {
Expand Down
18 changes: 4 additions & 14 deletions src/editor/dialogs/exportDialog.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
margin: 10px 10px 5px 10px;
background: #5a6162;
overflow: auto;
text-align: left;
border: 1px solid #c8c8c8;
}

Expand All @@ -12,6 +11,7 @@
#dialog_content label {
margin: 10px;
line-height: 0.3em;
color: #fff
}

#dialog_container {
Expand Down Expand Up @@ -56,19 +56,9 @@
<div class="overlay"></div>
<div id="dialog_container">
<div id="dialog_content">
<p class="se-select" id="export_select"></p>
<p class="se-select">
<select id="se-storage-pref">
<option value="PNG">PNG</option>
<option value="JPEG">JPEG</option>
<option value="BMP">BMP</option>
<option value="WEBP">WEBP</option>
<option value="PDF">PDF</option>
</select>
</p>
<p id="se-quality">
<elix-number-spin-box min="-1" max="101" step="5" value="100"></elix-number-spin-box>
</p>
<p id="export_select"></p>
<se-select id="se-storage-pref" label="" options="PNG,JPEG,BMP,WEBP,PDF" values="PNG::JPEG::BMP::WEBP::PDF"></se-select>
<se-spin-input id="se-quality" label="ui.quality" size="3" min="0" max="100" value="100" step="5" />
</div>
<div id="dialog_buttons">
<button id="export_ok"></button>
Expand Down
10 changes: 3 additions & 7 deletions src/editor/dialogs/exportDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand All @@ -33,16 +33,16 @@ 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
}

/**
* @function observedAttributes
* @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']
}

/**
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/editor/locale/lang.fr.js
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
Loading