[Pkg-mozext-commits] [firetray] 211/399: add ui preference functionality for new-mail themed icon

David Prévot taffit at alioth.debian.org
Tue Oct 29 18:23:45 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 2e65e07029fcc69ba9772f1ea1ad33b65692698e
Author: foudfou <foudil.newbie+git at gmail.com>
Date:   Tue Mar 13 16:10:23 2012 +0100

    add ui preference functionality for new-mail themed icon
    
    NOTES:
    * we need to find out why for ex. ["glade", "mail-message-new"] gives
      "mail-message-new" where "glade" is expected (first in the list).
    * we need to handle defaults better (avoid things like
      newMailIconNames.push("mail-unread")).
    * be consistent in preference UI when disabling (or not) the filename inputs
      along with their related radio button.
---
 src/chrome/content/options.js                      |   50 +++++++++++++-------
 src/chrome/content/options.xul                     |   22 +++++----
 src/chrome/locale/en-US/options.dtd                |    2 +-
 .../icons/gnome/22x22/actions/mail-message-new.png |    1 -
 .../linux/icons/gnome/22x22/status/mail-unread.png |    1 +
 src/chrome/skin/mail-message-new.png               |  Bin 1146 -> 0 bytes
 src/chrome/skin/mail-unread.png                    |  Bin 0 -> 1100 bytes
 src/defaults/preferences/prefs.js                  |    3 +-
 src/modules/FiretrayHandler.jsm                    |    2 +
 src/modules/linux/FiretrayStatusIcon.jsm           |    6 ++-
 10 files changed, 57 insertions(+), 30 deletions(-)

diff --git a/src/chrome/content/options.js b/src/chrome/content/options.js
index 06c2511..8ba26a2 100644
--- a/src/chrome/content/options.js
+++ b/src/chrome/content/options.js
@@ -30,7 +30,8 @@ var firetrayUIOptions = {
     this.updateWindowAndIconOptions();
     this.updateScrollOptions();
     this.initAppIconType();
-    this.initIconNames();
+    this.initAppIconNames();
+    this.initNewMailIconNames();
   },
 
   onQuit: function(e) {
@@ -60,8 +61,9 @@ var firetrayUIOptions = {
 
   disableGroup: function(group, disableval) {
     try {
-      for (let i=0, len=group.childNodes.length; i<len ; ++i)
-        group.childNodes[i].disabled = disableval;
+      let children = group.childNodes;
+      for (let i=0, len=children.length; i<len ; ++i)
+        children[i].disabled = disableval;
     } catch(e) {}
   },
 
@@ -85,33 +87,49 @@ var firetrayUIOptions = {
       FIRETRAY_APPLICATION_ICON_TYPE_CUSTOM;
     document.getElementById("ui_app_icon_type").selectedIndex =
       firetray.Utils.prefService.getIntPref("app_icon_type");
-   },
+  },
+
+  initAppIconNames: function() {
+    this.initIconNames(firetray.StatusIcon.prefAppIconNames,
+      "app_icon_type_themed_name", firetray.Handler.appNameOriginal.toLowerCase());
+  },
+  initNewMailIconNames: function() {
+    this.initIconNames("new_mail_icon_names",
+      "radio_mail_notification_newmail_icon_name", "mail-unread");
+  },
 
-  initIconNames: function() {
-    let appIconNames = firetray.Utils.getArrayPref(firetray.StatusIcon.prefAppIconNames);
+  initIconNames: function(prefIconNames, uiIconNameId, defaultIconName) {
+    let appIconNames = firetray.Utils.getArrayPref(prefIconNames);
     LOG("appIconNames="+appIconNames);
     let len = appIconNames.length;
     if (len>2)
       throw new RangeError("Too many icon names");
     for (let i=0; i<len; ++i) {
-      let textbox = document.getElementById("app_icon_type_themed_name"+(i+1));
+      let textbox = document.getElementById(uiIconNameId+(i+1));
       textbox.value = appIconNames[i];
     }
-    let textbox = document.getElementById("app_icon_type_themed_name3");
-    textbox.value = firetray.Handler.appNameOriginal.toLowerCase();
+    let textbox = document.getElementById(uiIconNameId+3);
+    textbox.value = defaultIconName;
   },
 
-  updateIconNames: function(textbox) {
-    let appIconNames = [];
+  updateAppIconNames: function(textbox) {
+    this.updateIconNames(firetray.StatusIcon.prefAppIconNames, "app_icon_type_themed_name");
+  },
+  updateNewMailIconNames: function(textbox) {
+    this.updateIconNames("new_mail_icon_names", "radio_mail_notification_newmail_icon_name");
+  },
+
+  updateIconNames: function(prefIconNames, uiIconNameId) {
+    let iconNames = [];
     for (let i=1; i<3; ++i) {
-      let tb = document.getElementById("app_icon_type_themed_name"+i);
-      let val = tb.value.trim();
+      let textbox = document.getElementById(uiIconNameId+i);
+      let val = textbox.value.trim();
       LOG("val="+val);
       if (val)
-        appIconNames.push(val);
+        iconNames.push(val);
     }
-    LOG("appIconNames="+appIconNames);
-    firetray.Utils.setArrayPref(firetray.StatusIcon.prefAppIconNames, appIconNames);
+    LOG("iconNames="+iconNames);
+    firetray.Utils.setArrayPref(prefIconNames, iconNames);
   },
 
   initMailControls: function() {
diff --git a/src/chrome/content/options.xul b/src/chrome/content/options.xul
index 60f4272..da14b1c 100644
--- a/src/chrome/content/options.xul
+++ b/src/chrome/content/options.xul
@@ -82,11 +82,11 @@
                   <radio id="ui_app_icon_type_themed" label="&app_icon_themed.label;"
                          accesskey="&app_icon_themed.accesskey;" tooltiptext="&app_icon_themed.tooltip;" />
                   <textbox id="app_icon_type_themed_name1" size="12" placeholder="&app_icon_themed_name;"
-                           onchange="firetrayUIOptions.updateIconNames(this);" flex="1" />
+                           onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1" />
                   <textbox id="app_icon_type_themed_name2" size="12" placeholder="&app_icon_themed_name;"
-                           onchange="firetrayUIOptions.updateIconNames(this);" flex="1" />
+                           onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1" />
                   <textbox id="app_icon_type_themed_name3" size="12" placeholder="&app_icon_themed_name;"
-                           onchange="firetrayUIOptions.updateIconNames(this);" flex="1"
+                           onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1"
                            disabled="true"/>
                 </hbox>
                 <hbox>
@@ -167,16 +167,18 @@
                        accesskey="&mail_notification_newmail_icon.accesskey;"
                        oncommand="firetrayUIOptions.updateNotificationSettings()"
                        observes="broadcaster-notification-disabled" />
-                <!-- TODO -->
                 <textbox id="radio_mail_notification_newmail_icon_name1" size="12"
-                         placeholder="&app_icon_themed_name;" onchange="" flex="1"
-                         observes="broadcaster-notification-disabled" />
+                         placeholder="&app_icon_themed_name;" flex="1"
+                         observes="broadcaster-notification-disabled"
+                         onchange="firetrayUIOptions.updateNewMailIconNames(this);" />
                 <textbox id="radio_mail_notification_newmail_icon_name2" size="12"
-                         placeholder="&app_icon_themed_name;" onchange="" flex="1"
-                         observes="broadcaster-notification-disabled" />
+                         placeholder="&app_icon_themed_name;" flex="1"
+                         observes="broadcaster-notification-disabled"
+                         onchange="firetrayUIOptions.updateNewMailIconNames(this);" />
                 <textbox id="radio_mail_notification_newmail_icon_name3" size="12"
-                         placeholder="&app_icon_themed_name;" onchange="" flex="1"
-                         observes="broadcaster-notification-disabled" />
+                         placeholder="&app_icon_themed_name;" flex="1"
+                         onchange="firetrayUIOptions.updateNewMailIconNames(this);"
+                         disabled="true"/>
               </hbox>
               <hbox>
                 <radio id="ui_radio_mail_notification_custom_mail_icon" label="&mail_notification_custom_mail_icon.label;"
diff --git a/src/chrome/locale/en-US/options.dtd b/src/chrome/locale/en-US/options.dtd
index 5e5d905..b66c15d 100644
--- a/src/chrome/locale/en-US/options.dtd
+++ b/src/chrome/locale/en-US/options.dtd
@@ -23,7 +23,7 @@
 
 <!ENTITY bool_show_icon_on_hide.label "Show tray icon only if a window is hidden">
 <!ENTITY bool_show_icon_on_hide.accesskey "w">
-<!ENTITY app_icon_type "Application icon">
+<!ENTITY app_icon_type "Application icon type">
 <!ENTITY app_icon_themed.label "Default themed">
 <!ENTITY app_icon_themed.accesskey "D">
 <!ENTITY app_icon_themed_name "icon-name">
diff --git a/src/chrome/skin/linux/icons/gnome/22x22/actions/mail-message-new.png b/src/chrome/skin/linux/icons/gnome/22x22/actions/mail-message-new.png
deleted file mode 120000
index e40a113..0000000
--- a/src/chrome/skin/linux/icons/gnome/22x22/actions/mail-message-new.png
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../mail-message-new.png
\ No newline at end of file
diff --git a/src/chrome/skin/linux/icons/gnome/22x22/status/mail-unread.png b/src/chrome/skin/linux/icons/gnome/22x22/status/mail-unread.png
new file mode 120000
index 0000000..0e4ffc3
--- /dev/null
+++ b/src/chrome/skin/linux/icons/gnome/22x22/status/mail-unread.png
@@ -0,0 +1 @@
+../../../../../mail-unread.png
\ No newline at end of file
diff --git a/src/chrome/skin/mail-message-new.png b/src/chrome/skin/mail-message-new.png
deleted file mode 100644
index 2d9caca..0000000
Binary files a/src/chrome/skin/mail-message-new.png and /dev/null differ
diff --git a/src/chrome/skin/mail-unread.png b/src/chrome/skin/mail-unread.png
new file mode 100644
index 0000000..b877d3a
Binary files /dev/null and b/src/chrome/skin/mail-unread.png differ
diff --git a/src/defaults/preferences/prefs.js b/src/defaults/preferences/prefs.js
index 67e6907..17e2bff 100644
--- a/src/defaults/preferences/prefs.js
+++ b/src/defaults/preferences/prefs.js
@@ -14,10 +14,11 @@ pref("extensions.firetray.start_hidden", false);
 pref("extensions.firetray.show_activates", false);
 
 pref("extensions.firetray.app_icon_type", 0);
-pref("extensions.firetray.app_browser_icon_names", '[]');
+pref("extensions.firetray.app_browser_icon_names", '["web-browser", "internet-web-browser"]');
 pref("extensions.firetray.app_mail_icon_names", '["indicator-messages", "applications-email-panel"]');
 pref("extensions.firetray.app_default_icon_names", '[]');
 pref("extensions.firetray.app_icon_filename", "");
+pref("extensions.firetray.new_mail_icon_names", '["indicator-messages-new", "mail-message-new"]');
 pref("extensions.firetray.show_icon_on_hide", false);
 pref("extensions.firetray.scroll_hides", true);
 pref("extensions.firetray.scroll_mode", "down_hides");
diff --git a/src/modules/FiretrayHandler.jsm b/src/modules/FiretrayHandler.jsm
index 42b633f..7812ed0 100644
--- a/src/modules/FiretrayHandler.jsm
+++ b/src/modules/FiretrayHandler.jsm
@@ -367,6 +367,8 @@ firetray.PrefListener = new PrefListener(
     case 'show_icon_on_hide':
       firetray.Handler.showHideIcon();
       break;
+    case 'new_mail_icon_names':
+      firetray.StatusIcon.loadThemedIcons();
     case 'message_count_type':
       firetray.Messaging.updateMsgCount();
       break;
diff --git a/src/modules/linux/FiretrayStatusIcon.jsm b/src/modules/linux/FiretrayStatusIcon.jsm
index fd601a4..78e135e 100644
--- a/src/modules/linux/FiretrayStatusIcon.jsm
+++ b/src/modules/linux/FiretrayStatusIcon.jsm
@@ -70,8 +70,11 @@ firetray.StatusIcon = {
 
   loadThemedIcons: function() {
     if (firetray.Handler.inMailApp) {
+      let newMailIconNames = firetray.Utils.getArrayPref("new_mail_icon_names");
+      newMailIconNames.push("mail-unread"); // SMELL
+      this.themedIconNewMail = this.initThemedIcon(newMailIconNames);
+
       this.prefAppIconNames = "app_mail_icon_names";
-      this.themedIconNewMail = this.initThemedIcon(["indicator-messages-new", "mail-message-new"]); // TODO
     } else if (firetray.Handler.inBrowserApp) {
       this.prefAppIconNames = "app_browser_icon_names";
     } else {
@@ -84,6 +87,7 @@ firetray.StatusIcon = {
 
   initThemedIcon: function(names) {
     if (!isArray(names)) throw new TypeError();
+    LOG("themedIconNames="+names);
     let namesLen = names.length;
     LOG("themedIconNamesLen="+namesLen);
     let themedIconNames = ctypes.char.ptr.array(namesLen)();

-- 
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