Remove select-folders button, add settings option

Hide 'Select split-files' button when 'Search-for-roms' option enabled in options
Add settings option for this
Update l10n
Update icons, correct css.
This commit is contained in:
Dmitry Isaenko 2020-11-29 17:19:57 +03:00
parent 0a8440ef34
commit 619a2b157e
23 changed files with 151 additions and 58 deletions

View file

@ -102,6 +102,9 @@ public class AppPreferences {
public boolean getAutoCheckUpdates(){return preferences.getBoolean("AUTOCHECK4UPDATES", false); } public boolean getAutoCheckUpdates(){return preferences.getBoolean("AUTOCHECK4UPDATES", false); }
public void setAutoCheckUpdates(boolean prop){preferences.putBoolean("AUTOCHECK4UPDATES", prop); } public void setAutoCheckUpdates(boolean prop){preferences.putBoolean("AUTOCHECK4UPDATES", prop); }
public boolean getDirectoriesChooserForRoms(){return preferences.getBoolean("dirchooser4roms", false); }
public void setDirectoriesChooserForRoms(boolean prop){preferences.putBoolean("dirchooser4roms", prop); }
public boolean getTfXCI(){return preferences.getBoolean("TF_XCI", true);} public boolean getTfXCI(){return preferences.getBoolean("TF_XCI", true);}
public void setTfXCI(boolean prop){ preferences.putBoolean("TF_XCI", prop); } public void setTfXCI(boolean prop){ preferences.putBoolean("TF_XCI", prop); }

View file

@ -69,9 +69,9 @@ public class GamesController implements Initializable {
public NSTableViewController tableFilesListController; // Accessible from Mediator (for drag-n-drop support) public NSTableViewController tableFilesListController; // Accessible from Mediator (for drag-n-drop support)
@FXML @FXML
private Button selectNspBtn, selectSplitNspBtn, selectFolderBtn, uploadStopBtn; private Button selectNspBtn, selectSplitNspBtn, uploadStopBtn;
private String previouslyOpenedPath; private String previouslyOpenedPath;
private Region btnUpStopImage; private Region btnUpStopImage, btnSelectImage;
private ResourceBundle resourceBundle; private ResourceBundle resourceBundle;
private CancellableRunnable usbNetCommunications; private CancellableRunnable usbNetCommunications;
private Thread workThread; private Thread workThread;
@ -79,11 +79,12 @@ public class GamesController implements Initializable {
@Override @Override
public void initialize(URL url, ResourceBundle resourceBundle) { public void initialize(URL url, ResourceBundle resourceBundle) {
this.resourceBundle = resourceBundle; this.resourceBundle = resourceBundle;
AppPreferences preferences = AppPreferences.getInstance();
ObservableList<String> choiceProtocolList = FXCollections.observableArrayList("TinFoil", "GoldLeaf"); ObservableList<String> choiceProtocolList = FXCollections.observableArrayList("TinFoil", "GoldLeaf");
choiceProtocol.setItems(choiceProtocolList); choiceProtocol.setItems(choiceProtocolList);
choiceProtocol.getSelectionModel().select(AppPreferences.getInstance().getProtocol()); choiceProtocol.getSelectionModel().select(preferences.getProtocol());
choiceProtocol.setOnAction(e-> { choiceProtocol.setOnAction(e-> {
tableFilesListController.setNewProtocol(getSelectedProtocol()); tableFilesListController.setNewProtocol(getSelectedProtocol());
if (getSelectedProtocol().equals("GoldLeaf")) { if (getSelectedProtocol().equals("GoldLeaf")) {
@ -106,7 +107,7 @@ public class GamesController implements Initializable {
ObservableList<String> choiceNetUsbList = FXCollections.observableArrayList("USB", "NET"); ObservableList<String> choiceNetUsbList = FXCollections.observableArrayList("USB", "NET");
choiceNetUsb.setItems(choiceNetUsbList); choiceNetUsb.setItems(choiceNetUsbList);
choiceNetUsb.getSelectionModel().select(AppPreferences.getInstance().getNetUsb()); choiceNetUsb.getSelectionModel().select(preferences.getNetUsb());
if (getSelectedProtocol().equals("GoldLeaf")) { if (getSelectedProtocol().equals("GoldLeaf")) {
choiceNetUsb.setDisable(true); choiceNetUsb.setDisable(true);
choiceNetUsb.getSelectionModel().select("USB"); choiceNetUsb.getSelectionModel().select("USB");
@ -122,7 +123,7 @@ public class GamesController implements Initializable {
} }
}); });
// Set and configure NS IP field behavior // Set and configure NS IP field behavior
nsIpTextField.setText(AppPreferences.getInstance().getNsIp()); nsIpTextField.setText(preferences.getNsIp());
if (getSelectedProtocol().equals("TinFoil") && getSelectedNetUsb().equals("NET")){ if (getSelectedProtocol().equals("TinFoil") && getSelectedNetUsb().equals("NET")){
nsIpLbl.setVisible(true); nsIpLbl.setVisible(true);
nsIpTextField.setVisible(true); nsIpTextField.setVisible(true);
@ -139,12 +140,9 @@ public class GamesController implements Initializable {
switchThemeBtn.setGraphic(btnSwitchImage); switchThemeBtn.setGraphic(btnSwitchImage);
this.switchThemeBtn.setOnAction(e->switchTheme()); this.switchThemeBtn.setOnAction(e->switchTheme());
selectNspBtn.setOnAction(e-> selectFilesBtnAction());
selectNspBtn.getStyleClass().add("buttonSelect"); selectNspBtn.getStyleClass().add("buttonSelect");
this.btnSelectImage = new Region();
selectFolderBtn.setOnAction(e-> selectFoldersBtnAction()); setFilesSelectorButtonBehaviour(preferences.getDirectoriesChooserForRoms());
selectFolderBtn.getStyleClass().add("buttonSelect");
selectFolderBtn.setTooltip(new Tooltip(resourceBundle.getString("btn_OpenFolders_tooltip")));
selectSplitNspBtn.setOnAction(e-> selectSplitBtnAction()); selectSplitNspBtn.setOnAction(e-> selectSplitBtnAction());
selectSplitNspBtn.getStyleClass().add("buttonSelect"); selectSplitNspBtn.getStyleClass().add("buttonSelect");
@ -158,7 +156,7 @@ public class GamesController implements Initializable {
uploadStopBtn.getStyleClass().add("buttonUp"); uploadStopBtn.getStyleClass().add("buttonUp");
uploadStopBtn.setGraphic(btnUpStopImage); uploadStopBtn.setGraphic(btnUpStopImage);
this.previouslyOpenedPath = AppPreferences.getInstance().getRecent(); this.previouslyOpenedPath = preferences.getRecent();
} }
/** /**
* Changes UI theme on the go * Changes UI theme on the go
@ -206,11 +204,11 @@ public class GamesController implements Initializable {
} }
private boolean isAllFiletypesAllowedForGL() { private boolean isAllFiletypesAllowedForGL() {
return ! MediatorControl.getInstance().getContoller().getSettingsCtrlr().getGoldleafSettings().getNSPFileFilterForGL(); return ! MediatorControl.getInstance().getSettingsController().getGoldleafSettings().getNSPFileFilterForGL();
} }
private boolean isXciNszXczSupport() { private boolean isXciNszXczSupport() {
return MediatorControl.getInstance().getContoller().getSettingsCtrlr().getTinfoilSettings().isXciNszXczSupport(); return MediatorControl.getInstance().getSettingsController().getTinfoilSettings().isXciNszXczSupport();
} }
/** /**
@ -301,6 +299,9 @@ public class GamesController implements Initializable {
final String filesRegex, final String filesRegex,
final String foldersRegex) final String foldersRegex)
{ {
if (startFolder == null)
return;
final String startFolderNameInLowercase = startFolder.getName().toLowerCase(); final String startFolderNameInLowercase = startFolder.getName().toLowerCase();
if (startFolder.isFile()) { if (startFolder.isFile()) {
@ -368,7 +369,7 @@ public class GamesController implements Initializable {
nspToUpload = new LinkedList<>(); nspToUpload = new LinkedList<>();
} }
SettingsController settings = MediatorControl.getInstance().getContoller().getSettingsCtrlr(); SettingsController settings = MediatorControl.getInstance().getSettingsController();
// If USB selected // If USB selected
if (getSelectedProtocol().equals("GoldLeaf") ){ if (getSelectedProtocol().equals("GoldLeaf") ){
final SettingsBlockGoldleafController goldleafSettings = settings.getGoldleafSettings(); final SettingsBlockGoldleafController goldleafSettings = settings.getGoldleafSettings();
@ -510,6 +511,24 @@ public class GamesController implements Initializable {
}).start(); }).start();
} }
public void updateFilesSelectorButtonBehaviour(boolean isDirectoryChooser){
btnSelectImage.getStyleClass().clear();
setFilesSelectorButtonBehaviour(isDirectoryChooser);
}
private void setFilesSelectorButtonBehaviour(boolean isDirectoryChooser){
if (isDirectoryChooser){
selectNspBtn.setOnAction(e -> selectFoldersBtnAction());
btnSelectImage.getStyleClass().add("regionScanFolders");
selectSplitNspBtn.setVisible(false);
}
else {
selectNspBtn.setOnAction(e -> selectFilesBtnAction());
btnSelectImage.getStyleClass().add("regionSelectFiles");
selectSplitNspBtn.setVisible(true);
}
selectNspBtn.setGraphic(btnSelectImage);
//selectFolderBtn.setTooltip(new Tooltip(resourceBundle.getString("btn_OpenFolders_tooltip")));
}
/** /**
* Get 'Recent' path * Get 'Recent' path
*/ */

View file

@ -41,7 +41,7 @@ public class NSLMainController implements Initializable {
public ProgressBar progressBar; // Accessible from Mediator public ProgressBar progressBar; // Accessible from Mediator
@FXML @FXML
public GamesController GamesTabController; // Accessible from Mediator | todo: incapsulate private GamesController GamesTabController; // Accessible from Mediator | todo: incapsulate
@FXML @FXML
private SettingsController SettingsTabController; private SettingsController SettingsTabController;
@FXML @FXML

View file

@ -38,8 +38,6 @@ import java.util.List;
import java.util.ResourceBundle; import java.util.ResourceBundle;
public class NSTableViewController implements Initializable { public class NSTableViewController implements Initializable {
private static final DataFormat SERIALIZED_MIME_TYPE = new DataFormat("application/x-java-serialized-object");
@FXML @FXML
private TableView<NSLRowModel> table; private TableView<NSLRowModel> table;
private ObservableList<NSLRowModel> rowsObsLst; private ObservableList<NSLRowModel> rowsObsLst;
@ -57,7 +55,7 @@ public class NSTableViewController implements Initializable {
if (keyEvent.getCode() == KeyCode.DELETE && !MediatorControl.getInstance().getTransferActive()) { if (keyEvent.getCode() == KeyCode.DELETE && !MediatorControl.getInstance().getTransferActive()) {
rowsObsLst.removeAll(table.getSelectionModel().getSelectedItems()); rowsObsLst.removeAll(table.getSelectionModel().getSelectedItems());
if (rowsObsLst.isEmpty()) if (rowsObsLst.isEmpty())
MediatorControl.getInstance().getContoller().getGamesCtrlr().disableUploadStopBtn(true); // TODO: change to something better MediatorControl.getInstance().getGamesController().disableUploadStopBtn(true); // TODO: change to something better
table.refresh(); table.refresh();
} else if (keyEvent.getCode() == KeyCode.SPACE) { } else if (keyEvent.getCode() == KeyCode.SPACE) {
for (NSLRowModel item : table.getSelectionModel().getSelectedItems()) { for (NSLRowModel item : table.getSelectionModel().getSelectedItems()) {
@ -175,13 +173,13 @@ public class NSTableViewController implements Initializable {
deleteMenuItem.setOnAction(actionEvent -> { deleteMenuItem.setOnAction(actionEvent -> {
rowsObsLst.remove(row.getItem()); rowsObsLst.remove(row.getItem());
if (rowsObsLst.isEmpty()) if (rowsObsLst.isEmpty())
MediatorControl.getInstance().getContoller().getGamesCtrlr().disableUploadStopBtn(true); // TODO: change to something better MediatorControl.getInstance().getGamesController().disableUploadStopBtn(true); // TODO: change to something better
table.refresh(); table.refresh();
}); });
MenuItem deleteAllMenuItem = new MenuItem(resourceBundle.getString("tab1_table_contextMenu_Btn_DeleteAll")); MenuItem deleteAllMenuItem = new MenuItem(resourceBundle.getString("tab1_table_contextMenu_Btn_DeleteAll"));
deleteAllMenuItem.setOnAction(actionEvent -> { deleteAllMenuItem.setOnAction(actionEvent -> {
rowsObsLst.clear(); rowsObsLst.clear();
MediatorControl.getInstance().getContoller().getGamesCtrlr().disableUploadStopBtn(true); // TODO: change to something better MediatorControl.getInstance().getGamesController().disableUploadStopBtn(true); // TODO: change to something better
table.refresh(); table.refresh();
}); });
contextMenu.getItems().addAll(deleteMenuItem, deleteAllMenuItem); contextMenu.getItems().addAll(deleteMenuItem, deleteAllMenuItem);
@ -226,7 +224,7 @@ public class NSTableViewController implements Initializable {
} }
else { else {
rowsObsLst.add(new NSLRowModel(file, true)); rowsObsLst.add(new NSLRowModel(file, true));
MediatorControl.getInstance().getContoller().getGamesCtrlr().disableUploadStopBtn(false); // TODO: change to something better MediatorControl.getInstance().getGamesController().disableUploadStopBtn(false); // TODO: change to something better
} }
table.refresh(); table.refresh();
} }
@ -246,7 +244,7 @@ public class NSTableViewController implements Initializable {
else { else {
for (File file: newFiles) for (File file: newFiles)
rowsObsLst.add(new NSLRowModel(file, true)); rowsObsLst.add(new NSLRowModel(file, true));
MediatorControl.getInstance().getContoller().getGamesCtrlr().disableUploadStopBtn(false); // TODO: change to something better MediatorControl.getInstance().getGamesController().disableUploadStopBtn(false); // TODO: change to something better
} }
//rowsObsLst.get(0).setMarkForUpload(true); //rowsObsLst.get(0).setMarkForUpload(true);
table.refresh(); table.refresh();

View file

@ -28,6 +28,7 @@ import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Hyperlink; import javafx.scene.control.Hyperlink;
import javafx.scene.layout.Region; import javafx.scene.layout.Region;
import nsusbloader.AppPreferences; import nsusbloader.AppPreferences;
import nsusbloader.MediatorControl;
import nsusbloader.ModelControllers.UpdatesChecker; import nsusbloader.ModelControllers.UpdatesChecker;
import nsusbloader.ServiceWindow; import nsusbloader.ServiceWindow;
import nsusbloader.UI.LocaleHolder; import nsusbloader.UI.LocaleHolder;
@ -47,7 +48,8 @@ public class SettingsBlockGenericController implements Initializable {
driversInstallBtn, driversInstallBtn,
checkForUpdBtn; checkForUpdBtn;
@FXML @FXML
private CheckBox autoCheckForUpdatesCB; private CheckBox autoCheckForUpdatesCB,
direcroriesChooserForRomsCB;
@FXML @FXML
private Hyperlink newVersionHyperlink; private Hyperlink newVersionHyperlink;
@ -61,6 +63,10 @@ public class SettingsBlockGenericController implements Initializable {
final AppPreferences preferences = AppPreferences.getInstance(); final AppPreferences preferences = AppPreferences.getInstance();
autoCheckForUpdatesCB.setSelected(preferences.getAutoCheckUpdates()); autoCheckForUpdatesCB.setSelected(preferences.getAutoCheckUpdates());
direcroriesChooserForRomsCB.setSelected(preferences.getDirectoriesChooserForRoms());
direcroriesChooserForRomsCB.setOnAction(actionEvent ->
MediatorControl.getInstance().getGamesController().updateFilesSelectorButtonBehaviour(direcroriesChooserForRomsCB.isSelected())
);
Region btnSwitchImage = new Region(); Region btnSwitchImage = new Region();
btnSwitchImage.getStyleClass().add("regionUpdatesCheck"); btnSwitchImage.getStyleClass().add("regionUpdatesCheck");
@ -124,7 +130,13 @@ public class SettingsBlockGenericController implements Initializable {
ResourceBundle.getBundle("locale", newLocale).getString("windowBodyRestartToApplyLang")); ResourceBundle.getBundle("locale", newLocale).getString("windowBodyRestartToApplyLang"));
} }
private boolean getAutoCheckForUpdates(){ return autoCheckForUpdatesCB.isSelected(); } private boolean getAutoCheckForUpdates(){
return autoCheckForUpdatesCB.isSelected();
}
public boolean isDirectoriesChooserForRoms(){
return direcroriesChooserForRomsCB.isSelected();
}
protected void registerHostServices(HostServices hostServices){ this.hostServices = hostServices;} protected void registerHostServices(HostServices hostServices){ this.hostServices = hostServices;}
@ -135,5 +147,6 @@ public class SettingsBlockGenericController implements Initializable {
void updatePreferencesOnExit() { void updatePreferencesOnExit() {
AppPreferences.getInstance().setAutoCheckUpdates(getAutoCheckForUpdates()); AppPreferences.getInstance().setAutoCheckUpdates(getAutoCheckForUpdates());
AppPreferences.getInstance().setDirectoriesChooserForRoms(isDirectoriesChooserForRoms());
} }
} }

View file

@ -151,7 +151,7 @@ public class SplitMergeController implements Initializable {
convertBtn.setOnAction(actionEvent -> setConvertBtnAction()); convertBtn.setOnAction(actionEvent -> setConvertBtnAction());
} }
public void notifySmThreadStarted(boolean isStart, EModule type){ // todo: refactor: remove everything, place to separate container and just disable. public void notifyThreadStarted(boolean isStart, EModule type){ // todo: refactor: remove everything, place to separate container and just disable.
if (! type.equals(EModule.SPLIT_MERGE_TOOL)){ if (! type.equals(EModule.SPLIT_MERGE_TOOL)){
smToolPane.setDisable(isStart); smToolPane.setDisable(isStart);
return; return;

View file

@ -18,14 +18,15 @@
*/ */
package nsusbloader; package nsusbloader;
import nsusbloader.Controllers.NSLMainController; import nsusbloader.Controllers.*;
import nsusbloader.NSLDataTypes.EModule; import nsusbloader.NSLDataTypes.EModule;
import java.util.ResourceBundle;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
public class MediatorControl { public class MediatorControl {
private AtomicBoolean isTransferActive = new AtomicBoolean(false); // Overcoded just for sure private final AtomicBoolean isTransferActive = new AtomicBoolean(false); // Overcoded just for sure
private NSLMainController mainCtrler; private NSLMainController mainController;
public static MediatorControl getInstance(){ public static MediatorControl getInstance(){
return MediatorControlHold.INSTANCE; return MediatorControlHold.INSTANCE;
@ -35,16 +36,26 @@ public class MediatorControl {
private static final MediatorControl INSTANCE = new MediatorControl(); private static final MediatorControl INSTANCE = new MediatorControl();
} }
public void setController(NSLMainController controller){ public void setController(NSLMainController controller){
this.mainCtrler = controller; this.mainController = controller;
}
public NSLMainController getContoller(){ return mainController; }
public GamesController getGamesController(){ return mainController.getGamesCtrlr(); };
public SettingsController getSettingsController(){ return mainController.getSettingsCtrlr(); };
public SplitMergeController getSplitMergeController(){ return mainController.getSmCtrlr(); };
public RcmController getRcmController(){ return mainController.getRcmCtrlr(); };
public NxdtController getNxdtController(){ return mainController.getNXDTabController(); };
public ResourceBundle getResourceBundle(){
return mainController.getResourceBundle();
} }
public NSLMainController getContoller(){ return this.mainCtrler; }
public synchronized void setBgThreadActive(boolean isActive, EModule appModuleType) { public synchronized void setBgThreadActive(boolean isActive, EModule appModuleType) {
isTransferActive.set(isActive); isTransferActive.set(isActive);
mainCtrler.getGamesCtrlr().notifyThreadStarted(isActive, appModuleType); getGamesController().notifyThreadStarted(isActive, appModuleType);
mainCtrler.getSmCtrlr().notifySmThreadStarted(isActive, appModuleType); getSplitMergeController().notifyThreadStarted(isActive, appModuleType);
mainCtrler.getRcmCtrlr().notifyThreadStarted(isActive, appModuleType); getRcmController().notifyThreadStarted(isActive, appModuleType);
mainCtrler.getNXDTabController().notifyThreadStarted(isActive, appModuleType); getNxdtController().notifyThreadStarted(isActive, appModuleType);
} }
public synchronized boolean getTransferActive() { return this.isTransferActive.get(); } public synchronized boolean getTransferActive() { return this.isTransferActive.get(); }
} }

View file

@ -61,7 +61,7 @@ public class MessagesConsumer extends AnimationTimer {
this.progressBar = MediatorControl.getInstance().getContoller().progressBar; this.progressBar = MediatorControl.getInstance().getContoller().progressBar;
this.statusMap = statusMap; this.statusMap = statusMap;
this.tableViewController = MediatorControl.getInstance().getContoller().GamesTabController.tableFilesListController; this.tableViewController = MediatorControl.getInstance().getGamesController().tableFilesListController;
this.oneLinerStatus = oneLinerStatus; this.oneLinerStatus = oneLinerStatus;
@ -100,13 +100,13 @@ public class MessagesConsumer extends AnimationTimer {
switch (appModuleType){ switch (appModuleType){
case RCM: case RCM:
MediatorControl.getInstance().getContoller().getRcmCtrlr().setOneLineStatus(oneLinerStatus.get()); MediatorControl.getInstance().getRcmController().setOneLineStatus(oneLinerStatus.get());
break; break;
case NXDT: case NXDT:
MediatorControl.getInstance().getContoller().getNXDTabController().setOneLineStatus(oneLinerStatus.get()); MediatorControl.getInstance().getNxdtController().setOneLineStatus(oneLinerStatus.get());
break; break;
case SPLIT_MERGE_TOOL: case SPLIT_MERGE_TOOL:
MediatorControl.getInstance().getContoller().getSmCtrlr().setOneLineStatus(oneLinerStatus.get()); MediatorControl.getInstance().getSplitMergeController().setOneLineStatus(oneLinerStatus.get());
break; break;
} }

View file

@ -914,7 +914,7 @@ class GoldLeaf_07 extends TransferModule {
private boolean selectFile(){ private boolean selectFile(){
File selectedFile = CompletableFuture.supplyAsync(() -> { File selectedFile = CompletableFuture.supplyAsync(() -> {
FileChooser fChooser = new FileChooser(); FileChooser fChooser = new FileChooser();
fChooser.setTitle(MediatorControl.getInstance().getContoller().getResourceBundle().getString("btn_OpenFile")); // TODO: FIX BAD IMPLEMENTATION fChooser.setTitle(MediatorControl.getInstance().getResourceBundle().getString("btn_OpenFile")); // TODO: FIX BAD IMPLEMENTATION
fChooser.setInitialDirectory(new File(System.getProperty("user.home"))); // TODO: Consider fixing; not a prio. fChooser.setInitialDirectory(new File(System.getProperty("user.home"))); // TODO: Consider fixing; not a prio.
fChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("*", "*")); fChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("*", "*"));
return fChooser.showOpenDialog(null); // Leave as is for now. return fChooser.showOpenDialog(null); // Leave as is for now.

View file

@ -941,7 +941,7 @@ class GoldLeaf_08 extends TransferModule {
private boolean selectFile(){ private boolean selectFile(){
File selectedFile = CompletableFuture.supplyAsync(() -> { File selectedFile = CompletableFuture.supplyAsync(() -> {
FileChooser fChooser = new FileChooser(); FileChooser fChooser = new FileChooser();
fChooser.setTitle(MediatorControl.getInstance().getContoller().getResourceBundle().getString("btn_OpenFile")); // TODO: FIX BAD IMPLEMENTATION fChooser.setTitle(MediatorControl.getInstance().getResourceBundle().getString("btn_OpenFile")); // TODO: FIX BAD IMPLEMENTATION
fChooser.setInitialDirectory(new File(System.getProperty("user.home")));// TODO: Consider fixing; not a prio. fChooser.setInitialDirectory(new File(System.getProperty("user.home")));// TODO: Consider fixing; not a prio.
fChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("*", "*")); fChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("*", "*"));
return fChooser.showOpenDialog(null); // Leave as is for now. return fChooser.showOpenDialog(null); // Leave as is for now.

View file

@ -54,14 +54,6 @@
<HBox.margin> <HBox.margin>
<Insets /> <Insets />
</HBox.margin> </HBox.margin>
<graphic>
<SVGPath content="M 8,0 C 6.8954305,0 6,0.8954305 6,2 v 16 c 0,1.1 0.89,2 2,2 h 12 c 1.104569,0 2,-0.895431 2,-2 V 2 C 22,0.90484721 21.089844,0 20,0 Z m 2.1,1.2 h 7.8 C 18,1.20208 18,1.2002604 18,1.3 v 0.1 c 0,0.095833 0,0.097917 -0.1,0.1 H 10.1 C 10,1.5057292 10,1.5036458 10,1.4 V 1.3 C 10,1.20026 10,1.1981771 10.1,1.2 Z M 8,2 h 12 c 0.303385,0 0.5,0.2044271 0.5,0.5 v 12 C 20.5,14.789959 20.29836,15 20,15 H 8 C 7.7044271,15 7.5,14.803385 7.5,14.5 V 2.5 C 7.5,2.2083333 7.7122396,2 8,2 Z M 2,4 v 18 c 0,1.104569 0.8954305,2 2,2 H 20 V 22 H 4 V 4 Z m 8,12 h 8 l -4,3 z" fill="#289de8" />
</graphic>
</Button>
<Button fx:id="selectFolderBtn" contentDisplay="TOP" mnemonicParsing="false" prefHeight="60.0" text="%btn_OpenFolders">
<graphic>
<SVGPath content="M 2.4003906,2 C 1.0683906,2 0,3.1125 0,4.5 v 15 c -1.7556433e-8,1.380871 1.0747547,2.500225 2.4003906,2.5 H 21.599609 C 22.925245,22.000225 24,20.880871 24,19.5 V 7 C 24,5.6125 22.919609,4.5 21.599609,4.5 H 12 L 9.5996094,2 Z" fill="#289de8" />
</graphic>
</Button> </Button>
<Button fx:id="selectSplitNspBtn" contentDisplay="TOP" mnemonicParsing="false" prefHeight="60.0" text="%btn_OpenSplitFile"> <Button fx:id="selectSplitNspBtn" contentDisplay="TOP" mnemonicParsing="false" prefHeight="60.0" text="%btn_OpenSplitFile">
<graphic> <graphic>

View file

@ -43,5 +43,18 @@
<Insets left="5.0" /> <Insets left="5.0" />
</VBox.margin> </VBox.margin>
</HBox> </HBox>
<HBox spacing="5.0">
<children>
<VBox spacing="5.0">
<children>
<CheckBox fx:id="direcroriesChooserForRomsCB" mnemonicParsing="false" text="%tab2_Cb_foldersSelectorForRoms" />
<Label disable="true" text="%tab2_Cb_foldersSelectorForRomsDesc" wrapText="true" />
</children>
</VBox>
</children>
<VBox.margin>
<Insets left="5.0" />
</VBox.margin>
</HBox>
</children> </children>
</VBox> </VBox>

View file

@ -71,3 +71,5 @@ btn_Close=Close
tab2_Cb_GlVersion=GoldLeaf version tab2_Cb_GlVersion=GoldLeaf version
tab2_Cb_GLshowNspOnly=Show only *.nsp in GoldLeaf. tab2_Cb_GLshowNspOnly=Show only *.nsp in GoldLeaf.
windowBodyPleaseStopOtherProcessFirst=Please stop other active process before continuing. windowBodyPleaseStopOtherProcessFirst=Please stop other active process before continuing.
tab2_Cb_foldersSelectorForRoms=Select folder with ROM files instead of selecting ROMs individually.
tab2_Cb_foldersSelectorForRomsDesc=Changes 'Select files' button behaviour on 'Games' tab: instead of selecting ROM files one-by-one you can choose folder to add every supported file at once.

View file

@ -69,3 +69,5 @@ btn_Close=\u0625\u063A\u0644\u0627\u0642
tab2_Cb_GlVersion=\u0625\u0635\u062F\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u0640 "\u062C\u0648\u0644\u062F \u0644\u064A\u0641" tab2_Cb_GlVersion=\u0625\u0635\u062F\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u0640 "\u062C\u0648\u0644\u062F \u0644\u064A\u0641"
tab2_Cb_GLshowNspOnly=\u0627\u0639\u0631\u0636 \u0641\u0642\u0637 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0630\u0627\u062A \u0627\u0644\u0625\u0645\u062A\u062F\u0627\u062F "\u0625\u0646 \u0625\u0633 \u0628\u064A" \u0641\u064A \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u0640 "\u062C\u0648\u0644\u062F \u0644\u064A\u0641". tab2_Cb_GLshowNspOnly=\u0627\u0639\u0631\u0636 \u0641\u0642\u0637 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0630\u0627\u062A \u0627\u0644\u0625\u0645\u062A\u062F\u0627\u062F "\u0625\u0646 \u0625\u0633 \u0628\u064A" \u0641\u064A \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u0640 "\u062C\u0648\u0644\u062F \u0644\u064A\u0641".
windowBodyPleaseStopOtherProcessFirst=\u0645\u0646 \u0641\u0636\u0644\u0643 \u0642\u0645 \u0628\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u0623\u062E\u0631\u0649 \u0642\u0628\u0644 \u0627\u0644\u0625\u0633\u062A\u0645\u0631\u0627\u0631. windowBodyPleaseStopOtherProcessFirst=\u0645\u0646 \u0641\u0636\u0644\u0643 \u0642\u0645 \u0628\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u0623\u062E\u0631\u0649 \u0642\u0628\u0644 \u0627\u0644\u0625\u0633\u062A\u0645\u0631\u0627\u0631.
tab2_Cb_foldersSelectorForRoms=
tab2_Cb_foldersSelectorForRomsDesc=

View file

@ -44,7 +44,7 @@ tab2_Cb_AllowXciNszXcz=Erlaube XCI- NSZ- XCZ-Dateien-Verwendung f\u00FCr Tinfoil
tab2_Lbl_AllowXciNszXczDesc=Von einigen Drittanbietern verwendet, welche XCI/NSZ/XCZ unterst\u00FCtzen, nutzt Tinfoil Transfer Protocol. Nicht \u00E4ndern, wenn unsicher. tab2_Lbl_AllowXciNszXczDesc=Von einigen Drittanbietern verwendet, welche XCI/NSZ/XCZ unterst\u00FCtzen, nutzt Tinfoil Transfer Protocol. Nicht \u00E4ndern, wenn unsicher.
tab2_Lbl_Language=Sprache tab2_Lbl_Language=Sprache
windowBodyRestartToApplyLang=Bitte die Applikation neustarten um die Einstellungen zu \u00FCbernehmen. windowBodyRestartToApplyLang=Bitte die Applikation neustarten um die Einstellungen zu \u00FCbernehmen.
btn_OpenSplitFile=Split-NSP auswählen btn_OpenSplitFile=Split-NSP ausw\uFFFDhlen
tab2_Cb_GLshowNspOnly=Nur *.nsp in GoldLeaf zeigen. tab2_Cb_GLshowNspOnly=Nur *.nsp in GoldLeaf zeigen.
btn_Cancel=Abbrechen btn_Cancel=Abbrechen

View file

@ -71,3 +71,5 @@ btn_Close=Close
tab2_Cb_GlVersion=GoldLeaf version tab2_Cb_GlVersion=GoldLeaf version
tab2_Cb_GLshowNspOnly=Show only *.nsp in GoldLeaf. tab2_Cb_GLshowNspOnly=Show only *.nsp in GoldLeaf.
windowBodyPleaseStopOtherProcessFirst=Please stop other active process before continuing. windowBodyPleaseStopOtherProcessFirst=Please stop other active process before continuing.
tab2_Cb_foldersSelectorForRoms=Select folder with ROM files instead of selecting ROMs individually.
tab2_Cb_foldersSelectorForRomsDesc=Changes 'Select files' button behaviour on 'Games' tab: instead of selecting ROM files one-by-one you can choose folder to add every supported file at once.

View file

@ -1,4 +1,4 @@
btn_OpenFile=Seleccionar los archivos .NSP btn_OpenFile=Seleccionar los archivos
btn_Upload=Enviar a NS btn_Upload=Enviar a NS
tab3_Txt_EnteredAsMsg1=Est\u00E1 conectado como: tab3_Txt_EnteredAsMsg1=Est\u00E1 conectado como:
tab3_Txt_EnteredAsMsg2=Deber\u00EDa ser root o haber configurado las reglas 'udev' de este usuario para evitar problemas. tab3_Txt_EnteredAsMsg2=Deber\u00EDa ser root o haber configurado las reglas 'udev' de este usuario para evitar problemas.

View file

@ -1,4 +1,4 @@
btn_OpenFile=Selectionner les fichiers .NSP btn_OpenFile=Selectionner les fichiers
btn_Upload=Envoyer vers NS btn_Upload=Envoyer vers NS
tab3_Txt_EnteredAsMsg1=Vous etes connect\u00E9 en tant que: tab3_Txt_EnteredAsMsg1=Vous etes connect\u00E9 en tant que:
tab3_Txt_EnteredAsMsg2=Vous devez \u00EAtre root ou avoir configur\u00E9 les r\u00E8gles 'udev' pour cet utilisateur afin d'\u00E9viter tout probl\u00E8me. tab3_Txt_EnteredAsMsg2=Vous devez \u00EAtre root ou avoir configur\u00E9 les r\u00E8gles 'udev' pour cet utilisateur afin d'\u00E9viter tout probl\u00E8me.

View file

@ -1,4 +1,4 @@
katebtn_OpenFile=Selecionar Arquivos btn_OpenFile=Selecionar Arquivos
btn_Upload=Carregar Arquivos btn_Upload=Carregar Arquivos
tab3_Txt_EnteredAsMsg1=Voc\u00EA logou como: tab3_Txt_EnteredAsMsg1=Voc\u00EA logou como:
tab3_Txt_EnteredAsMsg2=Voc\u00EA precisa de permiss\u00F5es root ou ter configurado as regras 'udev' deste usu\u00E1rio para evitar poss\u00EDveis problemas. tab3_Txt_EnteredAsMsg2=Voc\u00EA precisa de permiss\u00F5es root ou ter configurado as regras 'udev' deste usu\u00E1rio para evitar poss\u00EDveis problemas.
@ -23,7 +23,7 @@ tab1_Lbl_NSIP=NS IP:
tab2_Cb_ValidateNSHostName=Sempre validar o IP do switch. tab2_Cb_ValidateNSHostName=Sempre validar o IP do switch.
windowBodyBadIp=Tem certeza que preencheu o endere\u00E7o IP corretamente? windowBodyBadIp=Tem certeza que preencheu o endere\u00E7o IP corretamente?
windowTitleBadIp=Endere\u00E7o IP do switch provavelmente incorreto. windowTitleBadIp=Endere\u00E7o IP do switch provavelmente incorreto.
tab2_Cb_ExpertMode=Modo Avançado (Configura\u00E7\u00E3o NET) tab2_Cb_ExpertMode=Modo Avan\u00E7ado (Configura\u00E7\u00E3o NET)
tab2_Lbl_HostPort=porta tab2_Lbl_HostPort=porta
tab2_Cb_AutoDetectIp=Auto-detectar IP tab2_Cb_AutoDetectIp=Auto-detectar IP
tab2_Cb_RandSelectPort=Usar porta aleat\u00F3ria tab2_Cb_RandSelectPort=Usar porta aleat\u00F3ria
@ -44,7 +44,7 @@ tab2_Lbl_Language=Idioma
windowBodyRestartToApplyLang=Por favor, reinicie para aplicar as modifica\u00E7\u00F5es. windowBodyRestartToApplyLang=Por favor, reinicie para aplicar as modifica\u00E7\u00F5es.
btn_OpenSplitFile=Select split NSP btn_OpenSplitFile=Select split NSP
tab2_Lbl_ApplicationSettings=Configura\u00E7\u00F5es principais tab2_Lbl_ApplicationSettings=Configura\u00E7\u00F5es principais
tabSplMrg_Lbl_SplitNMergeTitle=Ferramenta de Fragmentar (Dividir) & Mesclar (Juntar) arquivos tabSplMrg_Lbl_SplitNMergeTitle=Ferramenta de Fragmentar (Split) & Mesclar (Merge) arquivos
tabSplMrg_RadioBtn_Split=Fragmentar (Dividir) tabSplMrg_RadioBtn_Split=Fragmentar (Dividir)
tabSplMrg_RadioBtn_Merge=Mesclar (Juntar) tabSplMrg_RadioBtn_Merge=Mesclar (Juntar)
tabSplMrg_Txt_File=Arquivo: tabSplMrg_Txt_File=Arquivo:

View file

@ -69,4 +69,6 @@ btn_Cancel=\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C
btn_Close=\u0417\u0430\u043A\u0440\u044B\u0442\u044C btn_Close=\u0417\u0430\u043A\u0440\u044B\u0442\u044C
tab2_Cb_GlVersion=\u0412\u0435\u0440\u0441\u0438\u044F GoldLeaf tab2_Cb_GlVersion=\u0412\u0435\u0440\u0441\u0438\u044F GoldLeaf
windowBodyPleaseStopOtherProcessFirst=\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043E\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u043F\u0435\u0440\u0435\u0434 \u0442\u0435\u043C, \u043A\u0430\u043A \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C. windowBodyPleaseStopOtherProcessFirst=\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043E\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u043F\u0435\u0440\u0435\u0434 \u0442\u0435\u043C, \u043A\u0430\u043A \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C.
tab2_Cb_foldersSelectorForRomsDesc=\u041C\u0435\u043D\u044F\u0435\u0442 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B" \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 '\u0418\u0433\u0440\u044B'. \u0412\u043C\u0435\u0441\u0442\u043E \u0432\u044B\u0431\u043E\u0440\u0430 ROM \u0444\u0430\u0439\u043B\u043E\u0432 \u043F\u043E \u043E\u0434\u043D\u043E\u043C\u0443 \u0432\u044B \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442\u0435 \u043F\u0430\u043F\u043A\u0443, \u043F\u043E\u0441\u043B\u0435 \u0447\u0435\u0433\u043E \u0432\u0441\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0435 \u043E\u0431\u0440\u0430\u0437\u044B \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u044E\u0442\u0441\u044F.
tab2_Cb_foldersSelectorForRoms=\u0412\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u043F\u0430\u043F\u043A\u0443 \u0441 ROM \u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 \u043F\u043E\u043E\u0434\u0438\u043D\u043E\u0447\u043A\u0435.

View file

@ -69,3 +69,5 @@ btn_Cancel=\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438
btn_Close=\u0417\u0430\u043A\u0440\u0438\u0442\u0438 btn_Close=\u0417\u0430\u043A\u0440\u0438\u0442\u0438
tab2_Cb_GlVersion=\u0412\u0435\u0440\u0441\u0456\u044F GoldLeaf tab2_Cb_GlVersion=\u0412\u0435\u0440\u0441\u0456\u044F GoldLeaf
windowBodyPleaseStopOtherProcessFirst=\u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u0437\u0443\u043F\u0438\u043D\u0456\u0442\u044C \u0456\u043D\u0448\u0438\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u0438\u0439 \u043F\u0440\u043E\u0446\u0435\u0441 \u043F\u0435\u0440\u0448 \u043D\u0456\u0436 \u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438. windowBodyPleaseStopOtherProcessFirst=\u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u0437\u0443\u043F\u0438\u043D\u0456\u0442\u044C \u0456\u043D\u0448\u0438\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u0438\u0439 \u043F\u0440\u043E\u0446\u0435\u0441 \u043F\u0435\u0440\u0448 \u043D\u0456\u0436 \u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438.
tab2_Cb_foldersSelectorForRomsDesc=\u0417\u043C\u0456\u043D\u044E\u0454 \u043F\u043E\u0432\u0435\u0434\u0456\u043D\u043A\u0443 \u043A\u043D\u043E\u043F\u043A\u0438 \u043A\u043D\u043E\u043F\u043A\u0438 "\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0444\u0430\u0439\u043B\u0438" \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u0446\u0456 '\u0406\u0433\u0440\u0438'. \u0417\u0430\u043C\u0456\u0441\u0442\u044C \u0432\u0438\u0431\u043E\u0440\u0443 ROM \u0444\u0430\u0439\u043B\u0456\u0432 \u043E\u0434\u0438\u043D \u0437\u0430 \u043E\u0434\u043D\u0438\u043C \u0432\u0438 \u0432\u043A\u0430\u0437\u0443\u0454\u0442\u0435 \u043F\u0430\u043F\u043A\u0443, \u043F\u0456\u0441\u043B\u044F \u0447\u043E\u0433\u043E \u0434\u043E\u0434\u0430\u044E\u0442\u044C\u0441\u044F \u0443\u0441\u0456 \u0444\u0430\u0439\u043B\u0438, \u0449\u043E \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u044E\u0442\u044C\u0441\u044F.
tab2_Cb_foldersSelectorForRoms=\u0412\u0438\u0431\u0438\u0440\u0430\u0442\u0438 \u043F\u0430\u043F\u043A\u0443 \u0437 ROM \u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0437\u0430\u043C\u0456\u0441\u0442\u044C \u0432\u0438\u0431\u043E\u0440\u0443 \u0444\u0430\u0439\u043B\u0456\u0432 \u043F\u043E\u043E\u0434\u0438\u043D\u0446\u0456.

View file

@ -92,7 +92,7 @@
.tool-bar{ .tool-bar{
-fx-background-color: transparent; -fx-background-color: transparent;
} }
// -======================== Choice box =========================- /* -======================== Choice box =========================- */
.choice-box { .choice-box {
-fx-background-color: #4f4f4f; -fx-background-color: #4f4f4f;
-fx-border-color: #4f4f4f; -fx-border-color: #4f4f4f;
@ -101,6 +101,9 @@
-fx-mark-color: #eea11e; -fx-mark-color: #eea11e;
-fx-effect: none; -fx-effect: none;
} }
.choice-box .arrow{
-fx-background-color: #eea11e;
}
.choice-box > .label { .choice-box > .label {
-fx-text-fill: #f7fafa; -fx-text-fill: #f7fafa;
} }
@ -411,6 +414,20 @@
-fx-min-height: -size; -fx-min-height: -size;
-fx-min-width: 17.5; -fx-min-width: 17.5;
} }
.regionSelectFiles {
-fx-shape: "M 8,0 C 6.8954305,0 6,0.8954305 6,2 v 16 c 0,1.1 0.89,2 2,2 h 12 c 1.104569,0 2,-0.895431 2,-2 V 2 C 22,0.90484721 21.089844,0 20,0 Z m 2.1,1.2 h 7.8 C 18,1.20208 18,1.2002604 18,1.3 v 0.1 c 0,0.095833 0,0.097917 -0.1,0.1 H 10.1 C 10,1.5057292 10,1.5036458 10,1.4 V 1.3 C 10,1.20026 10,1.1981771 10.1,1.2 Z M 8,2 h 12 c 0.303385,0 0.5,0.2044271 0.5,0.5 v 12 C 20.5,14.789959 20.29836,15 20,15 H 8 C 7.7044271,15 7.5,14.803385 7.5,14.5 V 2.5 C 7.5,2.2083333 7.7122396,2 8,2 Z M 2,4 v 18 c 0,1.104569 0.8954305,2 2,2 H 20 V 22 H 4 V 4 Z m 8,12 h 8 l -4,3 z";
-fx-background-color: #289de8;
-size: 24;
-fx-min-height: -size;
-fx-min-width: 20;
}
.regionScanFolders {
-fx-shape: "M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M9,4L11,6H19A2,2 0 0,1 21,8V11.81C19.83,10.69 18.25,10 16.5,10A6.5,6.5 0 0,0 10,16.5C10,17.79 10.37,19 11,20H3C1.89,20 1,19.1 1,18V6C1,4.89 1.89,4 3,4H9Z";
-fx-background-color: #289de8;
-size: 22;
-fx-min-height: -size;
-fx-min-width: 24;
}
// //
//.lineGradient { //.lineGradient {
// -fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect, #00c8fc 30%, transparent 45%); // -fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect, #00c8fc 30%, transparent 45%);

View file

@ -118,6 +118,9 @@
-fx-mark-color: #eea11e; -fx-mark-color: #eea11e;
-fx-effect: dropshadow(three-pass-box, #b4b4b4, 2, 0, 0, 0); -fx-effect: dropshadow(three-pass-box, #b4b4b4, 2, 0, 0, 0);
} }
.choice-box .arrow{
-fx-background-color: #eea11e;
}
.choice-box > .label { .choice-box > .label {
-fx-text-fill: #2c2c2c; -fx-text-fill: #2c2c2c;
} }
@ -328,3 +331,17 @@
-fx-min-height: -size; -fx-min-height: -size;
-fx-min-width: 17.5; -fx-min-width: 17.5;
} }
.regionSelectFiles {
-fx-shape: "M 8,0 C 6.8954305,0 6,0.8954305 6,2 v 16 c 0,1.1 0.89,2 2,2 h 12 c 1.104569,0 2,-0.895431 2,-2 V 2 C 22,0.90484721 21.089844,0 20,0 Z m 2.1,1.2 h 7.8 C 18,1.20208 18,1.2002604 18,1.3 v 0.1 c 0,0.095833 0,0.097917 -0.1,0.1 H 10.1 C 10,1.5057292 10,1.5036458 10,1.4 V 1.3 C 10,1.20026 10,1.1981771 10.1,1.2 Z M 8,2 h 12 c 0.303385,0 0.5,0.2044271 0.5,0.5 v 12 C 20.5,14.789959 20.29836,15 20,15 H 8 C 7.7044271,15 7.5,14.803385 7.5,14.5 V 2.5 C 7.5,2.2083333 7.7122396,2 8,2 Z M 2,4 v 18 c 0,1.104569 0.8954305,2 2,2 H 20 V 22 H 4 V 4 Z m 8,12 h 8 l -4,3 z";
-fx-background-color: #289de8;
-size: 24;
-fx-min-height: -size;
-fx-min-width: 20;
}
.regionScanFolders {
-fx-shape: "M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M9,4L11,6H19A2,2 0 0,1 21,8V11.81C19.83,10.69 18.25,10 16.5,10A6.5,6.5 0 0,0 10,16.5C10,17.79 10.37,19 11,20H3C1.89,20 1,19.1 1,18V6C1,4.89 1.89,4 3,4H9Z";
-fx-background-color: #289de8;
-size: 22;
-fx-min-height: -size;
-fx-min-width: 24;
}