From c37a8d067fbe29b653f45af2b2cefad2f9cd0bd3 Mon Sep 17 00:00:00 2001 From: Laura Fuentes Grau Date: Sun, 1 Nov 2020 20:57:24 +0100 Subject: [PATCH 1/2] WIP: fix image widget edit menu #267 --- src/dashboard/dashboard.js | 5 +++++ src/widget/widget-factory.js | 1 + src/widget/widgets/image.js | 16 +++++++--------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/dashboard/dashboard.js b/src/dashboard/dashboard.js index fc60d2b..073c5fe 100644 --- a/src/dashboard/dashboard.js +++ b/src/dashboard/dashboard.js @@ -298,6 +298,11 @@ class Dashboard extends Component { return; } + if(data.type === "Image") + { + data.customProperties.update = true; + } + AppDispatcher.dispatch({ type: 'widgets/start-edit', token: this.state.sessionToken, diff --git a/src/widget/widget-factory.js b/src/widget/widget-factory.js index 59ebedf..b13255e 100644 --- a/src/widget/widget-factory.js +++ b/src/widget/widget-factory.js @@ -115,6 +115,7 @@ class WidgetFactory { widget.height = 200; widget.customProperties.lockAspect = true; widget.customProperties.file = -1; // ID of image file, -1 means non selected + widget.customProperties.update = false; break; case 'Button': widget.minWidth = 100; diff --git a/src/widget/widgets/image.js b/src/widget/widgets/image.js index 1c2ba75..f289324 100644 --- a/src/widget/widgets/image.js +++ b/src/widget/widgets/image.js @@ -26,7 +26,6 @@ class WidgetImage extends React.Component { this.state = { file: undefined, - fileDate: null } } @@ -44,24 +43,23 @@ class WidgetImage extends React.Component { componentDidUpdate(prevProps: Readonly

, prevState: Readonly, snapshot: SS) { + if(this.props.widget.customProperties.file === -1){ + this.props.widget.customProperties.update = false; + if(this.state.file !== undefined) this.setState({ file: undefined }) + } let file = this.props.files.find(file => file.id === parseInt(this.props.widget.customProperties.file, 10)); - if (file !== undefined) { - if (this.state.file === undefined || (this.state.file.id !== file.id) || this.state.fileDate !== file.date) { - + if (this.props.widget.customProperties.update) { + this.props.widget.customProperties.update = false; AppDispatcher.dispatch({ type: 'files/start-download', data: file.id, token: this.props.token }); - - this.setState({ file: file, fileDate: file.date }); + this.setState({ file: file }) } - } else if (this.setState.file !== undefined) { - console.log("file undefined", file) - this.setState({file:undefined}) } } From fb2807a98c3da49c61467f8863a091713491adac Mon Sep 17 00:00:00 2001 From: irismarie Date: Wed, 4 Nov 2020 18:17:28 +0100 Subject: [PATCH 2/2] lock aspect ratio, fixes #206 --- src/widget/widget-factory.js | 1 + src/widget/widgets/line.js | 13 +------------ 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/widget/widget-factory.js b/src/widget/widget-factory.js index b13255e..00dd41e 100644 --- a/src/widget/widget-factory.js +++ b/src/widget/widget-factory.js @@ -192,6 +192,7 @@ class WidgetFactory { widget.customProperties.border_color_opacity = 1; widget.customProperties.border_width = 2; widget.customProperties.rotation = 0; + widget.customProperties.lockAspect = true; break; default: diff --git a/src/widget/widgets/line.js b/src/widget/widgets/line.js index 93249f6..bfdbe9c 100644 --- a/src/widget/widgets/line.js +++ b/src/widget/widgets/line.js @@ -49,18 +49,7 @@ class WidgetLine extends Component { height = this.state.height; } - // calculate the length of the line - let length = 0; - if (rotation > 0) { - if (width <= height) { - length = width / Math.abs(Math.cos(rad)); - } - else { - length = height / Math.abs(Math.sin(rad)); - } - } else { - length = width; - } + let length = width; // calculate line coordinates (in percent) const x1 = width * 0.5 - 0.5 * Math.cos(rad) * length;