From 0d5f954b4671f6ef49e2eb6eb7b4c2d5f0e3f344 Mon Sep 17 00:00:00 2001
From: bbaer <bbaer@math.uzh.ch>
Date: Fri, 10 Nov 2017 11:58:32 +0100
Subject: [PATCH] toggle objects for canvas

---
 javascript/src/Plugins/qfq.fabric.js | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/javascript/src/Plugins/qfq.fabric.js b/javascript/src/Plugins/qfq.fabric.js
index 22cc4a8c4..18f5e3747 100644
--- a/javascript/src/Plugins/qfq.fabric.js
+++ b/javascript/src/Plugins/qfq.fabric.js
@@ -48,6 +48,7 @@ $(function (n) {
         this.dndData = '';
         this.backgroundImage = '';
         this.fabricJSON = '';
+        this.showObject = true;
 
         // Handles button states and generation of said buttons. Should be renamed.
         function ModeSettings() {
@@ -291,6 +292,7 @@ $(function (n) {
         canvas.height = canvas.width * ratio;
         this.parentElement.append(canvas);
         this.canvas = this.__canvas = new fabric.StaticCanvas(canvas);
+        this.parentElement.on("click", function(e) { that.toggleObjects(); });
     };
 
     n.Fabric.prototype.getMeta = function(url, callback) {
@@ -299,6 +301,16 @@ $(function (n) {
       img.onload = function() { callback(this.width, this.height); };
     };
 
+    n.Fabric.prototype.toggleObjects = function() {
+        this.showObject = !this.showObject;
+        var objects = this.canvas.getObjects();
+        for (var i in objects) {
+            objects[i].visible = this.showObject;
+            //objects[i].opacity = opacity;
+        }
+        this.canvas.renderAll();
+    };
+
     n.Fabric.prototype.generateCanvas = function() {
         var canvas = document.createElement('canvas');
         canvas.setAttribute('draggable', true);
-- 
GitLab