diff --git a/ui (gen4)/features/app.js b/ui (gen4)/features/app.js index d07ad8cd..87a7029b 100755 --- a/ui (gen4)/features/app.js +++ b/ui (gen4)/features/app.js @@ -182,6 +182,7 @@ var ElectronHostActions = actions.Actions({ minimize: ['Window/Minimize', function(){ electron.remote.getCurrentWindow().minimize() }], + // XXX need to detect initial fullscreen state... // XXX this is almost generic, but it is not usable unless within // a user event handler... // ...can we use this on electron??? @@ -559,7 +560,7 @@ var AppButtonsActions = actions.Actions({ { '_': ['minimize', 'minimize -- Minimize'], - '↙': ['fullscreen allways-shown', + '↙': ['fullscreen always-shown', 'toggleFullScreen -- Toggle fullscreen'], '×': ['close', 'close -- Quit'], @@ -601,10 +602,10 @@ module.AppButtons = core.ImageGridFeatures.Feature({ // XXX should this be done by css??? if(fullscreen == 'on'){ - buttons.find('.button:not(.allways-shown)').show() + buttons.find('.button:not(.always-shown)').show() } else { - buttons.find('.button:not(.allways-shown)').hide() + buttons.find('.button:not(.always-shown)').hide() } //this.toggleFullScreenControls(fullScreen) diff --git a/ui (gen4)/features/core.js b/ui (gen4)/features/core.js index 3cd491d6..759a6487 100755 --- a/ui (gen4)/features/core.js +++ b/ui (gen4)/features/core.js @@ -1618,7 +1618,8 @@ module.makeWorkspaceConfigLoader = function(keys, callback){ } }) - callback && callback.call(this, workspace) + callback + && callback.call(this, workspace) } } @@ -1738,7 +1739,8 @@ module.Workspace = ImageGridFeatures.Feature({ ['start', function(){ this.loadWorkspace(this.config['load-workspace'] || 'default') }], - ['stop', + // NOTE: this needs to be done before the .config is saved... + ['stop.pre', function(){ this.saveWorkspace() }], ], diff --git a/ui (gen4)/features/ui-single-image.js b/ui (gen4)/features/ui-single-image.js index 6d244dd2..9d6bd845 100755 --- a/ui (gen4)/features/ui-single-image.js +++ b/ui (gen4)/features/ui-single-image.js @@ -245,6 +245,7 @@ var SingleImageActions = actions.Actions({ if(state == 'on'){ this.pushWorkspace() + // base the single image defaults of ui-chrome-hidden... if(this.workspaces['single-image'] == null){ this.loadWorkspace('ui-chrome-hidden') this.mergeConfig('single-image-config-defaults') @@ -548,7 +549,7 @@ module.SingleImageCursor = core.ImageGridFeatures.Feature({ handlers: [ // setup... - ['load', + ['start', function(){ var mode = this.toggleSingleImage('?') == 'on' ? 'cursor-autohide-on-timeout-single-image-view' diff --git a/ui (gen4)/features/ui-status.js b/ui (gen4)/features/ui-status.js index d2b8ad21..3ec23480 100755 --- a/ui (gen4)/features/ui-status.js +++ b/ui (gen4)/features/ui-status.js @@ -72,9 +72,6 @@ var StatusBarActions = actions.Actions({ 'bookmark', ], }, - 'status-bar-blink': [ - 'hidden', - ], 'status-bar-index': { 'mode': 'normal', @@ -93,6 +90,16 @@ var StatusBarActions = actions.Actions({ 'status-bar-changes-text': '*', 'status-bar-edit-mode-indicator-update-interval': 1000, + + // workspace stuff... + 'status-bar-workspace-attrs': [ + 'status-bar', + ], + 'status-bar-workspace-defaults': { + 'default': 'full', + 'single-image': 'minimal', + 'slideshow': 'hidden', + }, }, __statusbar_elements__: { @@ -773,21 +780,34 @@ module.StatusBar = core.ImageGridFeatures.Feature({ this.toggleStatusBar('?') == 'hidden' && this.statusItemBlink('bookmark') }], - // Workspace... + // Workspaces... ['saveWorkspace', core.makeWorkspaceConfigWriter( function(){ return Object.keys(StatusBar.config) })], + // workspace defaults... + [[ + 'loadWorkspace.pre', + 'saveWorkspace.pre', + ], + function(workspace){ + if(!workspace || workspace in this.workspaces){ + return + } + + this.config['status-bar'] = + (this.config['status-bar-workspace-defaults'][workspace] + || this.config['status-bar']) + }], ['loadWorkspace', core.makeWorkspaceConfigLoader( function(){ - return Object.keys(StatusBar.config) }, + return this.config['status-bar-workspace-attrs'] }, function(workspace){ - // XXX not sure about this protocol yet... if(this.workspace == 'ui-chrome-hidden'){ - this.toggleStatusBar('none') + this.toggleStatusBar('hidden') } else { - 'status-bar-mode' in workspace ? + 'status-bar' in workspace ? this.toggleStatusBar(workspace['status-bar']) : this.toggleStatusBar(this.config['status-bar']) } diff --git a/ui (gen4)/features/ui-widgets.js b/ui (gen4)/features/ui-widgets.js index de27176c..5fc2483d 100755 --- a/ui (gen4)/features/ui-widgets.js +++ b/ui (gen4)/features/ui-widgets.js @@ -2038,7 +2038,7 @@ var ButtonsActions = actions.Actions({ }, 'app-buttons': { - [SETTINGS_ICON]: ['ui-settings allways-shown', [ + [SETTINGS_ICON]: ['ui-settings always-shown', [ 'browseActions: "Interface/" -- Interface settings...', 'toggleSideButtons -- Toggle touch controls', ]], diff --git a/ui (gen4)/features/ui.js b/ui (gen4)/features/ui.js index a4ee4ccd..507d4768 100755 --- a/ui (gen4)/features/ui.js +++ b/ui (gen4)/features/ui.js @@ -1104,11 +1104,13 @@ module.Cursor = core.ImageGridFeatures.Feature({ toggleAutoHideCursorTimeout: ['Interface/Hide cursor on timeout', core.makeConfigToggler('cursor-autohide-on-timeout', ['on', 'off'], - function(){ this.toggleAutoHideCursor('!') })], + function(){ + this.toggleAutoHideCursor('!') })], toggleAutoHideCursorKeyboard: ['Interface/Hide cursor on keyboard', core.makeConfigToggler('cursor-autohide-on-keyboard', ['on', 'off'], - function(){ this.toggleAutoHideCursor('!') })], + function(){ + this.toggleAutoHideCursor('!') })], }), handlers: [