Compare commits
2 commits
77ae860396
...
4cea480bb7
Author | SHA1 | Date | |
---|---|---|---|
|
4cea480bb7 | ||
|
f2cd0c521c |
22 changed files with 330 additions and 29 deletions
|
@ -30,6 +30,7 @@ import javafx.scene.layout.VBox;
|
|||
import nsusbloader.AppPreferences;
|
||||
import nsusbloader.ServiceWindow;
|
||||
import nsusbloader.ModelControllers.UpdatesChecker;
|
||||
import nsusbloader.Utilities.WindowsDrivers.DriversInstall;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
@ -42,22 +43,16 @@ import java.util.jar.JarFile;
|
|||
|
||||
public class SettingsController implements Initializable {
|
||||
@FXML
|
||||
private CheckBox nspFilesFilterForGLCB;
|
||||
@FXML
|
||||
private CheckBox validateNSHostNameCb;
|
||||
@FXML
|
||||
private CheckBox expertModeCb;
|
||||
@FXML
|
||||
private CheckBox autoDetectIpCb;
|
||||
@FXML
|
||||
private CheckBox randPortCb;
|
||||
private CheckBox nspFilesFilterForGLCB,
|
||||
validateNSHostNameCb,
|
||||
expertModeCb,
|
||||
autoDetectIpCb,
|
||||
randPortCb;
|
||||
|
||||
@FXML
|
||||
private TextField pcIpTextField;
|
||||
@FXML
|
||||
private TextField pcPortTextField;
|
||||
@FXML
|
||||
private TextField pcExtraTextField;
|
||||
private TextField pcIpTextField,
|
||||
pcPortTextField,
|
||||
pcExtraTextField;
|
||||
|
||||
@FXML
|
||||
private CheckBox dontServeCb;
|
||||
|
@ -69,13 +64,14 @@ public class SettingsController implements Initializable {
|
|||
private CheckBox autoCheckUpdCb;
|
||||
@FXML
|
||||
private Hyperlink newVersionLink;
|
||||
@FXML
|
||||
private Button checkForUpdBtn;
|
||||
|
||||
@FXML
|
||||
private CheckBox tfXciSpprtCb;
|
||||
|
||||
@FXML
|
||||
private Button langBtn;
|
||||
private Button langBtn,
|
||||
checkForUpdBtn,
|
||||
drvInstBtn;
|
||||
@FXML
|
||||
private ChoiceBox<String> langCB;
|
||||
|
||||
|
@ -215,6 +211,15 @@ public class SettingsController implements Initializable {
|
|||
updates.setDaemon(true);
|
||||
updates.start();
|
||||
});
|
||||
|
||||
if (isWindows()){
|
||||
Region btnDrvImage = new Region();
|
||||
btnDrvImage.getStyleClass().add("regionWindows");
|
||||
drvInstBtn.setGraphic(btnDrvImage);
|
||||
drvInstBtn.setVisible(true);
|
||||
drvInstBtn.setOnAction(actionEvent -> new DriversInstall(resourceBundle));
|
||||
}
|
||||
|
||||
tfXciSpprtCb.setSelected(AppPreferences.getInstance().getTfXCI());
|
||||
|
||||
// Language settings area
|
||||
|
@ -282,6 +287,11 @@ public class SettingsController implements Initializable {
|
|||
}
|
||||
glOldVerCheck.setOnAction(e-> glOldVerChoice.setDisable(! glOldVerCheck.isSelected()) );
|
||||
}
|
||||
|
||||
private boolean isWindows(){
|
||||
return System.getProperty("os.name").toLowerCase().replace(" ", "").contains("windows");
|
||||
}
|
||||
|
||||
public boolean getNSPFileFilterForGL(){return nspFilesFilterForGLCB.isSelected(); }
|
||||
public boolean getExpertModeSelected(){ return expertModeCb.isSelected(); }
|
||||
public boolean getAutoIpSelected(){ return autoDetectIpCb.isSelected(); }
|
||||
|
|
|
@ -54,9 +54,8 @@ public class ServiceWindow {
|
|||
new Image("/res/warn_ico64x64.png"),
|
||||
new Image("/res/warn_ico128x128.png")
|
||||
);
|
||||
dialogStage.toFront();
|
||||
|
||||
alertBox.show();
|
||||
dialogStage.toFront();
|
||||
}
|
||||
/**
|
||||
* Create notification window with confirm/deny
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
/*
|
||||
Copyright 2019-2020 Dmitry Isaenko
|
||||
|
||||
This file is part of NS-USBloader.
|
||||
|
||||
NS-USBloader is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
NS-USBloader is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with NS-USBloader. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package nsusbloader.Utilities.WindowsDrivers;
|
||||
|
||||
import javafx.concurrent.Task;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URL;
|
||||
|
||||
public class DownloadDriversTask extends Task<String> {
|
||||
|
||||
private static final String driverFileLocationURL = "https://github.com/developersu/NS-Drivers/releases/download/v1.0/Drivers_set.exe";
|
||||
private static final long driversFileSize = 3857375;
|
||||
|
||||
private static File driversInstallerFile;
|
||||
|
||||
@Override
|
||||
protected String call() {
|
||||
if (isDriversDownloaded())
|
||||
return driversInstallerFile.getAbsolutePath();
|
||||
if (downloadDrivers())
|
||||
return driversInstallerFile.getAbsolutePath();
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean isDriversDownloaded(){
|
||||
return driversInstallerFile != null && driversInstallerFile.length() == driversFileSize;
|
||||
}
|
||||
|
||||
private boolean downloadDrivers(){
|
||||
try {
|
||||
File tmpDirectory = File.createTempFile("nsul", null);
|
||||
if (! tmpDirectory.delete())
|
||||
return false;
|
||||
if (! tmpDirectory.mkdirs())
|
||||
return false;
|
||||
|
||||
tmpDirectory.deleteOnExit();
|
||||
|
||||
URL url = new URL(driverFileLocationURL);
|
||||
BufferedInputStream bis = new BufferedInputStream(url.openStream());
|
||||
|
||||
driversInstallerFile = new File(tmpDirectory, "drivers.exe");
|
||||
FileOutputStream fos = new FileOutputStream(driversInstallerFile);
|
||||
|
||||
byte[] dataBuffer = new byte[1024];
|
||||
int bytesRead;
|
||||
double totalRead = 0;
|
||||
|
||||
while ((bytesRead = bis.read(dataBuffer, 0, 1024)) != -1) {
|
||||
fos.write(dataBuffer, 0, bytesRead);
|
||||
totalRead += bytesRead;
|
||||
updateProgress(totalRead, driversFileSize);
|
||||
if (this.isCancelled()) {
|
||||
bis.close();
|
||||
fos.close();
|
||||
updateProgress(0, 0);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bis.close();
|
||||
fos.close();
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (IOException | SecurityException e){
|
||||
updateMessage("Error: "+e.toString().replaceAll(":.*$", ""));
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,151 @@
|
|||
/*
|
||||
Copyright 2019-2020 Dmitry Isaenko
|
||||
|
||||
This file is part of NS-USBloader.
|
||||
|
||||
NS-USBloader is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
NS-USBloader is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with NS-USBloader. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package nsusbloader.Utilities.WindowsDrivers;
|
||||
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.ProgressBar;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.scene.layout.Priority;
|
||||
import javafx.scene.layout.VBox;
|
||||
import javafx.stage.Stage;
|
||||
import nsusbloader.AppPreferences;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
public class DriversInstall {
|
||||
|
||||
private static volatile boolean isRunning;
|
||||
|
||||
private Label runInstallerStatusLabel;
|
||||
|
||||
public DriversInstall(ResourceBundle rb){
|
||||
|
||||
if (DriversInstall.isRunning)
|
||||
return;
|
||||
|
||||
DriversInstall.isRunning = true;
|
||||
|
||||
DownloadDriversTask downloadTask = new DownloadDriversTask();
|
||||
|
||||
Button cancelButton = new Button(rb.getString("btn_Cancel"));
|
||||
|
||||
HBox hBoxInformation = new HBox();
|
||||
hBoxInformation.setAlignment(Pos.TOP_LEFT);
|
||||
hBoxInformation.getChildren().add(new Label(rb.getString("windowBodyDownloadDrivers")));
|
||||
|
||||
ProgressBar progressBar = new ProgressBar();
|
||||
progressBar.setPrefWidth(Double.MAX_VALUE);
|
||||
progressBar.progressProperty().bind(downloadTask.progressProperty());
|
||||
|
||||
Label downloadStatusLabel = new Label();
|
||||
downloadStatusLabel.setWrapText(true);
|
||||
downloadStatusLabel.textProperty().bind(downloadTask.messageProperty());
|
||||
|
||||
runInstallerStatusLabel = new Label();
|
||||
runInstallerStatusLabel.setWrapText(true);
|
||||
|
||||
Pane fillerPane1 = new Pane();
|
||||
Pane fillerPane2 = new Pane();
|
||||
|
||||
VBox parentVBox = new VBox();
|
||||
parentVBox.setAlignment(Pos.TOP_CENTER);
|
||||
parentVBox.setFillWidth(true);
|
||||
parentVBox.setSpacing(5.0);
|
||||
parentVBox.setPadding(new Insets(5.0));
|
||||
parentVBox.setFillWidth(true);
|
||||
parentVBox.getChildren().addAll(
|
||||
hBoxInformation,
|
||||
fillerPane1,
|
||||
downloadStatusLabel,
|
||||
runInstallerStatusLabel,
|
||||
fillerPane2,
|
||||
progressBar,
|
||||
cancelButton
|
||||
); // TODO:FIX
|
||||
|
||||
VBox.setVgrow(fillerPane1, Priority.ALWAYS);
|
||||
VBox.setVgrow(fillerPane2, Priority.ALWAYS);
|
||||
|
||||
Stage stage = new Stage();
|
||||
|
||||
stage.setTitle(rb.getString("windowTitleDownloadDrivers"));
|
||||
stage.getIcons().addAll(
|
||||
new Image("/res/dwnload_ico32x32.png"), //TODO: REDRAW
|
||||
new Image("/res/dwnload_ico48x48.png"),
|
||||
new Image("/res/dwnload_ico64x64.png"),
|
||||
new Image("/res/dwnload_ico128x128.png")
|
||||
);
|
||||
stage.setMinWidth(400);
|
||||
stage.setMinHeight(150);
|
||||
|
||||
Scene mainScene = new Scene(parentVBox, 405, 155);
|
||||
|
||||
mainScene.getStylesheets().add(AppPreferences.getInstance().getTheme());
|
||||
|
||||
stage.setOnHidden(windowEvent -> {
|
||||
downloadTask.cancel(true );
|
||||
DriversInstall.isRunning = false;
|
||||
});
|
||||
|
||||
stage.setScene(mainScene);
|
||||
stage.show();
|
||||
stage.toFront();
|
||||
|
||||
downloadTask.setOnSucceeded(event -> {
|
||||
cancelButton.setText(rb.getString("btn_Close"));
|
||||
|
||||
String returnedValue = downloadTask.getValue();
|
||||
|
||||
if (returnedValue == null)
|
||||
return;
|
||||
|
||||
if (runInstaller(returnedValue))
|
||||
stage.close();
|
||||
});
|
||||
|
||||
Thread downloadThread = new Thread(downloadTask);
|
||||
downloadThread.start();
|
||||
|
||||
cancelButton.setOnAction(actionEvent -> {
|
||||
downloadTask.cancel(true );
|
||||
stage.close();
|
||||
});
|
||||
}
|
||||
|
||||
private boolean runInstaller(String pathToFile) {
|
||||
try {
|
||||
Runtime.getRuntime().exec("cmd /c "+pathToFile);
|
||||
return true;
|
||||
}
|
||||
catch (Exception e){
|
||||
runInstallerStatusLabel.setText("Error: "+e.toString());
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,7 +8,11 @@
|
|||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.shape.SVGPath?>
|
||||
|
||||
<!--
|
||||
Steps to roll NXDT functionality back:
|
||||
* Uncheck 'Disable' on NXDT Tab
|
||||
* Set 'Visible' on NXDT Tab selector (SVGPath container)
|
||||
-->
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.NSLMainController">
|
||||
<children>
|
||||
<VBox AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
|
@ -31,14 +35,6 @@
|
|||
<SVGPath content="M 5.2753906 0.9453125 C 3.4702091 0.94491305 2.0128532 1.7453477 1.0566406 2.9082031 C 0.10042811 4.0710585 -0.40065633 5.5585011 -0.55664062 7.0488281 C -0.71262492 8.5391552 -0.52822452 10.042928 0.0078125 11.292969 C 0.54008474 12.534229 1.4899019 13.5834 2.8300781 13.826172 L 2.828125 13.837891 L 4.2050781 13.837891 L 4.6484375 11.080078 L 5.3496094 11.080078 L 5.9257812 13.837891 L 7.4042969 13.837891 L 7.4042969 13.753906 L 6.703125 10.685547 C 7.49408 10.281262 7.9297095 9.5624699 8.0097656 8.5292969 C 8.0610016 7.8485775 7.9209243 7.3118876 7.5878906 6.9179688 C 7.254857 6.5240499 6.7748288 6.3176076 6.1503906 6.296875 L 4.0371094 6.2910156 L 3.0976562 12.150391 C 2.4734416 12.023142 1.945837 11.518943 1.5625 10.625 C 1.1696133 9.7087867 0.99863233 8.4506302 1.1269531 7.2246094 C 1.2552739 5.9985885 1.6798073 4.8135983 2.3632812 3.9824219 C 3.0467553 3.1512454 3.9413986 2.6383771 5.2734375 2.6386719 L 20.007812 2.640625 C 20.496454 2.6407331 20.818797 2.788345 21.136719 3.0976562 C 21.454641 3.4069676 21.743658 3.910529 21.949219 4.5761719 C 22.36034 5.9074576 22.421621 7.8407685 22.128906 9.7714844 C 21.836191 11.7022 21.195943 13.639966 20.339844 15.023438 C 19.483744 16.406908 18.498727 17.154297 17.46875 17.154297 L -0.59375 17.154297 L -0.59375 18.845703 L 17.46875 18.845703 C 19.298148 18.845703 20.755291 17.568872 21.779297 15.914062 C 22.803302 14.259253 23.481257 12.145818 23.802734 10.025391 C 24.124212 7.904966 24.093647 5.7854271 23.566406 4.078125 C 23.302786 3.2244739 22.911503 2.4618437 22.318359 1.8847656 C 21.725216 1.3076876 20.907952 0.94941793 20.007812 0.94921875 L 5.2753906 0.9453125 z M 11.574219 6.1875 C 10.831297 6.1702229 10.207831 6.4450285 9.7050781 7.0117188 C 9.2055276 7.578409 8.8809744 8.3951633 8.7304688 9.4628906 L 8.5527344 10.712891 C 8.5207119 10.975503 8.5072674 11.234984 8.5136719 11.494141 C 8.5328854 12.254335 8.7132962 12.848871 9.0527344 13.277344 C 9.3921725 13.705817 9.8729047 13.927585 10.494141 13.941406 C 11.217848 13.962139 11.814426 13.735112 12.285156 13.261719 C 12.759089 12.78487 13.038539 12.137296 13.125 11.318359 L 11.775391 11.328125 C 11.698537 11.846439 11.565182 12.208239 11.373047 12.412109 C 11.180912 12.612524 10.923036 12.704777 10.599609 12.6875 C 10.080845 12.663312 9.8371182 12.277623 9.8691406 11.53125 C 9.8723429 11.403399 9.8965748 11.131448 9.9414062 10.716797 L 10.113281 9.4160156 C 10.190135 8.7145637 10.339592 8.209426 10.560547 7.8984375 C 10.781502 7.5839935 11.081823 7.4334439 11.462891 7.4472656 C 11.956037 7.4645428 12.209143 7.763238 12.21875 8.34375 L 12.208984 8.8574219 L 13.595703 8.8613281 C 13.595703 7.9974711 13.421311 7.3393799 13.072266 6.8867188 C 12.723221 6.4306022 12.224275 6.1978663 11.574219 6.1875 z M 14.869141 6.2910156 L 13.658203 13.837891 L 15.037109 13.837891 L 15.353516 11.847656 L 15.753906 8.5976562 L 16.28125 13.837891 L 17.21875 13.837891 L 19.361328 8.7675781 L 18.755859 11.748047 L 18.419922 13.837891 L 19.802734 13.837891 L 21.017578 6.2910156 L 19.201172 6.2910156 L 17.054688 11.716797 L 16.646484 6.2910156 L 14.869141 6.2910156 z M 5.2148438 7.5605469 L 6.09375 7.5664062 C 6.4491994 7.5940497 6.6336754 7.8344483 6.6464844 8.2871094 C 6.6496866 8.7466813 6.5554161 9.1146416 6.3632812 9.3945312 C 6.1711464 9.6709655 5.9072524 9.8134016 5.5742188 9.8203125 L 4.8496094 9.8105469 L 5.2148438 7.5605469 z" />
|
||||
</graphic>
|
||||
</Tab>
|
||||
<Tab closable="false">
|
||||
<content>
|
||||
<fx:include fx:id="NXDTab" source="NXDTab.fxml" VBox.vgrow="ALWAYS" />
|
||||
</content>
|
||||
<graphic>
|
||||
<SVGPath content="M 7 0 L 0 4 C -0.02484618 7.6613523 4.6259293e-18 7.3229335 0 10.984375 C 0 10.993031 0.015625 7 0.015625 8 L 13 0 L 7 0 z M 17.966797 6.46875 L 17.966797 10.673828 C 17.715715 10.211268 17.396999 9.8685131 17.011719 9.6464844 C 16.630766 9.4198301 16.171566 9.3066406 15.634766 9.3066406 C 14.755976 9.3066406 14.040441 9.682293 13.486328 10.431641 C 12.936542 11.180987 12.660156 12.165561 12.660156 13.386719 C 12.660156 14.607877 12.936542 15.59245 13.486328 16.341797 C 14.040441 17.091144 14.755976 17.466797 15.634766 17.466797 C 16.171566 17.466797 16.630766 17.354841 17.011719 17.132812 C 17.396999 16.90616 17.715715 16.562169 17.966797 16.099609 L 17.966797 17.265625 L 19.160156 17.265625 L 19.160156 6.46875 L 17.966797 6.46875 z M 20.572266 7.3652344 L 20.572266 9.5546875 L 19.800781 9.5546875 L 19.800781 10.539062 L 20.572266 10.539062 L 20.572266 14.724609 C 20.572266 15.688531 20.728201 16.353495 21.037109 16.720703 C 21.346016 17.083321 21.906432 17.265625 22.71875 17.265625 L 23.800781 17.265625 L 23.800781 16.205078 L 22.71875 16.205078 C 22.280176 16.205078 21.98867 16.114559 21.84375 15.935547 C 21.702645 15.756534 21.630859 15.353453 21.630859 14.724609 L 21.630859 10.539062 L 23.800781 10.539062 L 23.800781 9.5546875 L 21.630859 9.5546875 L 21.630859 7.3652344 L 20.572266 7.3652344 z M 3.6386719 9.3066406 C 3.1397071 9.3066406 2.6982722 9.4230165 2.3144531 9.6542969 C 1.9348986 9.8855772 1.6037331 10.233986 1.3222656 10.701172 L 1.3222656 9.4941406 L 0.13867188 9.4941406 L 0.13867188 17.265625 L 1.3222656 17.265625 L 1.3222656 12.873047 C 1.3222656 12.114448 1.5062865 11.515605 1.8730469 11.076172 C 2.2398077 10.636739 2.7395664 10.417969 3.375 10.417969 C 3.9038175 10.417969 4.3000442 10.599421 4.5644531 10.964844 C 4.8288618 11.330266 4.9609375 11.881715 4.9609375 12.617188 L 4.9609375 17.265625 L 6.1386719 17.265625 L 6.1386719 12.576172 C 6.1386719 11.503031 5.9280604 10.691072 5.5058594 10.140625 C 5.0836585 9.5855522 4.4617505 9.3066406 3.6386719 9.3066406 z M 6.984375 9.4941406 L 9.2207031 13.199219 L 6.7773438 17.265625 L 7.9960938 17.265625 L 9.828125 14.212891 L 11.658203 17.265625 L 12.878906 17.265625 L 10.484375 13.275391 L 12.759766 9.4941406 L 11.541016 9.4941406 L 9.8730469 12.263672 L 8.2050781 9.4941406 L 6.984375 9.4941406 z M 15.927734 10.375 C 16.559769 10.375 17.056283 10.643118 17.419922 11.179688 C 17.783557 11.711631 17.966797 12.447722 17.966797 13.386719 C 17.966797 14.325715 17.783557 15.06304 17.419922 15.599609 C 17.056283 16.131553 16.559769 16.398437 15.927734 16.398438 C 15.295699 16.398438 14.797233 16.131553 14.433594 15.599609 C 14.074286 15.06304 13.894531 14.325715 13.894531 13.386719 C 13.894531 12.447722 14.074286 11.711631 14.433594 11.179688 C 14.797233 10.643118 15.295699 10.375 15.927734 10.375 z M 24 18.400391 C 24.0056 21.386719 23.984375 22 23.984375 19 L 15 23.982422 L 23.984375 23.996094 C 23.993075 23.996094 24 23.990492 24 23.982422 L 24 18.400391 z" />
|
||||
</graphic>
|
||||
</Tab>
|
||||
<Tab closable="false">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
|
@ -73,6 +69,14 @@
|
|||
<SVGPath content="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10M17,11H15V9H17V11M13,11H11V9H13V11M9,11H7V9H9V11Z" />
|
||||
</graphic>
|
||||
</Tab>
|
||||
<Tab closable="false" disable="true">
|
||||
<content>
|
||||
<fx:include fx:id="NXDTab" source="NXDTab.fxml" VBox.vgrow="ALWAYS" />
|
||||
</content>
|
||||
<graphic>
|
||||
<SVGPath content="M 7 0 L 0 4 C -0.02484618 7.6613523 4.6259293e-18 7.3229335 0 10.984375 C 0 10.993031 0.015625 7 0.015625 8 L 13 0 L 7 0 z M 17.966797 6.46875 L 17.966797 10.673828 C 17.715715 10.211268 17.396999 9.8685131 17.011719 9.6464844 C 16.630766 9.4198301 16.171566 9.3066406 15.634766 9.3066406 C 14.755976 9.3066406 14.040441 9.682293 13.486328 10.431641 C 12.936542 11.180987 12.660156 12.165561 12.660156 13.386719 C 12.660156 14.607877 12.936542 15.59245 13.486328 16.341797 C 14.040441 17.091144 14.755976 17.466797 15.634766 17.466797 C 16.171566 17.466797 16.630766 17.354841 17.011719 17.132812 C 17.396999 16.90616 17.715715 16.562169 17.966797 16.099609 L 17.966797 17.265625 L 19.160156 17.265625 L 19.160156 6.46875 L 17.966797 6.46875 z M 20.572266 7.3652344 L 20.572266 9.5546875 L 19.800781 9.5546875 L 19.800781 10.539062 L 20.572266 10.539062 L 20.572266 14.724609 C 20.572266 15.688531 20.728201 16.353495 21.037109 16.720703 C 21.346016 17.083321 21.906432 17.265625 22.71875 17.265625 L 23.800781 17.265625 L 23.800781 16.205078 L 22.71875 16.205078 C 22.280176 16.205078 21.98867 16.114559 21.84375 15.935547 C 21.702645 15.756534 21.630859 15.353453 21.630859 14.724609 L 21.630859 10.539062 L 23.800781 10.539062 L 23.800781 9.5546875 L 21.630859 9.5546875 L 21.630859 7.3652344 L 20.572266 7.3652344 z M 3.6386719 9.3066406 C 3.1397071 9.3066406 2.6982722 9.4230165 2.3144531 9.6542969 C 1.9348986 9.8855772 1.6037331 10.233986 1.3222656 10.701172 L 1.3222656 9.4941406 L 0.13867188 9.4941406 L 0.13867188 17.265625 L 1.3222656 17.265625 L 1.3222656 12.873047 C 1.3222656 12.114448 1.5062865 11.515605 1.8730469 11.076172 C 2.2398077 10.636739 2.7395664 10.417969 3.375 10.417969 C 3.9038175 10.417969 4.3000442 10.599421 4.5644531 10.964844 C 4.8288618 11.330266 4.9609375 11.881715 4.9609375 12.617188 L 4.9609375 17.265625 L 6.1386719 17.265625 L 6.1386719 12.576172 C 6.1386719 11.503031 5.9280604 10.691072 5.5058594 10.140625 C 5.0836585 9.5855522 4.4617505 9.3066406 3.6386719 9.3066406 z M 6.984375 9.4941406 L 9.2207031 13.199219 L 6.7773438 17.265625 L 7.9960938 17.265625 L 9.828125 14.212891 L 11.658203 17.265625 L 12.878906 17.265625 L 10.484375 13.275391 L 12.759766 9.4941406 L 11.541016 9.4941406 L 9.8730469 12.263672 L 8.2050781 9.4941406 L 6.984375 9.4941406 z M 15.927734 10.375 C 16.559769 10.375 17.056283 10.643118 17.419922 11.179688 C 17.783557 11.711631 17.966797 12.447722 17.966797 13.386719 C 17.966797 14.325715 17.783557 15.06304 17.419922 15.599609 C 17.056283 16.131553 16.559769 16.398437 15.927734 16.398438 C 15.295699 16.398438 14.797233 16.131553 14.433594 15.599609 C 14.074286 15.06304 13.894531 14.325715 13.894531 13.386719 C 13.894531 12.447722 14.074286 11.711631 14.433594 11.179688 C 14.797233 10.643118 15.295699 10.375 15.927734 10.375 z M 24 18.400391 C 24.0056 21.386719 23.984375 22 23.984375 19 L 15 23.982422 L 23.984375 23.996094 C 23.993075 23.996094 24 23.990492 24 23.982422 L 24 18.400391 z" visible="false" />
|
||||
</graphic>
|
||||
</Tab>
|
||||
</tabs>
|
||||
</TabPane>
|
||||
<ProgressBar fx:id="progressBar" prefWidth="Infinity" progress="0.0">
|
||||
|
|
|
@ -22,6 +22,11 @@
|
|||
<Label text="%tab2_Lbl_Language" />
|
||||
<ChoiceBox fx:id="langCB" prefWidth="100.0" />
|
||||
<Button fx:id="langBtn" mnemonicParsing="false" text="OK" />
|
||||
<VBox alignment="CENTER_RIGHT" HBox.hgrow="ALWAYS">
|
||||
<children>
|
||||
<Button fx:id="drvInstBtn" mnemonicParsing="false" text="%tab2_Btn_InstallDrivers" visible="false" />
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets left="5.0" />
|
||||
|
|
|
@ -63,3 +63,8 @@ failure_txt=Failed
|
|||
btn_Select=Select
|
||||
btn_InjectPayloader=Inject payload
|
||||
tabNXDT_Btn_Start=Start!
|
||||
tab2_Btn_InstallDrivers=Download and install drivers
|
||||
windowTitleDownloadDrivers=Download and install drivers
|
||||
windowBodyDownloadDrivers=Downloading drivers (libusbK v3.0.7.0)...
|
||||
btn_Cancel=Cancel
|
||||
btn_Close=Close
|
|
@ -43,3 +43,5 @@ tab2_Lbl_AllowXciNszXczDesc=Von einigen Drittanbietern verwendet, welche XCI/NSZ
|
|||
tab2_Lbl_Language=Sprache
|
||||
windowBodyRestartToApplyLang=Bitte die Applikation neustarten um die Einstellungen zu \u00FCbernehmen.
|
||||
tab2_Cb_GLshowNspOnly=Nur *.nsp in GoldLeaf zeigen.
|
||||
btn_Cancel=Abbrechen
|
||||
|
||||
|
|
|
@ -41,4 +41,6 @@ windowBodyNewVersionUnknown=Une erreur s'est produite\nPeut-\u00EAtre des probl\
|
|||
tab2_Cb_AllowXciNszXcz=Autoriser la s\u00E9lection de fichiers XCI / NSZ / XCZ pour TinFoil
|
||||
tab2_Lbl_AllowXciNszXczDesc=Utilis\u00E9 par certaines applications tierces prenant en charge XCI/NSZ/XCZ et utilisant le protocole de transfert TinFoil. Ne changez pas en cas de doute.
|
||||
tab2_Lbl_Language=La langue
|
||||
btn_Cancel=Annuler
|
||||
|
||||
|
||||
|
|
|
@ -62,3 +62,5 @@ done_txt=Fatto!
|
|||
failure_txt=Fallito
|
||||
btn_Select=Seleziona
|
||||
btn_InjectPayloader=Inietta payload
|
||||
btn_Cancel=Annulla
|
||||
|
||||
|
|
|
@ -62,3 +62,5 @@ done_txt=Feito!
|
|||
failure_txt=Falhou
|
||||
btn_Select=Selecionar
|
||||
btn_InjectPayloader=Injetar payload
|
||||
btn_Cancel=Cancelar
|
||||
|
||||
|
|
|
@ -63,4 +63,9 @@ failure_txt=\u041D\u0435\u0443\u0434\u0430\u0447\u0430
|
|||
btn_Select=\u0412\u044B\u0431\u0440\u0430\u0442\u044C
|
||||
btn_InjectPayloader=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C payload
|
||||
tabNXDT_Btn_Start=\u0421\u0442\u0430\u0440\u0442!
|
||||
tab2_Btn_InstallDrivers=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430
|
||||
windowTitleDownloadDrivers=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430
|
||||
windowBodyDownloadDrivers=\u0421\u043A\u0430\u0447\u0438\u0432\u0430\u0435\u043C \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044B (libusbK v3.0.7.0)...
|
||||
btn_Cancel=\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C
|
||||
btn_Close=\u0417\u0430\u043A\u0440\u044B\u0442\u044C
|
||||
|
||||
|
|
|
@ -43,3 +43,5 @@ tab2_Lbl_AllowXciNszXczDesc=Usado por algunas aplicaciones de terceros que sopor
|
|||
tab2_Lbl_Language=Idioma
|
||||
windowBodyRestartToApplyLang=Por favor, reinicie el programa para aplicar los cambios.
|
||||
tab2_Cb_GLshowNspOnly=Mostrar solo *.nsp en GoldLeaf.
|
||||
btn_Cancel=Cancelar
|
||||
|
||||
|
|
|
@ -63,3 +63,8 @@ failure_txt=\u041D\u0435\u0432\u0434\u0430\u0447\u0430
|
|||
btn_Select=\u0412\u0438\u0431\u0440\u0430\u0442\u0438
|
||||
btn_InjectPayloader=\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 payload
|
||||
tabNXDT_Btn_Start=\u0421\u0442\u0430\u0440\u0442!
|
||||
tab2_Btn_InstallDrivers=\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0442\u0430 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0438
|
||||
windowTitleDownloadDrivers=\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0442\u0430 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0438
|
||||
windowBodyDownloadDrivers=\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0443\u0454\u043C\u043E \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0438 (libusbK v3.0.7.0)...
|
||||
btn_Cancel=\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438
|
||||
btn_Close=\u0417\u0430\u043A\u0440\u0438\u0442\u0438
|
||||
|
|
|
@ -61,3 +61,5 @@ windowTitleErrorPort=C\u1ED5ng thi\u1EBFt l\u1EADp kh\u00F4ng ch\u00EDnh x\u00E1
|
|||
windowTitleNewVersionAval=C\u00F3 phi\u00EAn b\u1EA3n m\u1EDBi
|
||||
windowTitleNewVersionNOTAval=Ch\u01B0a c\u00F3 phi\u00EAn b\u1EA3n m\u1EDBi
|
||||
windowTitleNewVersionUnknown=Kh\u00F4ng th\u1EC3 ki\u1EC3m tra phi\u00EAn b\u1EA3n m\u1EDBi
|
||||
btn_Cancel=H\u1EE7y B\u1ECF
|
||||
|
||||
|
|
|
@ -43,3 +43,5 @@ tab2_Lbl_AllowXciNszXczDesc=\u7528\u4E8E\u4E00\u4E9B\u652F\u6301XCI/NSZ/XCZ\u548
|
|||
tab2_Lbl_Language=\u8BED\u8A00
|
||||
windowBodyRestartToApplyLang=\u8BF7\u91CD\u542F\u5E94\u7528\u4EE5\u5E94\u7528\u66F4\u6539\u3002
|
||||
tab2_Cb_GLshowNspOnly=\u5728GoldLeaf\u4EC5\u5C55\u793A*.NSP\u6587\u4EF6
|
||||
btn_Cancel=\u53D6\u6D88
|
||||
|
||||
|
|
|
@ -403,6 +403,14 @@
|
|||
.nxdt.label .text {
|
||||
-fx-fill: #cb0010;
|
||||
}
|
||||
|
||||
.regionWindows {
|
||||
-fx-shape: "M3,12V6.75L9,5.43V11.91L3,12M20,3V11.75L10,11.9V5.21L20,3M3,13L9,13.09V19.9L3,18.75V13M20,13.25V22L10,20.09V13.1L20,13.25Z";
|
||||
-fx-background-color: #f7fafa;
|
||||
-size: 17.5;
|
||||
-fx-min-height: -size;
|
||||
-fx-min-width: 17.5;
|
||||
}
|
||||
//
|
||||
//.lineGradient {
|
||||
// -fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect, #00c8fc 30%, transparent 45%);
|
||||
|
|
|
@ -321,3 +321,10 @@
|
|||
.nxdt.label .text {
|
||||
-fx-fill: #9d010e;
|
||||
}
|
||||
.regionWindows {
|
||||
-fx-shape: "M3,12V6.75L9,5.43V11.91L3,12M20,3V11.75L10,11.9V5.21L20,3M3,13L9,13.09V19.9L3,18.75V13M20,13.25V22L10,20.09V13.1L20,13.25Z";
|
||||
-fx-background-color: #2c2c2c;
|
||||
-size: 17.5;
|
||||
-fx-min-height: -size;
|
||||
-fx-min-width: 17.5;
|
||||
}
|
BIN
src/main/resources/res/dwnload_ico128x128.png
Normal file
BIN
src/main/resources/res/dwnload_ico128x128.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.7 KiB |
BIN
src/main/resources/res/dwnload_ico32x32.png
Normal file
BIN
src/main/resources/res/dwnload_ico32x32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
BIN
src/main/resources/res/dwnload_ico48x48.png
Normal file
BIN
src/main/resources/res/dwnload_ico48x48.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.9 KiB |
BIN
src/main/resources/res/dwnload_ico64x64.png
Normal file
BIN
src/main/resources/res/dwnload_ico64x64.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.4 KiB |
Loading…
Reference in a new issue