[Pkg-mozext-commits] [firetray] 68/399: tree for options: cleaning + limit input to digits. WORK IN PROGRESS

David Prévot taffit at alioth.debian.org
Tue Oct 29 18:23:15 UTC 2013


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch dfsg-clean
in repository firetray.

commit 143ca92fc0e400a96086252bd4b109ce6e09896a
Author: foudfou <foudil.newbie+git at gmail.com>
Date:   Mon Oct 3 10:39:25 2011 +0200

    tree for options: cleaning + limit input to digits. WORK IN PROGRESS
---
 src/chrome/content/options.js     |  137 ++++++++-----------------------------
 src/chrome/content/options.xul    |   48 +++++--------
 src/defaults/preferences/prefs.js |    2 +-
 3 files changed, 48 insertions(+), 139 deletions(-)

diff --git a/src/chrome/content/options.js b/src/chrome/content/options.js
index a23c154..a5ba4b7 100644
--- a/src/chrome/content/options.js
+++ b/src/chrome/content/options.js
@@ -26,8 +26,6 @@ firetray.UIOptions = {
       this.hideElement("mail_tab");
     }
 
-    // setView();
-    // initView();
     populateTreeServerTypes();
   },
 
@@ -79,7 +77,7 @@ firetray.UIOptions = {
         (firetray.Messaging.getPrefAccountsExcluded().indexOf(accountServerKey) >= 0));
       let that = this;
       nodeAccount.addEventListener('command', function(e){
-        that.updateMailAccountsExcluded(that.accountBoxId);});
+        that.updateMailAccountsExcluded(that.accountBoxId);}, true);
       targetNode.appendChild(nodeAccount);
     }
 
@@ -113,86 +111,8 @@ firetray.UIOptions = {
 
 };
 
-// input.onkeypress = function(evt) {
-//     evt = evt || window.event;
-//     var charCode = evt.which || evt.keyCode;
-//     var charStr = String.fromCharCode(charCode);
-//     if (/\d/.test(charStr)) {
-//         return false;
-//     }
-// };
-
 /*
-var treeView = {
-  model : {},
-  treeBox: null,
-  get rowCount(){return this.model.length;},
-  getCellText : function(row,column) { return this.model[row][column.id]; },
-  setTree: function(treeBox){ this.treeBox = treeBox; },
-  isContainer: function(row){ return false; },
-  isEditable: function(idx, column)  { return true; },
-  isSeparator: function(row){ return false; },
-  isSorted: function(){ return false; },
-  getLevel: function(row){ return 0; },
-  getImageSrc: function(row,col){ return null; },
-  getRowProperties: function(row,props){},
-  getCellProperties: function(row,col,props){},
-  getColumnProperties: function(colid,col,props){},
-  setCellText: function (row, col, val){this.model[row][col.id] = val;}
-};
-
-function setView(){
-  try {
-    var str = firetray.Utils.prefService.getCharPref("jsondata");
-    treeView.model = JSON.parse(str);
-  } catch (err) {
-    treeView.model = [];
-  }
-  LOG("setView " + treeView.model.length);
-  document.getElementById('optTree').view = treeView;
-}
-
-function deleteSelection(){
-  var t = document.getElementById('optTree');
-  treeView.model.splice(t.currentIndex, 1);
-  treeView.treeBox.rowCountChanged(t.currentIndex, -1);
-}
-
-function addItem(){
-  treeView.model[treeView.model.length] =  {name:"new label", regex:"new regex", subs:"new subs"};
-  treeView.treeBox.rowCountChanged(treeView.model.length-1, 1);
-}
-
-function saveList(){
-  let str = JSON.stringify(treeView.model);
-  LOG(str);
-  // firetray.Utils.prefService.setCharPref("jsondata", str);
-  return str;
-}
-
-// window.addEventListener('unload', saveList, false);
-*/
-
-/*
-function initView() {
-  let tree = document.getElementById("optTree");
-
-  var oldView = tree.view;
-  var newView = {
-    __proto__: oldView,
-    setCellText: function(row, col, value) {
-      oldView.setCellText(row, col, value);
-      LOG("Text changed for a tree cell!");
-      document.getElementById("pane1").userChangedValue(tree);
-    }
-  };
-  tree.view = newView;
-  LOG("initView");
-}
-*/
-
-/*
- * Save the Schedules List to the "extensions.hpsched.schedules" preference.
+ * Save SERVER_TYPES to the "server_types" preference.
  * This is called by the pref's system when the GUI element is altered.
  */
 function saveTreeServerTypes() {
@@ -224,30 +144,14 @@ function saveTreeServerTypes() {
   return prefStr;
 }
 
-function addItem() {
-  let targetTree = document.getElementById("ui_server_types");
-
-  let item = document.createElement('treeitem');
-  let row = document.createElement('treerow');
-  item.appendChild(row);
-
-  let cell = document.createElement('treecell');
-  row.appendChild(cell);
-  cell = document.createElement('treecell');
-  row.appendChild(cell);
-  cell = document.createElement('treecell');
-  row.appendChild(cell);
-
-  targetTree.appendChild(item);
-}
-
 function populateTreeServerTypes() {
   let prefPane = document.getElementById("pane1");
 
   let prefStr = firetray.Utils.prefService.getCharPref("server_types");
+  LOG("PREF="+prefStr);
   let prefObj = JSON.parse(prefStr);
 
-  let targetTree = document.getElementById("ui_server_types");
+  let target = document.getElementById("ui_server_types");
   for (serverTypeName in prefObj) {
     let name = prefObj[serverTypeName];
 
@@ -265,12 +169,18 @@ function populateTreeServerTypes() {
         if (event.attrName == "value") LOG("value changed!");
         document.getElementById("pane1")
           .userChangedValue(document.getElementById("ui_tree_server_types"));
-     });
+     }, true);
     row.appendChild(cell);
 
     // server_type_name
     cell = document.createElement('treecell');
     cell.setAttribute('label',serverTypeName);
+    cell.setAttribute('editable',false);
+    row.appendChild(cell);
+
+    // server_type_order
+    cell = document.createElement('treecell');
+    cell.setAttribute('label',prefObj[serverTypeName].order);
     // FIXME: refactor !!
     cell.addEventListener(
       'DOMAttrModified', function(event) {
@@ -278,14 +188,27 @@ function populateTreeServerTypes() {
         if (event.attrName == "value") LOG("value changed!");
         document.getElementById("pane1")
           .userChangedValue(document.getElementById("ui_tree_server_types"));
-     });
+      }, true);
     row.appendChild(cell);
 
-    // server_type_order
-    cell = document.createElement('treecell');
-    cell.setAttribute('label',prefObj[serverTypeName].order);
-    row.appendChild(cell);
+    target.appendChild(item);
+  }
 
-    targetTree.appendChild(item);
+  let tree = document.getElementById("ui_tree_server_types");
+  tree.addEventListener("keypress", onKeyPressTreeServerTypes, true);
+}
+
+function onKeyPressTreeServerTypes(event) {
+  LOG("TREE KEYPRESS: "+event.originalTarget);
+  let tree = document.getElementById("ui_tree_server_types");
+  let col = tree.editingColumn; // col.index
+
+  // only int allowed
+  if (col == tree.columns.getNamedColumn("server_type_order")) {
+    let charCode = event.which || event.keyCode;
+    let charStr = String.fromCharCode(charCode);
+    if (!/\d/.test(charStr))
+      event.preventDefault();
   }
 }
+
diff --git a/src/chrome/content/options.xul b/src/chrome/content/options.xul
index 155f08a..e80bdfe 100644
--- a/src/chrome/content/options.xul
+++ b/src/chrome/content/options.xul
@@ -29,9 +29,20 @@
 
         <tabpanel id="general_tabpanel">          
 
+          <groupbox>
+            <checkbox id="ui_close_hides" preference="pref_bool_close_hides"
+                      label="&bool_close_hides.label;"
+                      accesskey="&bool_close_hides.accesskey;"/>
+          </groupbox>
+
+        </tabpanel>
+
+        <tabpanel id="input_tabpanel">
+        </tabpanel>
+
+        <tabpanel id="mail_tabpanel">
+
       <vbox align="center" >
-        <button label="Add" oncommand="addItem();"/>
-        <button label="Delete" oncommand="deleteSelection();"/>
       <separator class="thin"  />
       <tree id="ui_tree_server_types" height="200" width="500" flex="1"
             seltype="single" editable="true"
@@ -40,15 +51,11 @@
             onsynctopreference="return saveTreeServerTypes();">
         <treecols>
           <treecol id="server_type_excluded" type="checkbox" editable="true"
-                   label="Excluded" primary="true" flex="1" />
-          <treecol id="server_type_name" label="Type" flex="1"
-                   primary="true" tooltiptext="HI"/>
+                   label="Excluded" primary="true" width="40" flex="1" />
+          <treecol id="server_type_name" label="Type" editable="false" flex="1"
+                   primary="true" tooltiptext="FIXME"/>
           <treecol id="server_type_order" label="Order" editable="true"
                    flex="1" hidden= "true" />
-          <!-- <treecol id="name" label="Name" primary="true" flex="1" -->
-          <!--          persist="width ordinal hidden" width="50"/> -->
-          <!-- <treecol id="regex" label="Regex" width="100" flex="1"/> -->
-          <!-- <treecol id="subs" label="Subs" width="300" flex="1"/> -->
         </treecols>
         <treechildren id="ui_server_types" />
       </tree>
@@ -56,19 +63,6 @@
       <label value="To edit a item doubleclick on it" />
       </vbox>
 
-          <groupbox>
-            <checkbox id="ui_close_hides" preference="pref_bool_close_hides"
-                      label="&bool_close_hides.label;"
-                      accesskey="&bool_close_hides.accesskey;"/>
-          </groupbox>
-
-        </tabpanel>
-        
-        <tabpanel id="input_tabpanel">
-        </tabpanel>
-        
-        <tabpanel id="mail_tabpanel">
-
           <groupbox id="ui_mail_account_types_exclude">
             <caption label="&mail_account_types_exclude;" tooltiptext="HI" />
 
@@ -81,15 +75,7 @@
                          hidden= "true" />
               </treecols>
 
-              <treechildren id="ui_mail_account_types">
-                <!-- <treeitem> -->
-                <!--   <treerow> -->
-                <!--     <treecell label="Alice"/> -->
-                <!--     <treecell value="true"/> -->
-                <!--     <treecell label="1"/> -->
-                <!--   </treerow> -->
-                <!-- </treeitem> -->
-              </treechildren>
+              <treechildren id="ui_mail_account_types" />
             </tree>
           </groupbox>
 
diff --git a/src/defaults/preferences/prefs.js b/src/defaults/preferences/prefs.js
index 9ee1254..5fb4125 100644
--- a/src/defaults/preferences/prefs.js
+++ b/src/defaults/preferences/prefs.js
@@ -7,4 +7,4 @@ pref("browser.tabs.warnOnClose", false);
 // Extension prefs
 pref("extensions.firetray.close_hides", true);
 pref("extensions.firetray.accounts_to_exclude", "[]"); // JSON
-pref("extensions.firetray.jsondata", "{}"); // JSON
+pref("extensions.firetray.server_types", '{"pop3":{"order":1,"excluded":false}, "imap":{"order":1,"excluded":false}, "movemail":{"order":2,"excluded":true}, "none":{"order":3,"excluded":false}, "rss":{"order":4,"excluded":true}, "nntp":{"order":5,"excluded":true} }'); // JSON

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firetray.git



More information about the Pkg-mozext-commits mailing list