From 7ca3b466ea7c673e1da33b0c2f3684b9fcdd538a Mon Sep 17 00:00:00 2001
From: Delucse <46593742+Delucse@users.noreply.github.com>
Date: Sun, 27 Sep 2020 20:35:03 +0200
Subject: [PATCH] create screenshot of workspace
---
src/components/WorkspaceFunc.js | 65 +++++++++++++++++++++++++++------
1 file changed, 53 insertions(+), 12 deletions(-)
diff --git a/src/components/WorkspaceFunc.js b/src/components/WorkspaceFunc.js
index 2beff96..dbc3c3d 100644
--- a/src/components/WorkspaceFunc.js
+++ b/src/components/WorkspaceFunc.js
@@ -25,7 +25,7 @@ import Tooltip from '@material-ui/core/Tooltip';
import TextField from '@material-ui/core/TextField';
import Typography from '@material-ui/core/Typography';
-import { faPen, faSave, faUpload, faShare } from "@fortawesome/free-solid-svg-icons";
+import { faPen, faSave, faUpload, faCamera, faShare } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
const styles = (theme) => ({
@@ -61,7 +61,7 @@ class WorkspaceFunc extends Component {
content: '',
open: false,
file: false,
- saveXml: false,
+ saveFile: false,
name: props.name
};
}
@@ -86,15 +86,48 @@ class WorkspaceFunc extends Component {
saveAs(blob, fileName);
}
- createFileName = () => {
- if(this.state.name){
- this.saveXmlFile();
- }
- else{
- this.setState({ file: true, saveXml: true, open: true, title: 'Blöcke speichern', content: 'Bitte gib einen Namen für die Bennenung der XML-Datei ein und bestätige diesen mit einem Klick auf \'Eingabe\'.' });
+ getSvg = () => {
+ const workspace = Blockly.getMainWorkspace();
+ var canvas = workspace.svgBlockCanvas_.cloneNode(true);
+
+ if (canvas.children[0] !== undefined) {
+ canvas.removeAttribute("transform");
+
+ // does not work in react
+ // var cssContent = Blockly.Css.CONTENT.join('');
+ var cssContent = '';
+ for (var i = 0; i < document.getElementsByTagName('style').length; i++) {
+ if(/^blockly.*$/.test(document.getElementsByTagName('style')[i].id)){
+ cssContent += document.getElementsByTagName('style')[i].firstChild.data.replace(/\..* \./g, '.');
+ }
+ }
+
+ var css = '