aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app/main.js1
-rw-r--r--src/index.js10
-rw-r--r--src/lang/en.json2
-rw-r--r--src/utils.js30
4 files changed, 24 insertions, 19 deletions
diff --git a/src/app/main.js b/src/app/main.js
index dab584e..a3a1d04 100644
--- a/src/app/main.js
+++ b/src/app/main.js
@@ -26,7 +26,6 @@ if (fs.existsSync("viper.json")) {
settings.zip = path.join(settings.gamepath + "/northstar.zip");
if (settings.gamepath.length === 0) {
- alert(lang("general.missingpath"));
setpath(false);
} else {
setpath(true);
diff --git a/src/index.js b/src/index.js
index f4207e7..c8bfc53 100644
--- a/src/index.js
+++ b/src/index.js
@@ -87,9 +87,13 @@ ipcMain.on("launchVanilla", (event) => {utils.launch("vanilla")})
ipcMain.on("update", (event) => {utils.update()})
ipcMain.on("setpathcli", (event) => {utils.setpath()});
ipcMain.on("setpath", (event, value) => {
- if (!value) {
- utils.setpath(win);
- } else if (!win.isVisible()) {
+ if (! value) {
+ if (! win.isVisible()) {
+ utils.setpath(win);
+ } else {
+ utils.setpath(win, true);
+ }
+ } else if (! win.isVisible()) {
win.show();
}
});
diff --git a/src/lang/en.json b/src/lang/en.json
index 8d4daeb..fe9b0b0 100644
--- a/src/lang/en.json
+++ b/src/lang/en.json
@@ -42,7 +42,7 @@
"gui.versions.northstar": "Northstar version",
"gui.exit": "Exit",
"gui.update": "Update",
- "gui.setpath": "Game Path",
+ "gui.setpath": "Change Game Path",
"gui.update.check": "Check for updates",
"gui.mods": "Mods",
diff --git a/src/utils.js b/src/utils.js
index ef647fe..fb94b92 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -116,7 +116,7 @@ northstar_auto_updates: {
//
// If running with CLI it takes in the --setpath argument otherwise it
// open the systems file browser for the user to select a path.
-async function setpath(win) {
+async function setpath(win, forcedialog) {
function setGamepath(folder) {
settings.gamepath = folder;
settings.zip = path.join(settings.gamepath + "/northstar.zip");
@@ -128,21 +128,23 @@ async function setpath(win) {
if (! win) { // CLI
setGamepath(cli.param("setpath"));
} else { // GUI
- function setGamepath(folder) {
- settings.gamepath = folder;
- settings.zip = path.join(settings.gamepath + "/northstar.zip");
- saveSettings();
- win.webContents.send("newpath", settings.gamepath);
- ipcMain.emit("newpath", null, settings.gamepath);
- }
+ if (! forcedialog) {
+ function setGamepath(folder, forcedialog) {
+ settings.gamepath = folder;
+ settings.zip = path.join(settings.gamepath + "/northstar.zip");
+ saveSettings();
+ win.webContents.send("newpath", settings.gamepath);
+ ipcMain.emit("newpath", null, settings.gamepath);
+ }
- let gamepath = await findgame();
- if (gamepath) {
- setGamepath(gamepath);
- return;
- }
+ let gamepath = await findgame();
+ if (gamepath) {
+ setGamepath(gamepath);
+ return;
+ }
- alert(lang("general.missingpath"));
+ winAlert(lang("general.missingpath"));
+ }
// Fallback to manual selection
dialog.showOpenDialog({properties: ["openDirectory"]}).then(res => {