mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-01 03:40:09 +00:00
some cleanup, docs and minor fixes and refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
e473dc2128
commit
0bdf736a25
@ -236,6 +236,10 @@ requirejs(['../lib/keyboard', '../object', './browse-dialog'], function(k, o, br
|
|||||||
'option 3': function(_, p){ console.log('option:', p) },
|
'option 3': function(_, p){ console.log('option:', p) },
|
||||||
'option 4': function(_, p){ console.log('option:', p) },
|
'option 4': function(_, p){ console.log('option:', p) },
|
||||||
})
|
})
|
||||||
|
// another way to handle the opening of items...
|
||||||
|
.open(function(evt, text){
|
||||||
|
alert('>>> ' + text)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
$(function(){
|
$(function(){
|
||||||
|
|||||||
@ -373,6 +373,21 @@ var BrowserPrototype = {
|
|||||||
this.path = value
|
this.path = value
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Get/set current selection (text)...
|
||||||
|
//
|
||||||
|
// Setting the selection accepts the same values as .select(..), see
|
||||||
|
// it for more docs.
|
||||||
|
get selected(){
|
||||||
|
var e = this.select('!')
|
||||||
|
if(e.length <= 0){
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
return e.text()
|
||||||
|
},
|
||||||
|
set selected(value){
|
||||||
|
return this.select(value)
|
||||||
|
},
|
||||||
|
|
||||||
// Copy/Paste actions...
|
// Copy/Paste actions...
|
||||||
//
|
//
|
||||||
// XXX use 'Text' for IE...
|
// XXX use 'Text' for IE...
|
||||||
@ -611,7 +626,7 @@ var BrowserPrototype = {
|
|||||||
var that = this
|
var that = this
|
||||||
var browser = this.dom
|
var browser = this.dom
|
||||||
|
|
||||||
var elems = browser.find('.list>div' + (ignore_disabled ? ':not(.disabled)' : ''))
|
var elems = browser.find('.list>div:visible' + (ignore_disabled ? ':not(.disabled)' : ''))
|
||||||
|
|
||||||
if(pattern == '*'){
|
if(pattern == '*'){
|
||||||
return elems
|
return elems
|
||||||
@ -746,7 +761,7 @@ var BrowserPrototype = {
|
|||||||
if(this.options.fullpathedit){
|
if(this.options.fullpathedit){
|
||||||
var browser = this.dom
|
var browser = this.dom
|
||||||
var path = this.strPath
|
var path = this.strPath
|
||||||
var orig = this.select('!').text()
|
var orig = this.selected
|
||||||
browser
|
browser
|
||||||
.attr('orig-path', path)
|
.attr('orig-path', path)
|
||||||
.attr('orig-selection', orig)
|
.attr('orig-selection', orig)
|
||||||
@ -907,7 +922,7 @@ var BrowserPrototype = {
|
|||||||
// .select('<number>!')
|
// .select('<number>!')
|
||||||
// -> elem
|
// -> elem
|
||||||
//
|
//
|
||||||
// Select element by its text...
|
// Select element by its full or partial text...
|
||||||
// NOTE: if text matches one of the reserved commands above use
|
// NOTE: if text matches one of the reserved commands above use
|
||||||
// quotes to escape it...
|
// quotes to escape it...
|
||||||
// .select('<text>')
|
// .select('<text>')
|
||||||
@ -943,7 +958,7 @@ var BrowserPrototype = {
|
|||||||
// ...currently the outer quotes are cleared.
|
// ...currently the outer quotes are cleared.
|
||||||
select: function(elem, filtering){
|
select: function(elem, filtering){
|
||||||
var browser = this.dom
|
var browser = this.dom
|
||||||
var pattern = '.list div:not(.disabled):not(.filtered-out)'
|
var pattern = '.list>div:not(.disabled):not(.filtered-out):visible'
|
||||||
var elems = browser.find(pattern)
|
var elems = browser.find(pattern)
|
||||||
|
|
||||||
if(elems.length == 0){
|
if(elems.length == 0){
|
||||||
@ -1175,6 +1190,72 @@ var BrowserPrototype = {
|
|||||||
|
|
||||||
// Open action...
|
// Open action...
|
||||||
//
|
//
|
||||||
|
// Open current element...
|
||||||
|
// NOTE: if no element selected this will do nothing.
|
||||||
|
// NOTE: this will return the return of .options.open(..) or the
|
||||||
|
// full path if null is returned...
|
||||||
|
// .open()
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
// Open a path...
|
||||||
|
// .open(<path>)
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
// Register an open event handler...
|
||||||
|
// .open(<function>)
|
||||||
|
// -> this
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The following signatures are relative from current context via
|
||||||
|
// .select(..), see it for more details...
|
||||||
|
// NOTE: this will also select the opened element, so to get the full
|
||||||
|
// path from the handler just get the current path and value:
|
||||||
|
// var full_path = '/' + browser.path.concat([browser.selected || '']).join('/')
|
||||||
|
// or:
|
||||||
|
// browser.dom.attr('path') +'/'+ browser.dom.attr('value')
|
||||||
|
//
|
||||||
|
// Open first/last element...
|
||||||
|
// .open('first')
|
||||||
|
// .open('last')
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
// Open next/prev element...
|
||||||
|
// .open('next')
|
||||||
|
// .open('prev')
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
// Open active element at index...
|
||||||
|
// .open(<number>)
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
// Open element by absolute index...
|
||||||
|
// .open('<number>!')
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
// Open element by full or partial text...
|
||||||
|
// .open('<text>')
|
||||||
|
// .open("'<text>'")
|
||||||
|
// .open('"<text>"')
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
// Open first element matching a regexp...
|
||||||
|
// .open(<regexp>)
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
// Open an element explicitly...
|
||||||
|
// .open(<elem>)
|
||||||
|
// -> this
|
||||||
|
// -> object
|
||||||
|
//
|
||||||
|
//
|
||||||
// This is called when an element is selected and opened.
|
// This is called when an element is selected and opened.
|
||||||
//
|
//
|
||||||
// By default this happens in the following situations:
|
// By default this happens in the following situations:
|
||||||
@ -1198,6 +1279,11 @@ var BrowserPrototype = {
|
|||||||
// selected and an actual open action is defined, either in an
|
// selected and an actual open action is defined, either in an
|
||||||
// instance or in .options
|
// instance or in .options
|
||||||
open: function(path){
|
open: function(path){
|
||||||
|
// special case: register the open handler...
|
||||||
|
if(typeof(path) == typeof(function(){})){
|
||||||
|
return this.on('open', path)
|
||||||
|
}
|
||||||
|
|
||||||
var elem = this.select('!')
|
var elem = this.select('!')
|
||||||
|
|
||||||
// get path + selection...
|
// get path + selection...
|
||||||
@ -1221,6 +1307,7 @@ var BrowserPrototype = {
|
|||||||
elem = this.select(elem)
|
elem = this.select(elem)
|
||||||
|
|
||||||
// select-compatible -- select from current context...
|
// select-compatible -- select from current context...
|
||||||
|
// XXX this is semilar to the first branch, should we merge them???
|
||||||
} else {
|
} else {
|
||||||
elem = this.select(path)
|
elem = this.select(path)
|
||||||
|
|
||||||
@ -1236,13 +1323,17 @@ var BrowserPrototype = {
|
|||||||
var m = this.options.open
|
var m = this.options.open
|
||||||
var args = args2array(arguments)
|
var args = args2array(arguments)
|
||||||
args[0] = path
|
args[0] = path
|
||||||
var res = m ? m.apply(this, args) : path
|
var res = m ? m.apply(this, args) : this
|
||||||
|
res = res || this
|
||||||
|
|
||||||
// trigger the 'open' events...
|
// trigger the 'open' events...
|
||||||
|
// NOTE: this will propagate up to the parent...
|
||||||
if(elem.length > 0){
|
if(elem.length > 0){
|
||||||
elem.trigger('open', path)
|
elem.trigger('open', path)
|
||||||
}
|
|
||||||
|
} else {
|
||||||
this.trigger('open', path)
|
this.trigger('open', path)
|
||||||
|
}
|
||||||
|
|
||||||
return res
|
return res
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user