add Slide Delay setting

This commit is contained in:
ccd0 2014-07-05 14:43:06 -07:00
parent 815f58be8b
commit 045260362d
3 changed files with 29 additions and 19 deletions

View File

@ -444,7 +444,7 @@ Config =
'Advance to next post when contracting an expanded image.'
]
gallery:
gallery :
'Hide Thumbnails': [
false
]
@ -455,6 +455,9 @@ Config =
'Fit Height': [
true
]
'Slide Delay': [
5.0
]
threadWatcher:
'Current Board': [

View File

@ -1489,6 +1489,9 @@ div.boardTitle {
:root.gal-hide-thumbnails:.gal-fit-height:not(.gal-pdf) .gal-count {
right: 28px !important;
}
.field[name="Slide Delay"] {
width: 4em;
}
@media screen and (resolution: 1dppx) {
.fa-bars {
font-size: 14px;

View File

@ -2,6 +2,8 @@ Gallery =
init: ->
return if g.VIEW is 'catalog' or g.BOARD is 'f' or !Conf['Gallery']
@delay = Conf['Slide Delay']
el = $.el 'a',
href: 'javascript:;'
id: 'appchan-gal'
@ -17,8 +19,6 @@ Gallery =
name: 'Gallery'
cb: @node
interval: 5 * $.SECOND
node: ->
return unless @file
if Gallery.nodes
@ -64,13 +64,9 @@ Gallery =
$.on menuButton, 'click', (e) ->
nodes.menu.toggle e, @, g
{createSubEntry} = Gallery.menu
for name of Config.gallery
{el} = createSubEntry name
nodes.menu.addEntry
el: el
order: 0
for entry in Gallery.menu.createSubEntries()
entry.order = 0
nodes.menu.addEntry entry
$.on d, 'keydown', cb.keybinds
$.off d, 'keydown', Keybinds.keydown
@ -229,7 +225,7 @@ Gallery =
$.on current, (if isVideo then 'canplaythrough' else 'load'), Gallery.cb.startTimer
startTimer: ->
Gallery.timeoutID = setTimeout Gallery.cb.checkTimer, Gallery.interval
Gallery.timeoutID = setTimeout Gallery.cb.checkTimer, Gallery.delay * $.SECOND
checkTimer: ->
{current} = Gallery.nodes
@ -267,6 +263,8 @@ Gallery =
setFitness: ->
(if @checked then $.addClass else $.rmClass) doc, "gal-#{@name.toLowerCase().replace /\s+/g, '-'}"
setDelay: -> Gallery.delay = +@value
menu:
init: ->
return if g.VIEW is 'catalog' or !Conf['Gallery']
@ -275,21 +273,27 @@ Gallery =
textContent: 'Gallery'
className: 'gallery-link'
{createSubEntry} = Gallery.menu
subEntries = []
for name of Config.gallery
subEntries.push createSubEntry name
Header.menu.addEntry
el: el
order: 105
subEntries: subEntries
subEntries: Gallery.menu.createSubEntries()
createSubEntry: (name) ->
label = UI.checkbox name, " #{name}"
input = label.firstElementChild
if name in ['Fit Width', 'Fit Height', 'Hide Thumbnails']
$.on input, 'change', Gallery.cb.setFitness
$.on input, 'change', Gallery.cb.setFitness
$.event 'change', null, input
$.on input, 'change', $.cb.checked
el: label
createSubEntries: ->
subEntries = ['Hide Thumbnails', 'Fit Width', 'Fit Height'].map Gallery.menu.createSubEntry
delayLabel = $.el 'label', innerHTML: 'Slide Delay: <input type="number" name="Slide Delay" min="0" step="any" class="field">'
delayInput = delayLabel.firstElementChild
delayInput.value = Gallery.delay
$.on delayInput, 'change', Gallery.cb.setDelay
$.on delayInput, 'change', $.cb.value
subEntries.push el: delayLabel
subEntries