diff --git a/ui/TODO.otl b/ui/TODO.otl index 725c9e68..c4b5f9dd 100755 --- a/ui/TODO.otl +++ b/ui/TODO.otl @@ -163,7 +163,7 @@ Roadmap [X] bookmarked (list) operations [X] mark/unmark tagged [X] crop - [_] 34% Panels + [_] 51% Panels [X] 100% panel constructors [X] panel [X] side-panel @@ -182,7 +182,7 @@ Roadmap | collapse a panel... [X] removePanel | remove a panel - [_] open panel dialog + [X] open panel dialog | list all registered panels... [_] 0% mechanics [_] serialization -- save/load panel state diff --git a/ui/editor.js b/ui/editor.js index c3d98f7f..d06364e2 100755 --- a/ui/editor.js +++ b/ui/editor.js @@ -6,6 +6,8 @@ //var DEBUG = DEBUG != null ? DEBUG : true +var PANEL_ROOT = '.viewer' + /*********************************************************************/ // XXX these are a bit too general... @@ -79,5 +81,43 @@ var toggleEditor = createCSSClassToggler( +/********************************************************************** +* Dialogs... +*/ + +function panelListDialog(){ + updateStatus('Open panel...').show() + + cfg = {} + // XXX indicate open panels... + cfg['Open panel'] = Object.keys(PANELS).map(function(e){ + if(getPanel(e).length > 0){ + return e + ' (open)' + } + return e + }) + + formDialog(null, '', + cfg, + 'OK', + 'panelListDialog') + .done(function(res){ + + var panel = res['Open panel'].split(' (open)')[0] + + // toggle panel visibility on... + // XXX + + openPanel(panel) + + showStatusQ('Opening panel: '+panel+'...') + }) + .fail(function(){ + showStatusQ('Opening panel: canceled.') + }) +} + + + /********************************************************************** * vim:set ts=4 sw=4 : */ diff --git a/ui/keybindings.js b/ui/keybindings.js index b043b277..bae651e4 100755 --- a/ui/keybindings.js +++ b/ui/keybindings.js @@ -788,8 +788,14 @@ var KEYBOARD_CONFIG = { ctrl: 'invert-marks', }, P: { - default: doc('Show options', - function(){ toggleOptionsUI() }), + default: doc('Show panel list', + function(){ + panelListDialog() + }), + shift: doc('Show options', + function(){ + toggleOptionsUI() + }), ctrl: doc('Print keyboard help', function(){ toggleKeyboardHelp('on')