From 14d1b9410ed97889677ff4a41ddb9af710a0fb43 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sat, 7 May 2016 00:47:52 +0300 Subject: [PATCH] added a 'single-image' workspace + added push/pop worspace actions... Signed-off-by: Alex A. Naanou --- ui (gen4)/css/layout.less | 16 ++++++++++++++ ui (gen4)/features/core.js | 30 ++++++++++++++++++++++++++- ui (gen4)/features/ui-single-image.js | 17 ++++++++++++++- ui (gen4)/features/ui-slideshow.js | 15 +++++--------- ui (gen4)/features/ui-status.js | 2 +- 5 files changed, 67 insertions(+), 13 deletions(-) diff --git a/ui (gen4)/css/layout.less b/ui (gen4)/css/layout.less index 87c7dc04..3efc26e2 100755 --- a/ui (gen4)/css/layout.less +++ b/ui (gen4)/css/layout.less @@ -1251,6 +1251,22 @@ stretching in width... */ content: "Global"; } +/* gid */ +.overlay-info .gid { + opacity: 0.7; +} +.overlay-info .gid:hover { + opacity: 1; +} + + +.overlay-info .path { + opacity: 0.7; +} +.overlay-info .path:hover { + opacity: 1; +} + /*************************************************** Global status ***/ diff --git a/ui (gen4)/features/core.js b/ui (gen4)/features/core.js index db4e785a..19c7bced 100755 --- a/ui (gen4)/features/core.js +++ b/ui (gen4)/features/core.js @@ -330,6 +330,8 @@ module.makeWorkspaceConfigLoader = function(keys, callback){ var WorkspaceActions = actions.Actions({ config: { + 'load-workspace': 'default', + 'workspace': 'default', 'workspaces': {}, }, @@ -396,6 +398,28 @@ var WorkspaceActions = actions.Actions({ makeConfigToggler('workspace', function(){ return Object.keys(this.config['workspaces']) }, function(state){ this.loadWorkspace(state) })], + + pushWorkspace: ['- Workspace/', + function(name){ + name = name || this.workspace + var stack = this.__workspace_stack = this.__workspace_stack || [] + + this.saveWorkspace() + + this.workspace != name && this.loadWorkspace(name) + stack.push(name) + }], + popWorkspace: ['- Workspace/', + function(){ + var stack = this.__workspace_stack + + if(!stack || stack.length == 0){ + return + } + + this.saveWorkspace() + this.loadWorkspace(stack.pop()) + }], }) @@ -412,8 +436,12 @@ module.Workspace = ImageGridFeatures.Feature({ actions: WorkspaceActions, handlers: [ + ['start', + function(){ + this.loadWorkspace(this.config['load-workspace'] || 'default') }], ['stop', - function(){ this.saveWorkspace() }], + function(){ + this.saveWorkspace() }], ], }) diff --git a/ui (gen4)/features/ui-single-image.js b/ui (gen4)/features/ui-single-image.js index 1dedf26a..138f0df2 100755 --- a/ui (gen4)/features/ui-single-image.js +++ b/ui (gen4)/features/ui-single-image.js @@ -226,7 +226,22 @@ var SingleImageActions = actions.Actions({ toggleSingleImage: ['Interface/Toggle single image view', toggler.CSSClassToggler( function(){ return this.ribbons.viewer }, - 'single-image-mode') ], + 'single-image-mode', + function(state){ + if(state == 'on'){ + this.pushWorkspace() + + if(this.workspaces['single-image'] == null){ + this.loadWorkspace('ui-chrome-hidden') + this.saveWorkspace('single-image') + } + + this.loadWorkspace('single-image') + + } else { + this.popWorkspace() + } + })], }) diff --git a/ui (gen4)/features/ui-slideshow.js b/ui (gen4)/features/ui-slideshow.js index a7412605..50476018 100755 --- a/ui (gen4)/features/ui-slideshow.js +++ b/ui (gen4)/features/ui-slideshow.js @@ -183,9 +183,11 @@ var SlideshowActions = actions.Actions({ // prepare for the slideshow... } else { + // single image mode... + this.toggleSingleImage('on') + // save current workspace... - this.__pre_slideshow_workspace = this.workspace - this.saveWorkspace() + this.pushWorkspace() // construct the slideshow workspace if it does // not exist... @@ -199,9 +201,6 @@ var SlideshowActions = actions.Actions({ // load the slideshow workspace... this.loadWorkspace('slideshow') - - // single image mode... - this.toggleSingleImage('on') } // start the timer... @@ -230,17 +229,13 @@ var SlideshowActions = actions.Actions({ // stop... } else { - this.saveWorkspace('slideshow') - // stop timer... this.__slideshouw_timer && clearInterval(this.__slideshouw_timer) delete this.__slideshouw_timer // restore the original workspace... - this.__pre_slideshow_workspace && - this.loadWorkspace(this.__pre_slideshow_workspace) - delete this.__pre_slideshow_workspace + this.popWorkspace() } })], diff --git a/ui (gen4)/features/ui-status.js b/ui (gen4)/features/ui-status.js index 6489ad04..77332a37 100755 --- a/ui (gen4)/features/ui-status.js +++ b/ui (gen4)/features/ui-status.js @@ -307,7 +307,7 @@ var StatusBarActions = actions.Actions({ var bar = this.ribbons.viewer.find('.state-indicator-container.global-info') if(bar.length == 0){ - bar = makeStateIndicator('global-info overlay-info') + bar = makeStateIndicator('global-info overlay-info statusbar') .addClass(this.config['status-bar-mode'] || '') .on('mouseover', function(){ var t = $(event.target)