[Pkg-mozext-commits] [firetray] 303/399: * convert tabbox/tabpanels to prefpanes (preference UI) (thx Tango for icons!) * change order of menu items for mail apps * fix hide chat prefs when non-chat app

David Prévot taffit at alioth.debian.org
Tue Oct 29 18:24:03 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 194894afd4dee7759a5f5ada23f497464990cc80
Author: foudfou <foudil.newbie+git at gmail.com>
Date:   Thu Sep 6 19:07:22 2012 +0200

    * convert tabbox/tabpanels to prefpanes (preference UI) (thx Tango for icons!)
    * change order of menu items for mail apps
    * fix hide chat prefs when non-chat app
---
 README.md                               |    2 +-
 src/chrome/content/options.js           |   20 +-
 src/chrome/content/options.xul          |  525 ++++++++++++++++---------------
 src/modules/FiretrayHandler.jsm         |    2 +-
 src/modules/FiretrayMessaging.jsm       |   10 +-
 src/modules/commons.js                  |    3 +
 src/modules/linux/FiretrayPopupMenu.jsm |   10 +-
 7 files changed, 296 insertions(+), 276 deletions(-)

diff --git a/README.md b/README.md
index 400f9b4..fe9e1d6 100644
--- a/README.md
+++ b/README.md
@@ -89,4 +89,4 @@ Acknowledgment
   [Nils Maier](https://addons.mozilla.org/fr/firefox/addon/minimizetotray-revived/
   "MinToTrayR addon page").
 * kind support from Neil Deaking, Bobby Holley
-* default icons borrowed from Mozilla and Pidgin
+* default icons borrowed from Mozilla, Pidgin, Tango Desktop Project
diff --git a/src/chrome/content/options.js b/src/chrome/content/options.js
index 109371c..3fe06d7 100644
--- a/src/chrome/content/options.js
+++ b/src/chrome/content/options.js
@@ -5,7 +5,6 @@ const Ci = Components.interfaces;
 const Cu = Components.utils;
 
 Cu.import("resource://firetray/FiretrayHandler.jsm");
-Cu.import("resource://firetray/FiretrayChat.jsm");
 Cu.import("resource://firetray/commons.js");
 
 const TREEROW_ACCOUNT_OR_SERVER_TYPE_NAME     = 0;
@@ -14,6 +13,8 @@ const TREEROW_ACCOUNT_OR_SERVER_TYPE_ORDER    = 2;
 const TREELEVEL_SERVER_TYPES      = 0;
 const TREELEVEL_EXCLUDED_ACCOUNTS = 1;
 
+const PREF_DEFAULT_PANE = "pref-pane-windows";
+
 
 let log = firetray.Logging.getLogger("firetray.UIOptions");
 
@@ -28,10 +29,14 @@ var firetrayUIOptions = {
       Cu.import("resource://firetray/FiretrayMessaging.jsm");
       this.initMailControls();
     } else {
-      let mailTab = document.getElementById("mail_tab");
-      this.hideElement(mailTab, true);
+      this.hidePrefPane("pref-pane-mail");
     }
 
+    if (firetray.Handler.appHasChat)
+      Cu.import("resource://firetray/FiretrayChat.jsm");
+    else
+      this.hidePrefPane("pref-pane-chat");
+
     this.updateWindowAndIconOptions();
     this.updateScrollOptions();
     this.initAppIconType();
@@ -61,6 +66,15 @@ var firetrayUIOptions = {
     }
   },
 
+  hidePrefPane: function(name){
+    if (!this._prefwindow)
+      this._prefwindow = document.getElementById("firetray-preferences");
+    let radio = document.getAnonymousElementByAttribute(this._prefwindow, "pane", name);
+    if (radio.selected)
+      prefwindow.showPane(document.getElementById(PREF_DEFAULT_PANE));
+    radio.hidden = true;
+  },
+
   hideElement: function(targetNode, hiddenval) {
     targetNode.hidden = hiddenval;
   },
diff --git a/src/chrome/content/options.xul b/src/chrome/content/options.xul
index 8df8230..8caab65 100644
--- a/src/chrome/content/options.xul
+++ b/src/chrome/content/options.xul
@@ -16,7 +16,8 @@
     <broadcaster id="broadcaster-notification-disabled" disabled="false" />
   </broadcasterset>
 
-  <prefpane id="pane1" label="&pane1.title;">
+  <prefpane id="pref-pane-windows" label="&windows_options;"
+            image="chrome://firetray/skin/pref-windows.svg">
 
     <preferences>
       <preference id="pref_hides_on_close" name="extensions.firetray.hides_on_close" type="bool"/>
@@ -25,11 +26,102 @@
       <preference id="pref_start_hidden" name="extensions.firetray.start_hidden" type="bool"/>
       <preference id="pref_show_activates" name="extensions.firetray.show_activates" type="bool"/>
       <preference id="pref_remember_desktop" name="extensions.firetray.remember_desktop" type="bool"/>
-      <preference id="pref_show_icon_on_hide" name="extensions.firetray.show_icon_on_hide" type="bool"/>
+    </preferences>
+
+    <vbox pack="start" align="left" flex="1">
+      <checkbox id="ui_hides_on_close" preference="pref_hides_on_close"
+                label="&hides_on_close.label;"
+                accesskey="&hides_on_close.accesskey;"
+                oncommand="firetrayUIOptions.updateWindowAndIconOptions();"/>
+      <checkbox id="ui_hides_on_minimize" preference="pref_hides_on_minimize"
+                label="&hides_on_minimize.label;"
+                accesskey="&hides_on_minimize.accesskey;"
+                oncommand="firetrayUIOptions.updateWindowAndIconOptions();"/>
+      <checkbox id="ui_hides_single_window" preference="pref_hides_single_window"
+                label="&hides_single_window.label;"
+                accesskey="&hides_single_window.accesskey;"
+                tooltiptext="&hides_single_window.tooltip;"/>
+      <checkbox id="ui_start_hidden" preference="pref_start_hidden"
+                label="&start_hidden.label;"
+                accesskey="&start_hidden.accesskey;"/>
+      <checkbox id="ui_show_activates" preference="pref_show_activates"
+                label="&show_activates.label;"
+                accesskey="&show_activates.accesskey;"
+                tooltiptext="&show_activates.tooltip;"/>
+      <checkbox id="ui_remember_desktop" preference="pref_remember_desktop"
+                label="&remember_desktop.label;"
+                accesskey="&remember_desktop.accesskey;"/>
+
+    </vbox>
+
+  </prefpane>
+
+  <prefpane id="pref-pane-icon" label="&icon_options;"
+            image="chrome://firetray/skin/pref-icon.svg">
+
+    <preferences>
       <preference id="pref_app_icon_type" name="extensions.firetray.app_icon_type" type="int"/>
       <preference id="pref_app_icon_filename" name="extensions.firetray.app_icon_filename" type="string"/>
+      <preference id="pref_show_icon_on_hide" name="extensions.firetray.show_icon_on_hide" type="bool"/>
       <preference id="pref_scroll_hides" name="extensions.firetray.scroll_hides" type="bool" />
       <preference id="pref_scroll_mode" name="extensions.firetray.scroll_mode" type="string" />
+    </preferences>
+
+    <vbox pack="start" align="left" flex="1">
+
+      <radiogroup id="ui_app_icon_type" preference="pref_app_icon_type"
+                  oncommand="firetrayUIOptions.disableIconTypeMaybe(this.selectedIndex);">
+        <vbox align="left" flex="1">
+          <label class="header">&app_icon_type;</label>
+
+          <hbox id="ui_app_icon_type_default_group">
+            <radio id="ui_app_icon_type_themed" label="&app_icon_themed.label;"
+                   accesskey="&app_icon_themed.accesskey;" tooltiptext="&icon_themed.tooltip;" />
+            <hbox id="app_icon_default" align="center" flex="1" >
+              <textbox id="app_icon_type_themed_name1" size="12" placeholder="&app_icon_themed_name;"
+                       onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1" />
+              <textbox id="app_icon_type_themed_name2" size="12" placeholder="&app_icon_themed_name;"
+                       onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1" />
+              <textbox id="app_icon_type_themed_name3" size="12" placeholder="&app_icon_themed_name;"
+                       onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1"
+                       disabled="true"/>
+            </hbox>
+          </hbox>
+          <hbox id="ui_app_icon_type_custom_group">
+            <radio id="ui_app_icon_type_custom" label="&app_icon_custom.label;"
+                   accesskey="&app_icon_custom.accesskey;" />
+            <hbox id="app_icon_custom" align="center" flex="1" >
+              <textbox id="app_icon_custom_filename" preference="pref_app_icon_filename" flex="1" />
+              <button id="app_icon_custom_select" label="&choose;"
+                      accesskey="&choose.accesskey;"
+                      oncommand="firetrayUIOptions.chooseAppIconFile()" />
+            </hbox>
+          </hbox>
+
+        </vbox>
+      </radiogroup>
+
+      <checkbox id="ui_show_icon_on_hide" preference="pref_show_icon_on_hide"
+                label="&show_icon_on_hide.label;"
+                accesskey="&show_icon_on_hide.accesskey;"/>
+
+      <checkbox id="ui_scroll_hides" preference="pref_scroll_hides"
+                label="&enable_mouse_scroll.label;"
+                accesskey="&enable_mouse_scroll.accesskey;"
+                oncommand="firetrayUIOptions.updateScrollOptions()" />
+      <radiogroup id="ui_radiogroup_scroll" preference="pref_scroll_mode">
+        <radio id="ui_radio_scroll_down_hides" label="&down;=&hide;, &up;=&restore;" value="down_hides" />
+        <radio id="ui_radio_scroll_up_hides" label="&up;=&hide;, &down;=&restore;" value="up_hides" />
+      </radiogroup>
+
+    </vbox>
+
+  </prefpane>
+
+  <prefpane id="pref-pane-mail" label="&mail_options;"
+            image="chrome://firetray/skin/pref-mail.svg">
+
+    <preferences>
       <preference id="pref_mail_notification_enabled" name="extensions.firetray.mail_notification_enabled" type="bool" />
       <preference id="pref_message_count_type" name="extensions.firetray.message_count_type" type="int" />
       <preference id="pref_icon_text_color" name="extensions.firetray.icon_text_color" type="string" />
@@ -38,277 +130,188 @@
       <preference id="pref_mail_accounts" name="extensions.firetray.mail_accounts" type="string"/>
       <preference id="pref_folder_count_recursive" name="extensions.firetray.folder_count_recursive" type="bool" />
       <preference id="pref_only_favorite_folders" name="extensions.firetray.only_favorite_folders" type="bool" />
-      <preference id="pref_chat_icon_enable" name="extensions.firetray.chat_icon_enable" type="bool" />
     </preferences>
 
-    <tabbox>
-      <tabs>
-        <tab label="&windows_options;"/>
-        <tab label="&icon_options;"/>
-        <tab label="&mail_options;" id="mail_tab" />
-        <tab label="&chat_options;" />
-      </tabs>
-      <tabpanels flex="1">
-
-        <tabpanel id="general_tabpanel" flex="1">
-          <vbox pack="start" align="left" flex="1">
-
-            <checkbox id="ui_hides_on_close" preference="pref_hides_on_close"
-                      label="&hides_on_close.label;"
-                      accesskey="&hides_on_close.accesskey;"
-                      oncommand="firetrayUIOptions.updateWindowAndIconOptions();"/>
-            <checkbox id="ui_hides_on_minimize" preference="pref_hides_on_minimize"
-                      label="&hides_on_minimize.label;"
-                      accesskey="&hides_on_minimize.accesskey;"
-                      oncommand="firetrayUIOptions.updateWindowAndIconOptions();"/>
-            <checkbox id="ui_hides_single_window" preference="pref_hides_single_window"
-                      label="&hides_single_window.label;"
-                      accesskey="&hides_single_window.accesskey;"
-                      tooltiptext="&hides_single_window.tooltip;"/>
-            <checkbox id="ui_start_hidden" preference="pref_start_hidden"
-                      label="&start_hidden.label;"
-                      accesskey="&start_hidden.accesskey;"/>
-            <checkbox id="ui_show_activates" preference="pref_show_activates"
-                      label="&show_activates.label;"
-                      accesskey="&show_activates.accesskey;"
-                      tooltiptext="&show_activates.tooltip;"/>
-            <checkbox id="ui_remember_desktop" preference="pref_remember_desktop"
-                      label="&remember_desktop.label;"
-                      accesskey="&remember_desktop.accesskey;"/>
-
-          </vbox>
-        </tabpanel>
-
-
-        <tabpanel id="icon_tabpanel" flex="1">
-          <vbox pack="start" align="left" flex="1">
-
-            <radiogroup id="ui_app_icon_type" preference="pref_app_icon_type"
-                        oncommand="firetrayUIOptions.disableIconTypeMaybe(this.selectedIndex);">
-              <vbox align="left" flex="1">
-                <label class="header">&app_icon_type;</label>
-
-                <hbox id="ui_app_icon_type_default_group">
-                  <radio id="ui_app_icon_type_themed" label="&app_icon_themed.label;"
-                         accesskey="&app_icon_themed.accesskey;" tooltiptext="&icon_themed.tooltip;" />
-                  <hbox id="app_icon_default" align="center" flex="1" >
-                    <textbox id="app_icon_type_themed_name1" size="12" placeholder="&app_icon_themed_name;"
-                             onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1" />
-                    <textbox id="app_icon_type_themed_name2" size="12" placeholder="&app_icon_themed_name;"
-                             onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1" />
-                    <textbox id="app_icon_type_themed_name3" size="12" placeholder="&app_icon_themed_name;"
-                             onchange="firetrayUIOptions.updateAppIconNames(this);" flex="1"
-                             disabled="true"/>
-                  </hbox>
-                </hbox>
-                <hbox id="ui_app_icon_type_custom_group">
-                  <radio id="ui_app_icon_type_custom" label="&app_icon_custom.label;"
-                         accesskey="&app_icon_custom.accesskey;" />
-                  <hbox id="app_icon_custom" align="center" flex="1" >
-                    <textbox id="app_icon_custom_filename" preference="pref_app_icon_filename" flex="1" />
-                    <button id="app_icon_custom_select" label="&choose;"
-                            accesskey="&choose.accesskey;"
-                            oncommand="firetrayUIOptions.chooseAppIconFile()" />
-                  </hbox>
-                </hbox>
-
-              </vbox>
-            </radiogroup>
-
-            <checkbox id="ui_show_icon_on_hide" preference="pref_show_icon_on_hide"
-                      label="&show_icon_on_hide.label;"
-                      accesskey="&show_icon_on_hide.accesskey;"/>
-
-            <checkbox id="ui_scroll_hides" preference="pref_scroll_hides"
-                      label="&enable_mouse_scroll.label;"
-                      accesskey="&enable_mouse_scroll.accesskey;"
-                      oncommand="firetrayUIOptions.updateScrollOptions()" />
-            <radiogroup id="ui_radiogroup_scroll" preference="pref_scroll_mode">
-              <radio id="ui_radio_scroll_down_hides" label="&down;=&hide;, &up;=&restore;" value="down_hides" />
-              <radio id="ui_radio_scroll_up_hides" label="&up;=&hide;, &down;=&restore;" value="up_hides" />
-            </radiogroup>
-
-          </vbox>
-        </tabpanel>
-
-        <tabpanel id="mail_tabpanel" flex="1">
-          <vbox align="left" flex="1">
-
-          <checkbox id="ui_mail_notification_enabled"
-                    label="&mail_notification_enabled.label;"
-                    class="header"
-                    accesskey="&mail_notification_enabled.accesskey;"
-                    preference="pref_mail_notification_enabled"
-                    oncommand="firetrayUIOptions.toggleNotifications(this.checked)"/>
-
-          <radiogroup id="ui_message_count_type" preference="pref_message_count_type"
-                      oncommand="firetrayUIOptions.updateMessageCountSettings()">
-            <hbox align="center" flex="1">
-              <label control="ui_message_count_type" observes="broadcaster-notification-disabled"
-                     value="&message_count_type.label;" accesskey="&message_count_type.accesskey;" />
-              <radio id="ui_message_count_type_unread" label="&message_count_type_unread;"
-                     observes="broadcaster-notification-disabled"/>
-              <radio id="ui_message_count_type_new" label="&message_count_type_new;"
-                     tooltiptext="&message_count_type_new.tooltip;"
+    <vbox align="left" flex="1">
+
+      <checkbox id="ui_mail_notification_enabled"
+                label="&mail_notification_enabled.label;"
+                class="header"
+                accesskey="&mail_notification_enabled.accesskey;"
+                preference="pref_mail_notification_enabled"
+                oncommand="firetrayUIOptions.toggleNotifications(this.checked)"/>
+
+      <radiogroup id="ui_message_count_type" preference="pref_message_count_type"
+                  oncommand="firetrayUIOptions.updateMessageCountSettings()">
+        <hbox align="center" flex="1">
+          <label control="ui_message_count_type" observes="broadcaster-notification-disabled"
+                 value="&message_count_type.label;" accesskey="&message_count_type.accesskey;" />
+          <radio id="ui_message_count_type_unread" label="&message_count_type_unread;"
+                 observes="broadcaster-notification-disabled"/>
+          <radio id="ui_message_count_type_new" label="&message_count_type_new;"
+                 tooltiptext="&message_count_type_new.tooltip;"
+                 observes="broadcaster-notification-disabled"/>
+        </hbox>
+      </radiogroup>
+
+      <groupbox id="ui_mail_notification" flex="1">
+        <caption>
+          <label id="ui_mail_notification_type_label"
+                 value="&mail_notification_type.label;"
+                 tooltiptext="&mail_notification_type.tooltip;"
+                 observes="broadcaster-notification-disabled" />
+        </caption>
+
+        <radiogroup id="ui_radiogroup_mail_notification">
+          <hbox id="ui_mail_notification_unread_count">
+            <radio id="ui_radio_mail_notification_unread_count" label="&mail_notification_unread_count.label;"
+                   accesskey="&mail_notification_unread_count.accesskey;"
+                   oncommand="firetrayUIOptions.updateNotificationSettings()"
+                   observes="broadcaster-notification-disabled" />
+            <hbox id="icon_text_color" align="center">
+              <label value="&icon_text_color;" accesskey="&icon_text_color.accesskey;"
+                     control="btn_icon_text_color"
                      observes="broadcaster-notification-disabled"/>
+              <colorpicker id="btn_icon_text_color" type="button"
+                           preference="pref_icon_text_color"
+                           onchange="firetray.Messaging.updateIcon();"
+                           observes="broadcaster-notification-disabled"/>
             </hbox>
-          </radiogroup>
-
-          <groupbox id="ui_mail_notification" flex="1">
-            <caption>
-              <label id="ui_mail_notification_type_label"
-                     value="&mail_notification_type.label;"
-                     tooltiptext="&mail_notification_type.tooltip;"
-                     observes="broadcaster-notification-disabled" />
-            </caption>
-
-            <radiogroup id="ui_radiogroup_mail_notification">
-              <hbox id="ui_mail_notification_unread_count">
-                <radio id="ui_radio_mail_notification_unread_count" label="&mail_notification_unread_count.label;"
-                       accesskey="&mail_notification_unread_count.accesskey;"
-                       oncommand="firetrayUIOptions.updateNotificationSettings()"
-                       observes="broadcaster-notification-disabled" />
-                <hbox id="icon_text_color" align="center">
-                  <label value="&icon_text_color;" accesskey="&icon_text_color.accesskey;"
-                         control="btn_icon_text_color"
-                         observes="broadcaster-notification-disabled"/>
-                  <colorpicker id="btn_icon_text_color" type="button"
-                               preference="pref_icon_text_color"
-                               onchange="firetray.Messaging.updateIcon();"
-                               observes="broadcaster-notification-disabled"/>
-                </hbox>
-              </hbox>
-              <hbox>
-                <radio id="ui_radio_mail_notification_newmail_icon" label="&mail_notification_newmail_icon.label;"
-                       accesskey="&mail_notification_newmail_icon.accesskey;"
-                       oncommand="firetrayUIOptions.updateNotificationSettings()"
+          </hbox>
+          <hbox>
+            <radio id="ui_radio_mail_notification_newmail_icon" label="&mail_notification_newmail_icon.label;"
+                   accesskey="&mail_notification_newmail_icon.accesskey;"
+                   oncommand="firetrayUIOptions.updateNotificationSettings()"
+                   observes="broadcaster-notification-disabled"
+                   tooltiptext="&icon_themed.tooltip;" />
+            <hbox id="newmail_icon_names">
+              <textbox id="radio_mail_notification_newmail_icon_name1" size="12"
+                       placeholder="&app_icon_themed_name;" flex="1"
                        observes="broadcaster-notification-disabled"
-                       tooltiptext="&icon_themed.tooltip;" />
-                <hbox id="newmail_icon_names">
-                  <textbox id="radio_mail_notification_newmail_icon_name1" size="12"
-                           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;" 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;" flex="1"
-                           onchange="firetrayUIOptions.updateNewMailIconNames(this);"
-                           disabled="true"/>
-                </hbox>
-              </hbox>
-              <hbox>
-                <radio id="ui_radio_mail_notification_custom_mail_icon" label="&mail_notification_custom_mail_icon.label;"
-                       accesskey="&mail_notification_custom_mail_icon.accesskey;"
-                       oncommand="firetrayUIOptions.updateNotificationSettings()"
-                       observes="broadcaster-notification-disabled" />
-                <hbox id="custom_mail_icon" align="center" flex="1" >
-                  <textbox id="custom_mail_icon_filename" preference="pref_custom_mail_icon"
-                           observes="broadcaster-notification-disabled"
-                           onchange="firetray.Messaging.updateIcon();" flex="1" />
-                  <button id="custom_mail_icon_select" label="&choose;"
-                          accesskey="&choose.accesskey;"
-                          observes="broadcaster-notification-disabled"
-                          oncommand="firetrayUIOptions.chooseMailIconFile()" />
-                </hbox>
-              </hbox>
-
-            </radiogroup>
-
-          </groupbox>
-
-          <!-- NOTE: groupbox and caption don't have a 'disabled' attribute !! -->
-          <groupbox id="unread_count_folder_exceptions" flex="1">
-            <!-- label extracted from caption so we can disable it -->
-            <caption>
-              <label id="unread_count_folder_exceptions_caption_label"
-                     value="&unread_count_folder_exceptions.label;"
-                     tooltiptext="&unread_count_folder_exceptions.tooltip;"
-                     observes="broadcaster-notification-disabled" />
-            </caption>
-
-            <listbox id="excluded_folders_list" rows="7" flex="1" seltype="multiple"
-                     tooltiptext="&excluded_folders_list.tooltip;"
-                     onselect="firetrayUIOptions.updateExcludedFoldersPref()"
-                     observes="broadcaster-notification-disabled" />
-          </groupbox>
-
-          <groupbox id="unread_count_account_exceptions" flex="1">
-            <!-- label extracted from caption so we can disable it -->
-            <caption>
-              <label id="unread_count_account_exceptions_caption_label"
-                     value="&unread_count_account_exceptions.label;"
-                     tooltiptext="&unread_count_account_exceptions.tooltip;"
-                     observes="broadcaster-notification-disabled" />
-            </caption>
-
-            <hbox>
-              <checkbox id="ui_folder_count_recursive"
-                        label="&folder_count_recursive.label;"
-                        accesskey="&folder_count_recursive.accesskey;"
-                        preference="pref_folder_count_recursive"
-                        observes="broadcaster-notification-disabled"/>
-
-              <checkbox id="ui_only_favorite_folders"
-                        label="&only_favorite_folders.label;"
-                        accesskey="&only_favorite_folders.accesskey;"
-                        preference="pref_only_favorite_folders"
-                        tooltiptext="&only_favorite_folders.tooltip;"
-                        observes="broadcaster-notification-disabled"/>
+                       onchange="firetrayUIOptions.updateNewMailIconNames(this);" />
+              <textbox id="radio_mail_notification_newmail_icon_name2" size="12"
+                       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;" flex="1"
+                       onchange="firetrayUIOptions.updateNewMailIconNames(this);"
+                       disabled="true"/>
+            </hbox>
+          </hbox>
+          <hbox>
+            <radio id="ui_radio_mail_notification_custom_mail_icon" label="&mail_notification_custom_mail_icon.label;"
+                   accesskey="&mail_notification_custom_mail_icon.accesskey;"
+                   oncommand="firetrayUIOptions.updateNotificationSettings()"
+                   observes="broadcaster-notification-disabled" />
+            <hbox id="custom_mail_icon" align="center" flex="1" >
+              <textbox id="custom_mail_icon_filename" preference="pref_custom_mail_icon"
+                       observes="broadcaster-notification-disabled"
+                       onchange="firetray.Messaging.updateIcon();" flex="1" />
+              <button id="custom_mail_icon_select" label="&choose;"
+                      accesskey="&choose.accesskey;"
+                      observes="broadcaster-notification-disabled"
+                      oncommand="firetrayUIOptions.chooseMailIconFile()" />
             </hbox>
-
-            <tree id="ui_tree_mail_accounts" flex="1" rows="10" minwidth="400"
-                  seltype="single" editable="true" hidecolumnpicker="false"
-                  observes="broadcaster-notification-disabled"
-                  preference-editable="true"
-                  preference="pref_mail_accounts"
-                  onsynctopreference="return firetrayUIOptions.saveTreeAccountsOrServerTypes();">
-              <treecols>
-                <treecol id="account_or_server_type_name" editable="false" flex="2"
-                         persist="width" primary="true" label="&account_or_server_type_name;"
-                         tooltiptext="&account_or_server_type_name.tooltip;"/>
-                <splitter class="tree-splitter" resizeafter="grow" />
-                <treecol id="account_or_server_type_excluded" type="checkbox" editable="true"
-                         label="&account_or_server_type_excluded;" flex="1" persist="width"
-                         tooltiptext="&account_or_server_type_excluded.tooltip;"/>
-                <splitter class="tree-splitter" resizeafter="grow" />
-                <treecol id="account_or_server_type_order" editable="true"
-                         persist="width" flex="1" hidden= "true"
-                         label="&account_or_server_type_order;"
-                         tooltiptext="&account_or_server_type_order.tooltip;"/>
-              </treecols>
-              <treechildren id="ui_mail_accounts" flex="1"/>
-            </tree>
-
-          </groupbox>
-
-          <hbox align="center">
-            <label control="ui_mail_change_trigger" value="&mail_change_trigger.label;"
-                   accesskey="&mail_change_trigger.accesskey;" />
-            <textbox id="ui_mail_change_trigger" size="18" placeholder="&mail_change_trigger.placeholder;"
-                     onchange="firetrayUIOptions.updateMailTrigger();" flex="1"
-                     tooltiptext="&mail_change_trigger.tooltip;"
-                     observes="broadcaster-notification-disabled" />
           </hbox>
 
-          </vbox>
-        </tabpanel>
+        </radiogroup>
+
+      </groupbox>
+
+      <!-- NOTE: groupbox and caption don't have a 'disabled' attribute !! -->
+      <groupbox id="unread_count_folder_exceptions" flex="1">
+        <!-- label extracted from caption so we can disable it -->
+        <caption>
+          <label id="unread_count_folder_exceptions_caption_label"
+                 value="&unread_count_folder_exceptions.label;"
+                 tooltiptext="&unread_count_folder_exceptions.tooltip;"
+                 observes="broadcaster-notification-disabled" />
+        </caption>
+
+        <listbox id="excluded_folders_list" rows="7" flex="1" seltype="multiple"
+                 tooltiptext="&excluded_folders_list.tooltip;"
+                 onselect="firetrayUIOptions.updateExcludedFoldersPref()"
+                 observes="broadcaster-notification-disabled" />
+      </groupbox>
+
+      <groupbox id="unread_count_account_exceptions" flex="1">
+        <!-- label extracted from caption so we can disable it -->
+        <caption>
+          <label id="unread_count_account_exceptions_caption_label"
+                 value="&unread_count_account_exceptions.label;"
+                 tooltiptext="&unread_count_account_exceptions.tooltip;"
+                 observes="broadcaster-notification-disabled" />
+        </caption>
+
+        <hbox>
+          <checkbox id="ui_folder_count_recursive"
+                    label="&folder_count_recursive.label;"
+                    accesskey="&folder_count_recursive.accesskey;"
+                    preference="pref_folder_count_recursive"
+                    observes="broadcaster-notification-disabled"/>
+
+          <checkbox id="ui_only_favorite_folders"
+                    label="&only_favorite_folders.label;"
+                    accesskey="&only_favorite_folders.accesskey;"
+                    preference="pref_only_favorite_folders"
+                    tooltiptext="&only_favorite_folders.tooltip;"
+                    observes="broadcaster-notification-disabled"/>
+        </hbox>
+
+        <tree id="ui_tree_mail_accounts" flex="1" rows="10" minwidth="400"
+              seltype="single" editable="true" hidecolumnpicker="false"
+              observes="broadcaster-notification-disabled"
+              preference-editable="true"
+              preference="pref_mail_accounts"
+              onsynctopreference="return firetrayUIOptions.saveTreeAccountsOrServerTypes();">
+          <treecols>
+            <treecol id="account_or_server_type_name" editable="false" flex="2"
+                     persist="width" primary="true" label="&account_or_server_type_name;"
+                     tooltiptext="&account_or_server_type_name.tooltip;"/>
+            <splitter class="tree-splitter" resizeafter="grow" />
+            <treecol id="account_or_server_type_excluded" type="checkbox" editable="true"
+                     label="&account_or_server_type_excluded;" flex="1" persist="width"
+                     tooltiptext="&account_or_server_type_excluded.tooltip;"/>
+            <splitter class="tree-splitter" resizeafter="grow" />
+            <treecol id="account_or_server_type_order" editable="true"
+                     persist="width" flex="1" hidden= "true"
+                     label="&account_or_server_type_order;"
+                     tooltiptext="&account_or_server_type_order.tooltip;"/>
+          </treecols>
+          <treechildren id="ui_mail_accounts" flex="1"/>
+        </tree>
+
+      </groupbox>
+
+      <hbox align="center">
+        <label control="ui_mail_change_trigger" value="&mail_change_trigger.label;"
+               accesskey="&mail_change_trigger.accesskey;" />
+        <textbox id="ui_mail_change_trigger" size="18" placeholder="&mail_change_trigger.placeholder;"
+                 onchange="firetrayUIOptions.updateMailTrigger();" flex="1"
+                 tooltiptext="&mail_change_trigger.tooltip;"
+                 observes="broadcaster-notification-disabled" />
+      </hbox>
+
+    </vbox>
+
+  </prefpane>
 
-        <tabpanel id="chat_tabpanel" flex="1">
-          <vbox align="left" flex="1">
+  <prefpane id="pref-pane-chat" label="&chat_options;"
+            image="chrome://firetray/skin/pref-chat.svg">
+
+    <preferences>
+      <preference id="pref_chat_icon_enable" name="extensions.firetray.chat_icon_enable" type="bool" />
+    </preferences>
 
-            <checkbox id="ui_chat_icon_enable" preference="pref_chat_icon_enable"
-                      label="&chat_icon_enable.label;"
-                      accesskey="&chat_icon_enable.accesskey;"
-                      oncommand="firetrayUIOptions.toggleChat(this.checked);"/>
+    <vbox align="left" flex="1">
 
-          </vbox>
-        </tabpanel>
+      <checkbox id="ui_chat_icon_enable" preference="pref_chat_icon_enable"
+                label="&chat_icon_enable.label;"
+                accesskey="&chat_icon_enable.accesskey;"
+                oncommand="firetrayUIOptions.toggleChat(this.checked);"/>
 
-      </tabpanels>
-    </tabbox>
+    </vbox>
 
   </prefpane>
 
diff --git a/src/modules/FiretrayHandler.jsm b/src/modules/FiretrayHandler.jsm
index caa0c04..80f9b6e 100644
--- a/src/modules/FiretrayHandler.jsm
+++ b/src/modules/FiretrayHandler.jsm
@@ -172,7 +172,7 @@ firetray.Handler = {
   existsChatAccount: function() {
     let accounts = new firetray.Messaging.Accounts();
     for (let accountServer in accounts)
-      if (accountServer.type === 'im')  {
+      if (accountServer.type === FIRETRAY_ACCOUNT_SERVER_TYPE_IM)  {
         log.debug("found im server: "+accountServer.prettyName);
         return true;
       }
diff --git a/src/modules/FiretrayMessaging.jsm b/src/modules/FiretrayMessaging.jsm
index 4a4004c..108824f 100644
--- a/src/modules/FiretrayMessaging.jsm
+++ b/src/modules/FiretrayMessaging.jsm
@@ -165,10 +165,10 @@ firetray.Messaging = {
     if (!this.initialized) return;
 
     if ("undefined" === typeof(callback) || !callback)
-      callback = function(haveNewMail, newMsgCount) { // default
+      callback = function(msgCountChange, newMsgCount) { // default
         firetray.Messaging.updateIcon(newMsgCount);
 
-        if (haveNewMail) {
+        if (msgCountChange) {
           let mailChangeTriggerFile = firetray.Utils.prefService.getCharPref("mail_change_trigger");
           if (mailChangeTriggerFile)
             firetray.Messaging.runProcess(mailChangeTriggerFile, [newMsgCount.toString()]);
@@ -184,8 +184,8 @@ firetray.Messaging = {
     } else
       log.error('unknown message count type');
 
-    let haveNewMail = (this.newMsgCount > this.currentMsgCount);
-    callback.call(this, haveNewMail, this.newMsgCount);
+    let msgCountChange = (this.newMsgCount !== this.currentMsgCount);
+    callback.call(this, msgCountChange, this.newMsgCount);
     this.currentMsgCount = this.newMsgCount;
   },
 
@@ -247,7 +247,7 @@ firetray.Messaging = {
     let accounts = new this.Accounts();
     for (let accountServer in accounts) { // nsIMsgAccount
 
-      if (accountServer.type === 'im') {
+      if (accountServer.type === FIRETRAY_ACCOUNT_SERVER_TYPE_IM) {
         continue;               // IM messages are counted elsewhere
       } else if (!serverTypes[accountServer.type]) {
         log.warn("'"+accountServer.type+"' server type is not handled");
diff --git a/src/modules/commons.js b/src/modules/commons.js
index 69b2a5e..a2d8ed6 100644
--- a/src/modules/commons.js
+++ b/src/modules/commons.js
@@ -10,6 +10,7 @@ var EXPORTED_SYMBOLS =
     "FIRETRAY_NOTIFICATION_NEWMAIL_ICON", "FIRETRAY_NOTIFICATION_CUSTOM_ICON",
     "FIRETRAY_IM_STATUS_AVAILABLE", "FIRETRAY_IM_STATUS_AWAY",
     "FIRETRAY_IM_STATUS_BUSY", "FIRETRAY_IM_STATUS_OFFLINE",
+    "FIRETRAY_ACCOUNT_SERVER_TYPE_IM",
     "FIRETRAY_DELAY_BROWSER_STARTUP_MILLISECONDS",
     "FIRETRAY_DELAY_NOWAIT_MILLISECONDS",
     "FIRETRAY_DELAY_PREF_CLEANING_MILLISECONDS",
@@ -44,6 +45,8 @@ const FIRETRAY_IM_STATUS_AWAY      = "user-away";
 const FIRETRAY_IM_STATUS_BUSY      = "user-busy";
 const FIRETRAY_IM_STATUS_OFFLINE   = "user-offline";
 
+const FIRETRAY_ACCOUNT_SERVER_TYPE_IM = "im";
+
 const FIRETRAY_DELAY_BROWSER_STARTUP_MILLISECONDS = 500;
 const FIRETRAY_DELAY_NOWAIT_MILLISECONDS          = 0;
 const FIRETRAY_DELAY_PREF_CLEANING_MILLISECONDS   = 15*60*1000;
diff --git a/src/modules/linux/FiretrayPopupMenu.jsm b/src/modules/linux/FiretrayPopupMenu.jsm
index d776ab5..a592497 100644
--- a/src/modules/linux/FiretrayPopupMenu.jsm
+++ b/src/modules/linux/FiretrayPopupMenu.jsm
@@ -33,14 +33,14 @@ firetray.PopupMenu = {
     this.menuShell = ctypes.cast(this.menu, gtk.GtkMenuShell.ptr);
     var addMenuSeparator = false;
 
-    if (firetray.Handler.inBrowserApp) {
-      this.addItem("NewWindow", "gtk-new", "activate", firetray.Handler.openBrowserWindow);
+    if (firetray.Handler.inMailApp) {
+      this.addItem("ResetIcon", "gtk-apply", "activate", firetray.Handler.setIconImageDefault);
+      this.addItem("NewMessage", "gtk-edit", "activate", firetray.Handler.openMailMessage);
       addMenuSeparator = true;
     }
 
-    if (firetray.Handler.inMailApp) {
-      this.addItem("NewMessage", "gtk-edit", "activate", firetray.Handler.openMailMessage);
-      this.addItem("ResetIcon", "gtk-apply", "activate", firetray.Handler.setIconImageDefault);
+    if (firetray.Handler.inBrowserApp) {
+      this.addItem("NewWindow", "gtk-new", "activate", firetray.Handler.openBrowserWindow);
       addMenuSeparator = true;
     }
 

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