remove any global prefs the add-on sets, remove another obsolete function, fix missin...
[mandelbrot.git] / content / mandelbrot.js
index c1f3e5461d33a834be720e733ca6fca82032dd25..7d77b1236609b83625fdb1d407e1f46cf884d988 100644 (file)
@@ -43,6 +43,7 @@ var gColorPalette = [];
 var gStartTime = 0;
 var gMbrotBundle;
 var gCurrentImageData;
+var gLastImageData;
 
 function Startup() {
   gMbrotBundle = document.getElementById("mbrotBundle");
@@ -193,6 +194,10 @@ function drawImage() {
 
   document.getElementById("statusLabel").value = gMbrotBundle.getString("statusDrawing");
 
+  if (gCurrentImageData) {
+    gLastImageData = gCurrentImageData;
+  }
+
   let Cr_vals = getAdjustPref("last_image.Cr_*");
   let Cr_min = Cr_vals.Cr_min;
   let Cr_max = Cr_vals.Cr_max;
@@ -204,6 +209,10 @@ function drawImage() {
   let iterMax = getAdjustPref("iteration_max");
   let algorithm = getAdjustPref("use_algorithm");
 
+  let currentPalette = getAdjustPref("color_palette");
+  if (!gColorPalette || !gColorPalette.length)
+    gColorPalette = getColorPalette(currentPalette);
+
   let iWidth = getAdjustPref("image.width");
   let iHeight = getAdjustPref("image.height");
 
@@ -538,18 +547,11 @@ function saveImage() {
   }
 }
 
-function exitMandelbrot() {
-  var appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
-                          .getService(Components.interfaces.nsIXULAppInfo);
-  if (appInfo.ID == "mandelbrot@kairo.at")
-    quitApp(false);
-  else
-    window.close();
-}
-
 function updateBookmarkMenu(aParent) {
   document.getElementById("bookmarkSave").disabled =
-    (!document.getElementById("drawButton").hidden || (gStartTime > 0));
+      (!document.getElementById("drawButton").hidden || (gStartTime > 0));
+
+  document.getElementById("bookmarkBack").disabled = !gLastImageData;
 
   while (aParent.hasChildNodes() &&
          aParent.lastChild.id != "bookmarkSeparator")
@@ -586,6 +588,16 @@ function updateBookmarkMenu(aParent) {
   na.setAttribute("disabled", "true");
 }
 
+function goBack () {
+  if (gLastImageData) {
+    Services.prefs.setIntPref("mandelbrot.iteration_max",
+                              gLastImageData.iterMax);
+    // use gLastImageData.iWidth, gLastImageData.iHeight ???
+    adjustCoordsAndDraw(gLastImageData.C_min, gLastImageData.C_max);
+    gLastImageData = undefined;
+  }
+}
+
 function callBookmark(evtarget) {
   if (evtarget.id == "bookmarkSave" || evtarget.id == "bookmarkSeparator")
     return;