summaryrefslogtreecommitdiff
path: root/src/main/java/serialize
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-06-06 08:36:55 +0300
committerPaul Buetow <paul@buetow.org>2025-06-06 08:36:55 +0300
commitea4f22311b639561856f37c8ac872af2cd9d55dd (patch)
treefd90e44a2974a6d18d177a57b811f0f83811b927 /src/main/java/serialize
parent1d99762c7965d351510cfb5e08eac25e48d96038 (diff)
Modernize UI and fix localization: - Rollback to Swing UI - Update build configuration - Fix localization string handling - Add missing localization strings - Improve protocol event handling
Diffstat (limited to 'src/main/java/serialize')
-rw-r--r--src/main/java/serialize/VSSerialize.java43
1 files changed, 41 insertions, 2 deletions
diff --git a/src/main/java/serialize/VSSerialize.java b/src/main/java/serialize/VSSerialize.java
index a6d3580..e8470e3 100644
--- a/src/main/java/serialize/VSSerialize.java
+++ b/src/main/java/serialize/VSSerialize.java
@@ -208,14 +208,53 @@ public final class VSSerialize {
FileInputStream fileInputStream = new FileInputStream(filename);
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
+ // Create new prefs with current localization
VSDefaultPrefs prefs = new VSDefaultPrefs();
- prefs.deserialize(this, objectInputStream);
- prefs.addWithDefaults();
+ prefs.fillWithDefaults(); // This sets up current localization strings
+
+ // Read the serialized prefs but don't use their strings
+ VSSerializablePrefs serializedPrefs = new VSSerializablePrefs();
+ serializedPrefs.deserialize(this, objectInputStream);
+
+ // Copy non-string values from serialized prefs
+ for (String key : serializedPrefs.getIntegerKeySet()) {
+ if (!key.startsWith("lang.")) {
+ prefs.initInteger(key, serializedPrefs.getInteger(key));
+ }
+ }
+ for (String key : serializedPrefs.getBooleanKeySet()) {
+ if (!key.startsWith("lang.")) {
+ prefs.initBoolean(key, serializedPrefs.getBoolean(key));
+ }
+ }
+ for (String key : serializedPrefs.getFloatKeySet()) {
+ if (!key.startsWith("lang.")) {
+ prefs.initFloat(key, serializedPrefs.getFloat(key));
+ }
+ }
+ for (String key : serializedPrefs.getColorKeySet()) {
+ if (!key.startsWith("lang.")) {
+ prefs.initColor(key, serializedPrefs.getColor(key));
+ }
+ }
+ for (String key : serializedPrefs.getVectorKeySet()) {
+ if (!key.startsWith("lang.")) {
+ prefs.initVector(key, serializedPrefs.getVector(key));
+ }
+ }
+ for (String key : serializedPrefs.getLongKeySet()) {
+ if (!key.startsWith("lang.")) {
+ prefs.initLong(key, serializedPrefs.getLong(key));
+ }
+ }
this.setObject("prefs", prefs);
simulator = new VSSimulator(prefs, simulatorFrame);
simulatorFrame.addSimulator(simulator);
+
+ // Store the current prefs in the serialize object for use during deserialization
+ this.setObject("current_prefs", prefs);
simulator.deserialize(this, objectInputStream);
} catch (Exception e) {