From 92aa68fec850acccc9e5b83af25138de53504107 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Fri, 27 Nov 2020 19:24:49 +0300 Subject: [PATCH] added status bar index caching... Signed-off-by: Alex A. Naanou --- Viewer/features/ui-status.js | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/Viewer/features/ui-status.js b/Viewer/features/ui-status.js index 334d8952..0b3e1fd1 100755 --- a/Viewer/features/ui-status.js +++ b/Viewer/features/ui-status.js @@ -207,21 +207,38 @@ var StatusBarActions = actions.Actions({ // into an infinite recursion... var cls = (that.config['status-bar-index'] || {})['mode'] || 'normal' + // XXX get the cached length... + // XXX make this part of the status bar cache... + var cache = this.__statusbar_index_length_cache || [] + cache = cache[0] == cls ? + cache[1] + : null + + // empty view... + if(this.data){ + var i = -1 + var l = 0 + // global index... - if(cls == 'global'){ - var i = this.data ? this.data.getImageOrder(gid) : -1 - var l = this.data ? this.data.length : 0 + } else if(cls == 'global'){ + var i = this.data.getImageOrder(gid) + var l = cache = + cache || this.data.length // loaded/crop index... } else if(cls == 'loaded'){ - var i = this.data ? this.data.getImageOrder('loaded', gid) : -1 - var l = this.data ? this.data.getImages('loaded').len : 0 + var i = this.data.getImageOrder('loaded', gid) + var l = cache = + cache || this.data.getImages('loaded').len // ribbon index... } else { - var i = this.data ? this.data.getImageOrder('ribbon', gid) : -1 - var l = this.data ? this.data.getImages(gid).len : 0 - } + var i = this.data.getImageOrder('ribbon', gid) + var l = cache = + cache || this.data.getImages(gid).len } + + // XXX save cache... + this.__statusbar_index_length_cache = [cls, cache] // update... item @@ -652,7 +669,7 @@ var StatusBarActions = actions.Actions({ }, null)], updateStatusBar: ['- Interface/Update satus bar', - function(){ this.toggleStatusBar('!') }], + 'toggleStatusBar: "!"'], resetStatusBar: ['Interface/Reset status bar', function(){