|
|
@@ -49,19 +49,20 @@ $(() => {
|
|
|
container.appendChild(checkbox);
|
|
|
container.appendChild(editButton);
|
|
|
let setSelectionCheckboxValue = function(media, value) {
|
|
|
- let checked = media.ui.checkbox.checked;
|
|
|
+ media.ui.checkbox.checked = value;
|
|
|
let indexInSelection = selectedThumbnails.indexOf(media.md5sum);
|
|
|
- if (checked && indexInSelection < 0) {
|
|
|
+ if (value && indexInSelection < 0) {
|
|
|
selectedThumbnails.push(media.md5sum);
|
|
|
onItemSelected(media);
|
|
|
return true;
|
|
|
- } else if (!checked && indexInSelection >= 0) {
|
|
|
+ } else if (!value && indexInSelection >= 0) {
|
|
|
selectedThumbnails.splice(indexInSelection, 1);
|
|
|
onItemDeselected(media);
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
+ mediaItem.setSelectionCheckboxValue = value => setSelectionCheckboxValue(mediaItem, value);
|
|
|
let cascadeSetSelectionCheckboxValue = function(value) {
|
|
|
if (!setSelectionCheckboxValue(mediaItem, value))
|
|
|
return;
|
|
|
@@ -161,6 +162,11 @@ $(() => {
|
|
|
lastItemDisplayed = null;
|
|
|
displayedItemCount = 0;
|
|
|
targetDisplayedItems = displayItemBatchCount;
|
|
|
+ for (let i of selectedThumbnails) {
|
|
|
+ let media = MediaStorage.Instance.getMediaLocal(i);
|
|
|
+ media?.setSelectionCheckboxValue(false);
|
|
|
+ }
|
|
|
+ lastSelection = null;
|
|
|
for (let i of MediaStorage.Instance.medias)
|
|
|
if (window.FilterManager.match(i)) {
|
|
|
redraw(newContainer, i);
|
|
|
@@ -182,6 +188,8 @@ $(() => {
|
|
|
for (let index = lastItemDisplayed ? (MediaStorage.Instance.getMediaIndex(lastItemDisplayed) +1) : 0;
|
|
|
displayedItemCount < targetDisplayedItems; ++index) {
|
|
|
let media = MediaStorage.Instance.medias[index];
|
|
|
+ if (!media)
|
|
|
+ return;
|
|
|
if (window.FilterManager.match(media))
|
|
|
redraw(container, media);
|
|
|
}
|