Open config dir from Settings->Help
This commit is contained in:
parent
91b1572672
commit
e1c3cf9e72
|
@ -1,5 +1,7 @@
|
|||
package ctbrec.ui.tabs;
|
||||
|
||||
import ctbrec.Config;
|
||||
import ctbrec.OS;
|
||||
import ctbrec.docs.DocServer;
|
||||
import ctbrec.ui.DesktopIntegration;
|
||||
import javafx.application.Platform;
|
||||
|
@ -27,14 +29,19 @@ public class HelpTab extends Tab {
|
|||
|
||||
Button openHelp = new Button("Open Help");
|
||||
Button openLog = new Button("Open Log File");
|
||||
Button openCfg = new Button("Open config dir");
|
||||
openHelp.setPadding(new Insets(20));
|
||||
openLog.setPadding(new Insets(20));
|
||||
Label logFilePathLabel = new Label("Log: " + new File("ctbrec.log").getAbsolutePath());
|
||||
openCfg.setPadding(new Insets(20));
|
||||
Label logFilePathLabel = new Label("Log file: " + new File("ctbrec.log").getAbsolutePath());
|
||||
File cfgDir = Config.getInstance().getConfigDir();
|
||||
String path = (cfgDir != null) ? cfgDir.getAbsolutePath() : "Unknown";
|
||||
Label configPathLabel = new Label("Config dir: " + path);
|
||||
|
||||
VBox vbox = new VBox();
|
||||
vbox.setAlignment(Pos.CENTER); // Center align the buttons
|
||||
vbox.setSpacing(20); // Set a 20 pixel gap between the buttons
|
||||
vbox.getChildren().addAll(openHelp, openLog, logFilePathLabel);
|
||||
vbox.getChildren().addAll(openHelp, openCfg, configPathLabel, openLog, logFilePathLabel);
|
||||
|
||||
BorderPane layout = new BorderPane();
|
||||
|
||||
|
@ -73,8 +80,31 @@ public class HelpTab extends Tab {
|
|||
log.warn("Log file doesn't exist: {}", logFile.getAbsolutePath());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
openCfg.setOnAction(e -> {
|
||||
File configDir = Config.getInstance().getConfigDir();
|
||||
if (configDir.exists()) {
|
||||
try {
|
||||
// Use Runtime.getRuntime().exec() to open the file in a separate process
|
||||
String osName = System.getProperty("os.name").toLowerCase();
|
||||
ProcessBuilder pb = null;
|
||||
if (osName.contains("mac")) {
|
||||
pb = new ProcessBuilder("open", configDir.getAbsolutePath());
|
||||
} else if (osName.contains("win")) {
|
||||
pb = new ProcessBuilder("explorer.exe", configDir.getAbsolutePath());
|
||||
} else { // Assume it's a Unix/Linux system
|
||||
pb = new ProcessBuilder("xdg-open", configDir.getAbsolutePath());
|
||||
}
|
||||
pb.start();
|
||||
} catch (IOException ex) {
|
||||
log.error("Couldn't open config dir", ex);
|
||||
}
|
||||
} else {
|
||||
log.warn("Config dir doesn't exist: {}", configDir.getAbsolutePath());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void startDocumentationServer() {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
|
|
Loading…
Reference in New Issue