mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-14 11: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.Constants;
|
||||||
import cc.arduino.i18n.Language;
|
import cc.arduino.i18n.Language;
|
||||||
import cc.arduino.i18n.Languages;
|
import cc.arduino.i18n.Languages;
|
||||||
|
import io.grpc.StatusException;
|
||||||
import processing.app.Base;
|
import processing.app.Base;
|
||||||
import processing.app.BaseNoGui;
|
import processing.app.BaseNoGui;
|
||||||
import processing.app.Editor;
|
import processing.app.Editor;
|
||||||
@ -653,6 +654,11 @@ public class Preferences extends javax.swing.JDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
savePreferencesData();
|
savePreferencesData();
|
||||||
|
try {
|
||||||
|
BaseNoGui.getArduinoCoreService().updateSettingFromPreferences();
|
||||||
|
} catch (StatusException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
base.getEditors().forEach(processing.app.Editor::applyPreferences);
|
base.getEditors().forEach(processing.app.Editor::applyPreferences);
|
||||||
cancelButtonActionPerformed(evt);
|
cancelButtonActionPerformed(evt);
|
||||||
}//GEN-LAST:event_okButtonActionPerformed
|
}//GEN-LAST:event_okButtonActionPerformed
|
||||||
|
@ -90,29 +90,7 @@ public class ArduinoCore {
|
|||||||
// async = ArduinoCoreGrpc.newStub(channel);
|
// async = ArduinoCoreGrpc.newStub(channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDataDir(File dataDir) {
|
public ArduinoCoreInstance init() {
|
||||||
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);
|
|
||||||
Iterator<InitResp> resp = coreBlocking.init(InitReq.getDefaultInstance());
|
Iterator<InitResp> resp = coreBlocking.init(InitReq.getDefaultInstance());
|
||||||
Instance instance = null;
|
Instance instance = null;
|
||||||
while (resp.hasNext()) {
|
while (resp.hasNext()) {
|
||||||
@ -131,6 +109,6 @@ public class ArduinoCore {
|
|||||||
instance = r.getInstance();
|
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 static processing.app.I18n.tr;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.ArrayList;
|
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.LibraryUninstallReq;
|
||||||
import cc.arduino.cli.commands.Lib.LibraryUninstallResp;
|
import cc.arduino.cli.commands.Lib.LibraryUninstallResp;
|
||||||
import cc.arduino.cli.commands.Lib.SearchedLibrary;
|
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.ProgressListener;
|
||||||
import cc.arduino.contributions.libraries.ContributedLibraryRelease;
|
import cc.arduino.contributions.libraries.ContributedLibraryRelease;
|
||||||
import io.grpc.StatusException;
|
import io.grpc.StatusException;
|
||||||
import io.grpc.StatusRuntimeException;
|
import io.grpc.StatusRuntimeException;
|
||||||
|
import processing.app.BaseNoGui;
|
||||||
|
|
||||||
public class ArduinoCoreInstance {
|
public class ArduinoCoreInstance {
|
||||||
|
|
||||||
private Instance instance;
|
private Instance instance;
|
||||||
private ArduinoCoreBlockingStub stub;
|
private ArduinoCoreBlockingStub stub;
|
||||||
|
private SettingsBlockingStub settings;
|
||||||
|
|
||||||
public ArduinoCoreInstance(Instance instance,
|
public ArduinoCoreInstance(Instance instance,
|
||||||
ArduinoCoreBlockingStub blocking) {
|
ArduinoCoreBlockingStub core,
|
||||||
|
SettingsBlockingStub settings) {
|
||||||
this.instance = instance;
|
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 {
|
public void boardDetails(String fqbn) throws StatusException {
|
||||||
|
@ -107,7 +107,7 @@ public class BaseNoGui {
|
|||||||
public static void initArduinoCoreService() {
|
public static void initArduinoCoreService() {
|
||||||
try {
|
try {
|
||||||
ArduinoCore core = new ArduinoCore();
|
ArduinoCore core = new ArduinoCore();
|
||||||
arduinoCoreInstance = core.init(getSettingsFolder(), getSketchbookFolder());
|
arduinoCoreInstance = core.init();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user