v1.1.0 — chemin Blender configurable depuis l'UI
Refonte de PathResolver : auto-detection systeme (which/where + chemins courants), persistance du chemin dans userData, validation du fichier. Ajout d'un modal Bootstrap pour configurer le chemin manuellement. Badge vert/rouge dans la navbar indiquant le statut Blender. Le modal s'ouvre automatiquement si Blender n'est pas trouve au lancement. Suppression de extraResources (plus de Blender embarque dans le build). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
35
main.js
35
main.js
@@ -5,6 +5,7 @@ const CameraParser = require("./src/main/CameraParser.js");
|
||||
const QueueManager = require("./src/main/QueueManager.js");
|
||||
const ConfigManager = require("./src/main/ConfigManager.js");
|
||||
const UpdateManager = require("./src/main/UpdateManager.js");
|
||||
const PathResolver = require("./src/main/PathResolver.js");
|
||||
|
||||
let obj_main_window = null;
|
||||
let obj_queue_manager = null;
|
||||
@@ -27,9 +28,12 @@ const create_window = () => {
|
||||
|
||||
obj_queue_manager = new QueueManager(obj_main_window);
|
||||
|
||||
PathResolver.load_saved_path();
|
||||
|
||||
UpdateManager.init(obj_main_window);
|
||||
obj_main_window.webContents.on("did-finish-load", () => {
|
||||
UpdateManager.check_for_updates();
|
||||
obj_main_window.webContents.send("blender-path-status", PathResolver.get_status());
|
||||
});
|
||||
};
|
||||
|
||||
@@ -159,6 +163,37 @@ ipcMain.handle("read-image", (event, str_image_path) => {
|
||||
return fn_try_read(0);
|
||||
});
|
||||
|
||||
ipcMain.handle("get-blender-path", () => {
|
||||
return PathResolver.get_status();
|
||||
});
|
||||
|
||||
ipcMain.handle("set-blender-path", (event, str_path) => {
|
||||
let obj_result = PathResolver.set_blender_path(str_path);
|
||||
if (obj_result.is_success) {
|
||||
obj_main_window.webContents.send("blender-path-status", PathResolver.get_status());
|
||||
}
|
||||
return obj_result;
|
||||
});
|
||||
|
||||
ipcMain.handle("select-blender-exe", () => {
|
||||
let str_exe_name = process.platform === "win32" ? "blender.exe" : "blender";
|
||||
let list_filters = process.platform === "win32"
|
||||
? [{ name: "Blender", extensions: ["exe"] }]
|
||||
: [{ name: "Blender", extensions: ["*"] }];
|
||||
|
||||
return dialog.showOpenDialog(obj_main_window, {
|
||||
title: "Selectionner l'executable Blender",
|
||||
filters: list_filters,
|
||||
properties: ["openFile"],
|
||||
})
|
||||
.then((obj_result) => {
|
||||
if (obj_result.canceled || obj_result.filePaths.length === 0) {
|
||||
return null;
|
||||
}
|
||||
return obj_result.filePaths[0];
|
||||
});
|
||||
});
|
||||
|
||||
ipcMain.handle("check-for-updates", () => {
|
||||
return UpdateManager.check_for_updates();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user