diff --git a/client/src/main/java/ctbrec/ui/menu/ModelMenuContributor.java b/client/src/main/java/ctbrec/ui/menu/ModelMenuContributor.java index 4d832551..d05a79f9 100644 --- a/client/src/main/java/ctbrec/ui/menu/ModelMenuContributor.java +++ b/client/src/main/java/ctbrec/ui/menu/ModelMenuContributor.java @@ -15,6 +15,7 @@ import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Node; import javafx.scene.control.ContextMenu; +import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; import javafx.scene.control.SeparatorMenuItem; import javafx.scene.control.TabPane; @@ -76,16 +77,12 @@ public class ModelMenuContributor { } public void contributeToMenu(List selectedModels, ContextMenu menu) { - startStopCallback = Optional.ofNullable(startStopCallback).orElse(m -> { - }); - followCallback = Optional.ofNullable(followCallback).orElse((m, f, s) -> { - }); - ignoreCallback = Optional.ofNullable(ignoreCallback).orElse(m -> { - }); - portraitCallback = Optional.ofNullable(portraitCallback).orElse(m -> { - }); - callback = Optional.ofNullable(callback).orElse(() -> { - }); + startStopCallback = Optional.ofNullable(startStopCallback).orElse(m -> {}); + followCallback = Optional.ofNullable(followCallback).orElse((m, f, s) -> {}); + ignoreCallback = Optional.ofNullable(ignoreCallback).orElse(m -> {}); + portraitCallback = Optional.ofNullable(portraitCallback).orElse(m -> {}); + callback = Optional.ofNullable(callback).orElse(() -> {}); + addOpenInPlayer(menu, selectedModels); addOpenInBrowser(menu, selectedModels); addCopyUrl(menu, selectedModels); @@ -110,11 +107,15 @@ public class ModelMenuContributor { addPortrait(menu, selectedModels); menu.getItems().add(new SeparatorMenuItem()); - addOpenOnCamGirlFinder(menu, selectedModels); // https://camgirlfinder.net/models?m=everlenn - addOpenOnCamWhores(menu, selectedModels); // https://www.camwhores.tv/search/everlenn/ - addOpenOnMyCamGirl(menu, selectedModels); // https://mycamgirl.net/search?query=everlenn - addOpenOnNrToolFinder(menu, selectedModels); // https://nrtool.to/nrtool/search?s=everlenn - addOpenOnRecu(menu, selectedModels); // https://recu.me/performer/everlenn + // Create a submenu for the "Open On" options + Menu openOnSubMenu = new Menu("Search On ..."); + addOpenOnCamGirlFinder(openOnSubMenu, selectedModels); // https://camgirlfinder.net/models?m=everlenn + addOpenOnCamWhores(openOnSubMenu, selectedModels); // https://www.camwhores.tv/search/everlenn/ + addOpenOnMyCamGirl(openOnSubMenu, selectedModels); // https://mycamgirl.net/search?query=everlenn + addOpenOnNrToolFinder(openOnSubMenu, selectedModels); // https://nrtool.to/nrtool/search?s=everlenn + addOpenOnRecu(openOnSubMenu, selectedModels); // https://recu.me/performer/everlenn + // Add the submenu to the main menu + menu.getItems().add(openOnSubMenu); } public ModelMenuContributor afterwards(Runnable callback) { @@ -156,8 +157,8 @@ public class ModelMenuContributor { menu.getItems().add(openInBrowser); } - private void addOpenOnCamGirlFinder(ContextMenu menu, List selectedModels) { - var openOnCamGirlFinder = new MenuItem("Search on CamGirlFinder"); + private void addOpenOnCamGirlFinder(Menu menu, List selectedModels) { + var openOnCamGirlFinder = new MenuItem("CamGirlFinder"); openOnCamGirlFinder.setOnAction(e -> { for (Model model : selectedModels) { String preview = model.getPreview(); @@ -173,19 +174,19 @@ public class ModelMenuContributor { menu.getItems().add(openOnCamGirlFinder); } - private void addOpenOnCamWhores(ContextMenu menu, List selectedModels) { - var openOnCamWhores = new MenuItem("Search on CamWhores"); + private void addOpenOnCamWhores(Menu menu, List selectedModels) { + var openOnCamWhores = new MenuItem("CamWhores"); openOnCamWhores.setOnAction(e -> { for (Model model : selectedModels) { String query = URLEncoder.encode(model.getName(), UTF_8); - DesktopIntegration.open("https://www.camwhores.tv/search/" + query); + DesktopIntegration.open("https://www.camwhores.tv/search/" + query + "/"); } }); menu.getItems().add(openOnCamWhores); } - private void addOpenOnMyCamGirl(ContextMenu menu, List selectedModels) { - var openOnMyCamGirl = new MenuItem("Search on MyCamGirl"); + private void addOpenOnMyCamGirl(Menu menu, List selectedModels) { + var openOnMyCamGirl = new MenuItem("MyCamGirl"); openOnMyCamGirl.setOnAction(e -> { for (Model model : selectedModels) { String query = URLEncoder.encode(model.getName(), UTF_8); @@ -196,8 +197,8 @@ public class ModelMenuContributor { } @SuppressWarnings("unused") // Remove when NR Tool accepts image URL and below is updated - private void addOpenOnNrToolFinder(ContextMenu menu, List selectedModels) { - var openOnNrToolFinder = new MenuItem("Search on NRTool"); + private void addOpenOnNrToolFinder(Menu menu, List selectedModels) { + var openOnNrToolFinder = new MenuItem("NR Tool"); openOnNrToolFinder.setOnAction(e -> { for (Model model : selectedModels) { String preview = model.getPreview(); @@ -216,8 +217,8 @@ public class ModelMenuContributor { menu.getItems().add(openOnNrToolFinder); } - private void addOpenOnRecu(ContextMenu menu, List selectedModels) { - var openOnRecu = new MenuItem("Search on Recu"); + private void addOpenOnRecu(Menu menu, List selectedModels) { + var openOnRecu = new MenuItem("Recu"); openOnRecu.setOnAction(e -> { for (Model model : selectedModels) { String query = URLEncoder.encode(model.getName(), UTF_8);