mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-15 12:29:26 +01:00
Setting are applied automatically when preferences dialog is closed
This commit is contained in:
parent
7b79ec848e
commit
6dd8ec8665
@ -32,6 +32,7 @@ package cc.arduino.view.preferences;
|
||||
import cc.arduino.Constants;
|
||||
import cc.arduino.i18n.Language;
|
||||
import cc.arduino.i18n.Languages;
|
||||
import io.grpc.StatusException;
|
||||
import processing.app.Base;
|
||||
import processing.app.BaseNoGui;
|
||||
import processing.app.Editor;
|
||||
@ -653,6 +654,11 @@ public class Preferences extends javax.swing.JDialog {
|
||||
}
|
||||
|
||||
savePreferencesData();
|
||||
try {
|
||||
BaseNoGui.getArduinoCoreService().updateSettingFromPreferences();
|
||||
} catch (StatusException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
base.getEditors().forEach(processing.app.Editor::applyPreferences);
|
||||
cancelButtonActionPerformed(evt);
|
||||
}//GEN-LAST:event_okButtonActionPerformed
|
||||
|
@ -90,29 +90,7 @@ public class ArduinoCore {
|
||||
// async = ArduinoCoreGrpc.newStub(channel);
|
||||
}
|
||||
|
||||
public void setDataDir(File dataDir) {
|
||||
settingsBlocking
|
||||
.setValue(SettingsOuterClass.Value.newBuilder().setKey("directories") //
|
||||
.setJsonData("{ \"data\": \"" + dataDir.getAbsolutePath() + "\" }") //
|
||||
.build());
|
||||
File downloadsDir = new File(dataDir, "staging");
|
||||
settingsBlocking
|
||||
.setValue(SettingsOuterClass.Value.newBuilder().setKey("directories") //
|
||||
.setJsonData("{ \"downloads\": \"" + downloadsDir.getAbsolutePath()
|
||||
+ "\" }") //
|
||||
.build());
|
||||
}
|
||||
|
||||
public void setSketchbookDir(File dataDir) {
|
||||
settingsBlocking
|
||||
.setValue(SettingsOuterClass.Value.newBuilder().setKey("directories") //
|
||||
.setJsonData("{ \"user\": \"" + dataDir.getAbsolutePath() + "\" }") //
|
||||
.build());
|
||||
}
|
||||
|
||||
public ArduinoCoreInstance init(File dataDir, File sketchbookDir) {
|
||||
setDataDir(dataDir);
|
||||
setSketchbookDir(sketchbookDir);
|
||||
public ArduinoCoreInstance init() {
|
||||
Iterator<InitResp> resp = coreBlocking.init(InitReq.getDefaultInstance());
|
||||
Instance instance = null;
|
||||
while (resp.hasNext()) {
|
||||
@ -131,6 +109,6 @@ public class ArduinoCore {
|
||||
instance = r.getInstance();
|
||||
}
|
||||
}
|
||||
return new ArduinoCoreInstance(instance, coreBlocking);
|
||||
return new ArduinoCoreInstance(instance, coreBlocking, settingsBlocking);
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ package cc.arduino.cli;
|
||||
|
||||
import static processing.app.I18n.tr;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
@ -63,20 +64,60 @@ import cc.arduino.cli.commands.Lib.LibrarySearchResp;
|
||||
import cc.arduino.cli.commands.Lib.LibraryUninstallReq;
|
||||
import cc.arduino.cli.commands.Lib.LibraryUninstallResp;
|
||||
import cc.arduino.cli.commands.Lib.SearchedLibrary;
|
||||
import cc.arduino.cli.settings.SettingsOuterClass;
|
||||
import cc.arduino.cli.settings.SettingsGrpc.SettingsBlockingStub;
|
||||
import cc.arduino.contributions.ProgressListener;
|
||||
import cc.arduino.contributions.libraries.ContributedLibraryRelease;
|
||||
import io.grpc.StatusException;
|
||||
import io.grpc.StatusRuntimeException;
|
||||
import processing.app.BaseNoGui;
|
||||
|
||||
public class ArduinoCoreInstance {
|
||||
|
||||
private Instance instance;
|
||||
private ArduinoCoreBlockingStub stub;
|
||||
private SettingsBlockingStub settings;
|
||||
|
||||
public ArduinoCoreInstance(Instance instance,
|
||||
ArduinoCoreBlockingStub blocking) {
|
||||
ArduinoCoreBlockingStub core,
|
||||
SettingsBlockingStub settings) {
|
||||
this.instance = instance;
|
||||
this.stub = blocking;
|
||||
this.stub = core;
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
public void updateSettingFromPreferences() throws StatusException {
|
||||
setDataDir(BaseNoGui.getSettingsFolder());
|
||||
setSketchbookDir(BaseNoGui.getSketchbookFolder());
|
||||
rescan();
|
||||
}
|
||||
|
||||
public void setDataDir(File dataDir) {
|
||||
settings
|
||||
.setValue(SettingsOuterClass.Value.newBuilder().setKey("directories") //
|
||||
.setJsonData("{ \"data\": \"" + dataDir.getAbsolutePath() + "\" }") //
|
||||
.build());
|
||||
File downloadsDir = new File(dataDir, "staging");
|
||||
settings
|
||||
.setValue(SettingsOuterClass.Value.newBuilder().setKey("directories") //
|
||||
.setJsonData("{ \"downloads\": \"" + downloadsDir.getAbsolutePath()
|
||||
+ "\" }") //
|
||||
.build());
|
||||
}
|
||||
|
||||
public void setSketchbookDir(File dataDir) {
|
||||
System.out.println("SKETCHBOOK: "+dataDir.getAbsolutePath());
|
||||
settings
|
||||
.setValue(SettingsOuterClass.Value.newBuilder().setKey("directories") //
|
||||
.setJsonData("{ \"user\": \"" + dataDir.getAbsolutePath() + "\" }") //
|
||||
.build());
|
||||
}
|
||||
|
||||
public void setProxyUrl(String url) {
|
||||
settings.setValue(SettingsOuterClass.Value.newBuilder() //
|
||||
.setKey("network") //
|
||||
.setJsonData("{ \"proxy\": \"" + url + "\" }") //
|
||||
.build());
|
||||
}
|
||||
|
||||
public void boardDetails(String fqbn) throws StatusException {
|
||||
|
@ -107,7 +107,7 @@ public class BaseNoGui {
|
||||
public static void initArduinoCoreService() {
|
||||
try {
|
||||
ArduinoCore core = new ArduinoCore();
|
||||
arduinoCoreInstance = core.init(getSettingsFolder(), getSketchbookFolder());
|
||||
arduinoCoreInstance = core.init();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user