JAL-4281 store/restore ID width and manual adjustment flag in Jalview projects
[jalview.git] / src / jalview / project / Jalview2XML.java
index 339a609..0313c8f 100644 (file)
@@ -1598,6 +1598,9 @@ public class Jalview2XML
       view.setShowColourText(av.getColourText());
       view.setShowFullId(av.getShowJVSuffix());
       view.setRightAlignIds(av.isRightAlignIds());
+      view.setIdWidth(av.getIdWidth());
+      view.setIdWidthManuallyAdjusted(ap.getIdPanel().getIdCanvas().isManuallyAdjusted());
+      
       view.setShowSequenceFeatures(av.isShowSequenceFeatures());
       view.setShowText(av.getShowText());
       view.setShowUnconserved(av.getShowUnconserved());
@@ -5111,7 +5114,21 @@ public class Jalview2XML
     }
     af.setBounds(safeInt(view.getXpos()), safeInt(view.getYpos()),
             safeInt(view.getWidth()), safeInt(view.getHeight()));
+    
     af.alignPanel.fontChanged(); // make sure font is updated *before* we set ID width
+    if (view.getIdWidth()==null)
+    {
+      if (!isVersionStringLaterThan("2.11.3", jm.getVersion())) {
+        // Pre 2.11.3 jalview projects do not store the id width
+        // idWidth was also calculated in a different way.
+        viewport.setIdWidth(af.alignPanel.getLegacyIdWidth());
+        af.alignPanel.getIdPanel().getIdCanvas().setManuallyAdjusted(true);
+      }
+    } else {
+      viewport.setIdWidth(view.getIdWidth());
+      af.alignPanel.getIdPanel().getIdCanvas().setManuallyAdjusted(view.isIdWidthManuallyAdjusted());
+    }
+    
     // startSeq set in af.alignPanel.updateLayout below
     af.alignPanel.updateLayout();
     ColourSchemeI cs = null;