diff --git a/client/src/main/java/ctbrec/ui/ThumbOverviewTab.java b/client/src/main/java/ctbrec/ui/ThumbOverviewTab.java index c35c9404..035aef03 100644 --- a/client/src/main/java/ctbrec/ui/ThumbOverviewTab.java +++ b/client/src/main/java/ctbrec/ui/ThumbOverviewTab.java @@ -22,6 +22,7 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -349,10 +350,17 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { if(updatesSuspended) { return; } - List models = updateService.getValue(); + List models = filterIgnoredModels(updateService.getValue()); updateGrid(models); } + private List filterIgnoredModels(List models) { + List ignored = Config.getInstance().getSettings().modelsIgnored; + return models.stream() + .filter(m -> !ignored.contains(m)) + .collect(Collectors.toList()); + } + protected void updateGrid(List models) { gridLock.lock(); try { @@ -465,6 +473,9 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { clipboard.setContent(content); }); + MenuItem ignore = new MenuItem("Ignore"); + ignore.setOnAction((e) -> ignore(getSelectedThumbCells(cell))); + MenuItem sendTip = new MenuItem("Send Tip"); sendTip.setOnAction((e) -> { TipDialog tipDialog = new TipDialog(site, cell.getModel()); @@ -521,7 +532,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { if(site.supportsTips()) { contextMenu.getItems().add(sendTip); } - contextMenu.getItems().addAll(copyUrl); + contextMenu.getItems().addAll(copyUrl, ignore); if(cell.getModel() instanceof MyFreeCamsModel && Objects.equals(System.getenv("CTBREC_DEV"), "1")) { MenuItem debug = new MenuItem("debug"); debug.setOnAction((e) -> { @@ -553,6 +564,14 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { } } + protected void ignore(List selection) { + for (ThumbCell thumbCell : selection) { + Model model = thumbCell.getModel(); + Config.getInstance().getSettings().modelsIgnored.add(model); + grid.getChildren().remove(thumbCell); + } + } + private void showAddToFollowedAnimation(ThumbCell thumbCell) { Platform.runLater(() -> { Transform tx = thumbCell.getLocalToParentTransform(); diff --git a/common/src/main/java/ctbrec/Settings.java b/common/src/main/java/ctbrec/Settings.java index 9378ed15..7726434d 100644 --- a/common/src/main/java/ctbrec/Settings.java +++ b/common/src/main/java/ctbrec/Settings.java @@ -77,6 +77,7 @@ public class Settings { public String lastDownloadDir = ""; public List models = new ArrayList<>(); + public List modelsIgnored = new ArrayList<>(); public List eventHandlers = new ArrayList<>(); public boolean determineResolution = false; public boolean livePreviews = false;