mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-03 12:50:09 +00:00
split off marks into a separate module...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
0c3b584ca8
commit
842e7008c2
104
ui/base.js
104
ui/base.js
@ -837,110 +837,6 @@ function shiftImageDownNewRibbon(image, moving){
|
||||
|
||||
|
||||
|
||||
/*********************************************************** Marks ***/
|
||||
|
||||
// XXX shifting images and unmarking in this mode do not work correctly...
|
||||
var toggleMarkesView = createCSSClassToggler('.viewer', 'marks-visible',
|
||||
function(){
|
||||
var cur = $('.current.image')
|
||||
// current is marked...
|
||||
if(cur.hasClass('marked')){
|
||||
centerView(null, 'css')
|
||||
return
|
||||
}
|
||||
// there is a marked image in this ribbon...
|
||||
var target = getImageBefore(cur, null)
|
||||
if(target.length > 0){
|
||||
centerView(focusImage(target), 'css')
|
||||
return
|
||||
}
|
||||
// get marked image from other ribbons...
|
||||
prevRibbon()
|
||||
if($('.current.image').hasClass('marked')){
|
||||
return
|
||||
}
|
||||
nextRibbon()
|
||||
})
|
||||
|
||||
|
||||
// XXX if this unmarks an image in marked-only mode no visible image is
|
||||
// going to be current...
|
||||
var toggleImageMark = createCSSClassToggler('.current.image', 'marked',
|
||||
function(action){
|
||||
toggleMarkesView('on')
|
||||
$('.viewer').trigger('togglingMark', [$('.current.image'), action])
|
||||
})
|
||||
|
||||
|
||||
// mode can be:
|
||||
// - 'ribbon'
|
||||
// - 'all'
|
||||
function removeImageMarks(mode){
|
||||
// remove marks from current ribbon (default)...
|
||||
if(mode == 'ribbon' || mode == null){
|
||||
var ribbon = getRibbon()
|
||||
$('.viewer').trigger('removeingRibbonMarks', [ribbon])
|
||||
return ribbon
|
||||
.find('.marked')
|
||||
.removeClass('marked')
|
||||
|
||||
// remove all marks...
|
||||
} else if(mode == 'all'){
|
||||
$('.viewer').trigger('removeingAllMarks')
|
||||
return $('.marked')
|
||||
.removeClass('marked')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function markAll(mode){
|
||||
// remove marks from current ribbon (default)...
|
||||
if(mode == 'ribbon' || mode == null){
|
||||
var ribbon = getRibbon()
|
||||
$('.viewer').trigger('markingRibbon', [ribbon])
|
||||
return ribbon
|
||||
.find('.image:not(.marked)')
|
||||
.addClass('marked')
|
||||
|
||||
} else if(mode == 'all'){
|
||||
$('.viewer').trigger('markingAll')
|
||||
return $('.image:not(.marked)').addClass('marked')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// NOTE: this only does it's work in the current ribbon...
|
||||
function invertImageMarks(){
|
||||
var ribbon = getRibbon()
|
||||
$('.viewer').trigger('invertingMarks', [ribbon])
|
||||
return ribbon
|
||||
.find('.image')
|
||||
.toggleClass('marked')
|
||||
}
|
||||
|
||||
|
||||
// Toggle marks in the current continuous section of marked or unmarked
|
||||
// images...
|
||||
// XXX need to make this dynamic data compatible...
|
||||
function toggleImageMarkBlock(image){
|
||||
if(image == null){
|
||||
image = $('.current.image')
|
||||
}
|
||||
//$('.viewer').trigger('togglingImageBlockMarks', [image])
|
||||
// we need to invert this...
|
||||
var state = toggleImageMark()
|
||||
var _convert = function(){
|
||||
if(toggleImageMark(this, '?') == state){
|
||||
return false
|
||||
}
|
||||
toggleImageMark(this, state)
|
||||
}
|
||||
image.nextAll('.image').each(_convert)
|
||||
image.prevAll('.image').each(_convert)
|
||||
return state
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
|
||||
45
ui/data.js
45
ui/data.js
@ -590,51 +590,6 @@ function preCacheAllRibbons(){
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Marking
|
||||
*/
|
||||
|
||||
function loadMarkedOnlyData(cmp){
|
||||
cmp = cmp == null ? imageDateCmp : cmp
|
||||
var cur = DATA.current
|
||||
var marked = MARKED.slice().sort(cmp)
|
||||
ALL_DATA = DATA
|
||||
DATA = {
|
||||
varsion: '2.0',
|
||||
current: null,
|
||||
ribbons: [
|
||||
marked
|
||||
],
|
||||
//order: marked.slice(),
|
||||
order: DATA.order,
|
||||
images: DATA.images,
|
||||
}
|
||||
DATA.current = getGIDBefore(cur, 0)
|
||||
loadData(DATA)
|
||||
toggleMarkesView('off')
|
||||
return DATA
|
||||
}
|
||||
|
||||
|
||||
// XXX name this in a better way...
|
||||
function loadAllImages(){
|
||||
DATA = ALL_DATA
|
||||
loadData(DATA)
|
||||
return DATA
|
||||
}
|
||||
|
||||
|
||||
var toggleMarkedOnlyView = createCSSClassToggler('.viewer', 'marked-only-view',
|
||||
function(action){
|
||||
if(action == 'on'){
|
||||
loadMarkedOnlyData()
|
||||
} else {
|
||||
loadAllImages()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Setup
|
||||
*/
|
||||
|
||||
@ -261,6 +261,7 @@ body {
|
||||
<script src="lib/keyboard.js"></script>
|
||||
|
||||
<script src="base.js"></script>
|
||||
<script src="marks.js"></script>
|
||||
<script src="data.js"></script>
|
||||
<script src="ui.js"></script>
|
||||
<script src="keybindings3.js"></script>
|
||||
|
||||
168
ui/marks.js
Executable file
168
ui/marks.js
Executable file
@ -0,0 +1,168 @@
|
||||
/**********************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
**********************************************************************/
|
||||
|
||||
//var DEBUG = DEBUG != null ? DEBUG : true
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
|
||||
/**********************************************************************
|
||||
* Modes
|
||||
*/
|
||||
|
||||
function loadMarkedOnlyData(cmp){
|
||||
cmp = cmp == null ? imageDateCmp : cmp
|
||||
var cur = DATA.current
|
||||
var marked = MARKED.slice().sort(cmp)
|
||||
ALL_DATA = DATA
|
||||
DATA = {
|
||||
varsion: '2.0',
|
||||
current: null,
|
||||
ribbons: [
|
||||
marked
|
||||
],
|
||||
//order: marked.slice(),
|
||||
order: DATA.order,
|
||||
images: DATA.images,
|
||||
}
|
||||
DATA.current = getGIDBefore(cur, 0)
|
||||
loadData(DATA)
|
||||
toggleMarkesView('off')
|
||||
return DATA
|
||||
}
|
||||
|
||||
|
||||
// XXX name this in a better way...
|
||||
function loadAllImages(){
|
||||
DATA = ALL_DATA
|
||||
loadData(DATA)
|
||||
return DATA
|
||||
}
|
||||
|
||||
|
||||
var toggleMarkedOnlyView = createCSSClassToggler('.viewer', 'marked-only-view',
|
||||
function(action){
|
||||
if(action == 'on'){
|
||||
loadMarkedOnlyData()
|
||||
} else {
|
||||
loadAllImages()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// XXX shifting images and unmarking in this mode do not work correctly...
|
||||
var toggleMarkesView = createCSSClassToggler('.viewer', 'marks-visible',
|
||||
function(){
|
||||
var cur = $('.current.image')
|
||||
// current is marked...
|
||||
if(cur.hasClass('marked')){
|
||||
centerView(null, 'css')
|
||||
return
|
||||
}
|
||||
// there is a marked image in this ribbon...
|
||||
var target = getImageBefore(cur, null)
|
||||
if(target.length > 0){
|
||||
centerView(focusImage(target), 'css')
|
||||
return
|
||||
}
|
||||
// get marked image from other ribbons...
|
||||
prevRibbon()
|
||||
if($('.current.image').hasClass('marked')){
|
||||
return
|
||||
}
|
||||
nextRibbon()
|
||||
})
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Actions
|
||||
*/
|
||||
|
||||
// XXX if this unmarks an image in marked-only mode no visible image is
|
||||
// going to be current...
|
||||
var toggleImageMark = createCSSClassToggler('.current.image', 'marked',
|
||||
function(action){
|
||||
toggleMarkesView('on')
|
||||
$('.viewer').trigger('togglingMark', [$('.current.image'), action])
|
||||
})
|
||||
|
||||
|
||||
// mode can be:
|
||||
// - 'ribbon'
|
||||
// - 'all'
|
||||
function removeImageMarks(mode){
|
||||
// remove marks from current ribbon (default)...
|
||||
if(mode == 'ribbon' || mode == null){
|
||||
var ribbon = getRibbon()
|
||||
$('.viewer').trigger('removeingRibbonMarks', [ribbon])
|
||||
return ribbon
|
||||
.find('.marked')
|
||||
.removeClass('marked')
|
||||
|
||||
// remove all marks...
|
||||
} else if(mode == 'all'){
|
||||
$('.viewer').trigger('removeingAllMarks')
|
||||
return $('.marked')
|
||||
.removeClass('marked')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function markAll(mode){
|
||||
// remove marks from current ribbon (default)...
|
||||
if(mode == 'ribbon' || mode == null){
|
||||
var ribbon = getRibbon()
|
||||
$('.viewer').trigger('markingRibbon', [ribbon])
|
||||
return ribbon
|
||||
.find('.image:not(.marked)')
|
||||
.addClass('marked')
|
||||
|
||||
} else if(mode == 'all'){
|
||||
$('.viewer').trigger('markingAll')
|
||||
return $('.image:not(.marked)').addClass('marked')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// NOTE: this only does it's work in the current ribbon...
|
||||
function invertImageMarks(){
|
||||
var ribbon = getRibbon()
|
||||
$('.viewer').trigger('invertingMarks', [ribbon])
|
||||
return ribbon
|
||||
.find('.image')
|
||||
.toggleClass('marked')
|
||||
}
|
||||
|
||||
|
||||
// Toggle marks in the current continuous section of marked or unmarked
|
||||
// images...
|
||||
// XXX need to make this dynamic data compatible...
|
||||
function toggleImageMarkBlock(image){
|
||||
if(image == null){
|
||||
image = $('.current.image')
|
||||
}
|
||||
//$('.viewer').trigger('togglingImageBlockMarks', [image])
|
||||
// we need to invert this...
|
||||
var state = toggleImageMark()
|
||||
var _convert = function(){
|
||||
if(toggleImageMark(this, '?') == state){
|
||||
return false
|
||||
}
|
||||
toggleImageMark(this, state)
|
||||
}
|
||||
image.nextAll('.image').each(_convert)
|
||||
image.prevAll('.image').each(_convert)
|
||||
return state
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* vim:set ts=4 sw=4 : */
|
||||
Loading…
x
Reference in New Issue
Block a user