forked from j62/ctbrec
Add button/dialog to settings to edit the ignore list
This commit is contained in:
parent
9696edd002
commit
0ae139e17a
|
@ -570,6 +570,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener {
|
|||
Config.getInstance().getSettings().modelsIgnored.add(model);
|
||||
grid.getChildren().remove(thumbCell);
|
||||
}
|
||||
selectedThumbCells.clear();
|
||||
}
|
||||
|
||||
private void showAddToFollowedAnimation(ThumbCell thumbCell) {
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
package ctbrec.ui.settings;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import ctbrec.Config;
|
||||
import ctbrec.Model;
|
||||
import ctbrec.ui.controls.Dialogs;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.ButtonType;
|
||||
import javafx.scene.control.Dialog;
|
||||
import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.SelectionMode;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
public class IgnoreListDialog extends Dialog<Void> {
|
||||
|
||||
private static final transient Logger LOG = LoggerFactory.getLogger(IgnoreListDialog.class);
|
||||
|
||||
private Scene parent;
|
||||
private ListView<Model> ignoreList;
|
||||
|
||||
public IgnoreListDialog(Scene parent) {
|
||||
this.parent = parent;
|
||||
createGui();
|
||||
loadIgnoredModels();
|
||||
}
|
||||
|
||||
private void createGui() {
|
||||
setTitle("Ignore List");
|
||||
getDialogPane().getButtonTypes().addAll(ButtonType.OK);
|
||||
initModality(Modality.APPLICATION_MODAL);
|
||||
setResizable(true);
|
||||
InputStream icon = Dialogs.class.getResourceAsStream("/icon.png");
|
||||
Stage stage = (Stage) getDialogPane().getScene().getWindow();
|
||||
stage.getIcons().add(new Image(icon));
|
||||
if(parent != null) {
|
||||
stage.getScene().getStylesheets().addAll(parent.getStylesheets());
|
||||
}
|
||||
|
||||
GridPane grid = new GridPane();
|
||||
grid.setHgap(10);
|
||||
grid.setVgap(10);
|
||||
grid.setPadding(new Insets(20, 150, 10, 10));
|
||||
|
||||
ignoreList = new ListView<>();
|
||||
ignoreList.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
|
||||
ignoreList.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
|
||||
if (event.getCode() == KeyCode.DELETE) {
|
||||
removeSelectedModels();
|
||||
}
|
||||
});
|
||||
grid.add(ignoreList, 0, 0);
|
||||
|
||||
Button remove = new Button("Remove");
|
||||
remove.setOnAction(evt -> removeSelectedModels());
|
||||
grid.add(remove, 0, 1);
|
||||
|
||||
getDialogPane().setContent(grid);
|
||||
setResizable(true);
|
||||
}
|
||||
|
||||
private void removeSelectedModels() {
|
||||
List<Model> selectedModels = ignoreList.getSelectionModel().getSelectedItems();
|
||||
if(selectedModels.isEmpty()) {
|
||||
return;
|
||||
} else {
|
||||
Config.getInstance().getSettings().modelsIgnored.removeAll(selectedModels);
|
||||
ignoreList.getItems().removeAll(selectedModels);
|
||||
LOG.debug(Config.getInstance().getSettings().modelsIgnored.toString());
|
||||
try {
|
||||
Config.getInstance().save();
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Couldn't save config", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void loadIgnoredModels() {
|
||||
List<Model> ignored = Config.getInstance().getSettings().modelsIgnored;
|
||||
ignoreList.getItems().addAll(ignored);
|
||||
}
|
||||
}
|
|
@ -27,6 +27,7 @@ import javafx.geometry.HPos;
|
|||
import javafx.geometry.Insets;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.control.Accordion;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.CheckBox;
|
||||
import javafx.scene.control.ComboBox;
|
||||
import javafx.scene.control.Label;
|
||||
|
@ -136,6 +137,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
|||
ActionSettingsPanel actions = new ActionSettingsPanel(this, recorder);
|
||||
rightSide.getChildren().add(actions);
|
||||
proxySettingsPane = new ProxySettingsPane(this);
|
||||
rightSide.getChildren().add(createIgnoreListPanel());
|
||||
rightSide.getChildren().add(proxySettingsPane);
|
||||
for (int i = 0; i < sites.size(); i++) {
|
||||
Site site = sites.get(i);
|
||||
|
@ -413,6 +415,16 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
|||
return locations;
|
||||
}
|
||||
|
||||
private Node createIgnoreListPanel() {
|
||||
GridPane layout = createGridLayout();
|
||||
Button edit = new Button("Edit");
|
||||
edit.setOnAction(e -> new IgnoreListDialog(edit.getScene()).showAndWait());
|
||||
layout.add(edit, 0, 0);
|
||||
TitledPane ignoreList = new TitledPane("Ignore List", layout);
|
||||
ignoreList.setCollapsible(false);
|
||||
return ignoreList;
|
||||
}
|
||||
|
||||
private Node createGeneralPanel() {
|
||||
GridPane layout = createGridLayout();
|
||||
int row = 0;
|
||||
|
|
Loading…
Reference in New Issue