added an experiment with nested viewers...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2015-11-15 02:31:31 +03:00
parent c8b653567a
commit bca8b3c6e9
2 changed files with 129 additions and 3 deletions

View File

@ -413,12 +413,15 @@ module.buildIndex = function(index, base){
var d = data.Data.fromJSON(index.data)
// buildup the data object...
d.tags = d.tags || {}
// NOTE: this is mostly to attach stuff that is stored in separate files...
// .tags + bookmarks + selection...
d.tags = index.tags || {}
d.tags.bookmark = index.bookmarked ? index.bookmarked[0] : []
d.tags.selected = index.marked || []
d.sortTags()
// current...
// .current...
d.current = index.current || d.current
@ -450,6 +453,12 @@ module.buildIndex = function(index, base){
}
// XXX
var mergeIndex =
module.mergeIndex = function(index, base){
// XXX
}
/*********************************************************************/
// Writer...

View File

@ -2548,7 +2548,7 @@ var ActionTreeActions = actions.Actions({
&& parent.focus()
})
}],
drawerTest:['Interface|Test/Drawer widget test',
drawerTest: ['Interface|Test/Drawer widget test',
function(){
drawer.Drawer($('body'),
$('<div>')
@ -2565,6 +2565,123 @@ var ActionTreeActions = actions.Actions({
focusable: true,
})
}],
// XXX needs cleanup...
// XXX need a clean constructor strategy -- this and ui.js are a mess...
showTaggedInDrawer: ['Interface|Test/Show tagged in drawer',
function(tag){
tag = tag || 'bookmark'
var that = this
var H = '200px'
var viewer = $('<div class="viewer">')
.css({
height: H,
background: 'black',
})
var widget = drawer.Drawer($('body'),
$('<div>')
.css({
position: 'relative',
height: H,
})
.append(viewer),
{
focusable: true,
})
var data = this.data.crop(a.data.getTaggedByAll(tag), true)
var b = actions.Actions()
// used switch experimental actions on (set to true) or off (unset or false)...
//a.experimental = true
// setup actions...
ImageGridFeatures.setup(b, [
'viewer-testing',
])
// setup the viewer...
// XXX for some reason if we load this with data and images
// the images will not show up...
b.load({
viewer: viewer,
})
// load some testing data...
// NOTE: we can (and do) load this in parts...
b
.load({
data: data,
images: this.images,
})
// this is needed when loading legacy sources that do not have tags
// synced...
// do not do for actual data...
//.syncTags()
.setEmptyMsg('No images bookmarked...')
.fitImage(1)
// link navigation...
.on('focusImage', function(){
that.focusImage(this.current)
})
// XXX setup keyboard...
var keyboard = require('lib/keyboard')
// XXX move this to the .config...
var kb = {
'Basic Control': {
pattern: '*',
Home: {
default: 'firstImage!',
},
End: {
default: 'lastImage!',
},
Left: {
default: 'prevImage!',
ctrl: 'prevScreen!',
// XXX need to prevent default on mac + browser...
meta: 'prevScreen!',
},
PgUp: 'prevScreen!',
PgDown: 'nextScreen!',
Right: {
default: 'nextImage!',
ctrl: 'nextScreen!',
// XXX need to prevent default on mac + browser...
meta: 'nextScreen!',
},
}
}
widget.dom
// XXX
.keydown(
keyboard.dropRepeatingkeys(
keyboard.makeKeyboardHandler(
kb,
function(k){
window.DEBUG && console.log(k)
},
b),
function(){
return that.config['max-key-repeat-rate']
}))
// XXX STUB
window.b = b
return b
}],
showBookmarkedInDrawer: ['Interface|Test/Show bookmarked in drawer',
function(){ this.showTaggedInDrawer('bookmark') }],
showSelectedInDrawer: ['Interface|Test/Show selected in drawer',
function(){ this.showTaggedInDrawer('selected') }],
})
var ActionTree =