1
0
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:
Cristian Maglie 2020-04-15 19:48:36 +02:00
parent 7b79ec848e
commit 6dd8ec8665
4 changed files with 52 additions and 27 deletions

View File

@ -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

View File

@ -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);
}
}

View File

@ -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 {

View File

@ -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();
}