changeset 70:e7090c3ef207

persist the source ID
author Myk Melez <myk@mozilla.org>
date Tue, 13 May 2008 18:25:31 -0700
parents e6c3b67e38ff
children ef0473874aa5
files extension/content/river.js
diffstat 1 files changed, 26 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/extension/content/river.js	Tue May 13 16:03:33 2008 -0700
+++ b/extension/content/river.js	Tue May 13 18:25:31 2008 -0700
@@ -109,11 +109,11 @@
 
     this._collection = new SnowlCollection(null, null, true);
 
+    this.rebuildSourceMenu();
+
     this._updateToolbar();
 
     this.writeContent();
-
-    this.rebuildSourceMenu();
   },
 
   uninit: function SH_uninit() {
@@ -138,10 +138,24 @@
       this._collection.read = false;
       document.getElementById("unreadButton").checked = true;
     }
+
     if ("filter" in this._params) {
       this._collection.filter = this._params.filter;
       document.getElementById("filterTextbox").value = this._params.filter;
     }
+
+    if ("sourceID" in this._params) {
+      this._collection.sourceID = this._params.sourceID;
+      let menu = document.getElementById("sourceMenu");
+      let item;
+      for (let i = 0; item = menu.getItemAtIndex(i); i++) {
+        if (item.value == this._params.sourceID) {
+          menu.selectedItem = item;
+          break;
+        }
+      }
+    }
+
   },
 
   onCommandUnreadButton: function(aEvent, aButton) {
@@ -167,6 +181,13 @@
     this._updateURI();
   },
 
+  onCommandSourceMenu: function(aEvent) {
+    let sourceMenu = document.getElementById("sourceMenu");
+    this._collection.sourceID = sourceMenu.selectedItem.value;
+    this.rebuildView();
+    this._updateURI();
+  },
+
   _updateURI: function() {
     let params = [];
 
@@ -176,6 +197,9 @@
     if (this._collection.filter)
       params.push("filter=" + encodeURIComponent(this._collection.filter));
 
+    if (this._collection.sourceID)
+      params.push("sourceID=" + encodeURIComponent(this._collection.sourceID));
+
     let query = params.length > 0 ? "?" + params.join("&") : "";
     let spec = "chrome://snowl/content/river.xhtml" + query;
     let uri = Cc["@mozilla.org/network/io-service;1"].
@@ -742,12 +766,6 @@
       sourceMenu.appendItem(source.title, source.id);
 
     sourceMenu.selectedIndex = 0;
-  },
-
-  onCommandSourceMenu: function(aEvent) {
-    let sourceMenu = document.getElementById("sourceMenu");
-    this._collection.sourceID = sourceMenu.selectedItem.value;
-    this.rebuildView();
   }
 };