From 78e9cbc4451ff4c23e3397aee403df65806d9c5e Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Sat, 29 Feb 2020 19:30:41 +0800 Subject: [PATCH] Relayout mindmap when window resize. --- app/mindmap/buffer.py | 3 +++ app/mindmap/index.html | 4 +++ app/mindmap/jsmind.js | 42 +++++++++++++++++--------------- app/mindmap/jsmind.screenshot.js | 4 +-- core/buffer.py | 3 +++ eaf.py | 3 +++ 6 files changed, 37 insertions(+), 22 deletions(-) diff --git a/app/mindmap/buffer.py b/app/mindmap/buffer.py index 10ea02e..154fa77 100644 --- a/app/mindmap/buffer.py +++ b/app/mindmap/buffer.py @@ -51,6 +51,9 @@ class AppBuffer(BrowserBuffer): QTimer.singleShot(500, self.init_file) + def resize_view(self): + self.buffer_widget.eval_js("relayout();") + def init_file(self): self.url = os.path.expanduser(self.url) diff --git a/app/mindmap/index.html b/app/mindmap/index.html index 50e61fd..3de7979 100644 --- a/app/mindmap/index.html +++ b/app/mindmap/index.html @@ -193,6 +193,10 @@ _jm.set_node_background_image(selected_id, "file://" + image); } } + + function relayout() { + _jm.view.relayout(); + } diff --git a/app/mindmap/jsmind.js b/app/mindmap/jsmind.js index 7a10471..42f0c72 100644 --- a/app/mindmap/jsmind.js +++ b/app/mindmap/jsmind.js @@ -19,8 +19,8 @@ // an noop function define var _noop = function(){}; var logger = (typeof console === 'undefined')?{ - log:_noop, debug:_noop, error:_noop, warn:_noop, info:_noop - }:console; + log:_noop, debug:_noop, error:_noop, warn:_noop, info:_noop + }:console; // check global variables if(typeof module === 'undefined' || !module.exports){ @@ -1041,8 +1041,8 @@ for(var o in a){ if(o in b){ if(typeof b[o] === 'object' && - Object.prototype.toString.call(b[o]).toLowerCase() == '[object object]' && - !b[o].length){ + Object.prototype.toString.call(b[o]).toLowerCase() == '[object object]' && + !b[o].length){ jm.util.json.merge(b[o], a[o]); }else{ b[o] = a[o]; @@ -1668,7 +1668,7 @@ }; -// ============= data provider ============================================= + // ============= data provider ============================================= jm.data_provider = function(jm){ this.jm = jm; @@ -1783,15 +1783,15 @@ } } /* - var boundary = Math.ceil(children_count/2); - var i = children_count; - while(i--){ - if(i>=boundary){ - this._layout_direction_side(children[i],jm.direction.left, children_count-i-1); - }else{ - this._layout_direction_side(children[i],jm.direction.right, i); - } - }*/ + var boundary = Math.ceil(children_count/2); + var i = children_count; + while(i--){ + if(i>=boundary){ + this._layout_direction_side(children[i],jm.direction.left, children_count-i-1); + }else{ + this._layout_direction_side(children[i],jm.direction.right, i); + } + }*/ } }, @@ -2388,7 +2388,7 @@ select_node:function(node){ if(!!this.selected_node){ this.selected_node._data.view.element.className = - this.selected_node._data.view.element.className.replace(/\s*selected\b/i,''); + this.selected_node._data.view.element.className.replace(/\s*selected\b/i,''); this.reset_node_custom_style(this.selected_node); } if(!!node){ @@ -2671,13 +2671,15 @@ jm.util.canvas.clear(ctx,0,0,this.size.w,this.size.h); }, - show_lines:function(canvas_ctx){ + show_lines:function(canvas_ctx, fill_background){ this.clear_lines(canvas_ctx); - // Draw background, use to save screenshot. - var ctx = canvas_ctx || this.canvas_ctx; - ctx.fillStyle = "#FFFFFF"; - ctx.fillRect(0, 0, this.size.w, this.size.h); + if (fill_background) { + // Draw background, use to save screenshot. + var ctx = canvas_ctx || this.canvas_ctx; + ctx.fillStyle = "#FFFFFF"; + ctx.fillRect(0, 0, this.size.w, this.size.h); + } var nodes = this.jm.mind.nodes; var node = null; diff --git a/app/mindmap/jsmind.screenshot.js b/app/mindmap/jsmind.screenshot.js index 9da675f..de9d480 100644 --- a/app/mindmap/jsmind.screenshot.js +++ b/app/mindmap/jsmind.screenshot.js @@ -1,7 +1,7 @@ /* * Released under BSD License * Copyright (c) 2014-2015 hizzgdev@163.com - * + * * Project Home: * https://github.com/hizzgdev/jsmind/ */ @@ -178,7 +178,7 @@ }, _draw_lines:function(){ - this.jm.view.show_lines(this.canvas_ctx); + this.jm.view.show_lines(this.canvas_ctx, true); }, _draw_nodes:function(callback){ diff --git a/core/buffer.py b/core/buffer.py index f9b23e8..e93ceb8 100755 --- a/core/buffer.py +++ b/core/buffer.py @@ -233,6 +233,9 @@ class Buffer(QGraphicsScene): def some_view_show(self): pass + def resize_view(self): + pass + def get_key_event_widgets(self): return [self.buffer_widget] diff --git a/eaf.py b/eaf.py index affc213..b3f88a4 100755 --- a/eaf.py +++ b/eaf.py @@ -257,6 +257,9 @@ class EAF(dbus.service.Object): else: buffer.buffer_widget.resize(emacs_width, emacs_height) + # Send resize signal to buffer. + buffer.resize_view() + @dbus.service.method(EAF_DBUS_NAME, in_signature="", out_signature="") def kill_emacs(self): tmp_buffer_dict = {}