mirror of
https://github.com/moparisthebest/FireTray
synced 2024-11-10 11:05:07 -05:00
options: UI for notification preferences
This commit is contained in:
parent
8ec5451c94
commit
164c43453f
2
TODO
2
TODO
@ -1,7 +1,5 @@
|
||||
=TODO=
|
||||
|
||||
* options: in mail_accounts, have serverTypes interact with excludedAccounts
|
||||
|
||||
* add "enable biff notification" option. And if true:
|
||||
|
||||
radio choice option with:
|
||||
|
@ -14,6 +14,7 @@ if ("undefined" == typeof(firetray)) {
|
||||
var firetray = {};
|
||||
};
|
||||
|
||||
const NOTIFICATION_CUSTOM_ICON = 3;
|
||||
const TREEROW_ACCOUNT_OR_SERVER_TYPE_NAME = 0;
|
||||
const TREEROW_ACCOUNT_OR_SERVER_TYPE_EXCLUDED = 1;
|
||||
const TREEROW_ACCOUNT_OR_SERVER_TYPE_ORDER = 2;
|
||||
@ -25,7 +26,7 @@ firetray.UIOptions = {
|
||||
onLoad: function() {
|
||||
if(firetray.Handler.inMailApp) {
|
||||
Cu.import("resource://firetray/FiretrayMessaging.jsm");
|
||||
this.populateTreeAccountsOrServerTypes();
|
||||
this.initMailControls();
|
||||
} else {
|
||||
this.hideElement("mail_tab");
|
||||
}
|
||||
@ -58,6 +59,55 @@ firetray.UIOptions = {
|
||||
targetNode.hidden = true;
|
||||
},
|
||||
|
||||
disableGroup: function(group,disableval) {
|
||||
try {
|
||||
for(var i=0; i< group.childNodes.length; i++)
|
||||
group.childNodes[i].disabled = disableval;
|
||||
} catch(e) {}
|
||||
},
|
||||
|
||||
initMailControls: function() {
|
||||
this.initNotificationSettings();
|
||||
this.populateTreeAccountsOrServerTypes();
|
||||
},
|
||||
|
||||
initNotificationSettings: function() {
|
||||
let radioMailNotify = document.getElementById("radiogroup_mail_notification");
|
||||
let prefMailNotification = firetray.Utils.prefService.getIntPref("mail_notification");
|
||||
radioMailNotify.selectedIndex = prefMailNotification;
|
||||
let customIconGroup = document.getElementById("custom_mail_icon");
|
||||
this.disableGroup(customIconGroup,
|
||||
(prefMailNotification !== NOTIFICATION_CUSTOM_ICON));
|
||||
},
|
||||
|
||||
updateNotificationSettings: function() {
|
||||
let radioMailNotify = document.getElementById("radiogroup_mail_notification");
|
||||
let prefMailNotification =
|
||||
firetray.Utils.prefService.setIntPref("mail_notification", radioMailNotify.selectedIndex);
|
||||
let customIconGroup = document.getElementById("custom_mail_icon");
|
||||
this.disableGroup(customIconGroup,
|
||||
(radioMailNotify.selectedIndex !== NOTIFICATION_CUSTOM_ICON));
|
||||
},
|
||||
|
||||
chooseMailIconFile: function() {
|
||||
var filepath = document.getElementById("custom_mail_icon_filename");
|
||||
this._chooseIconFile(filepath);
|
||||
},
|
||||
|
||||
_chooseIconFile: function(iconFilename) {
|
||||
const nsIFilePicker = Ci.nsIFilePicker;
|
||||
var filePicker = Cc["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
|
||||
filePicker.init(window, "Select Icon", nsIFilePicker.modeOpen); // FIXME: i18n
|
||||
filePicker.appendFilters(nsIFilePicker.filterImages);
|
||||
|
||||
var rv = filePicker.show();
|
||||
if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
|
||||
iconFilename.value = filePicker.file.path;
|
||||
var prefpane = document.getElementById("pane1");
|
||||
prefpane.userChangedValue(iconFilename);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* should be called only for excludedAccounts
|
||||
*/
|
||||
|
@ -11,12 +11,10 @@
|
||||
<prefpane id="pane1" label="&pane1.title;">
|
||||
|
||||
<preferences>
|
||||
<preference id="pref_bool_hides_on_close"
|
||||
name="extensions.firetray.hides_on_close" type="bool"/>
|
||||
<preference id="pref_bool_hides_on_minimize"
|
||||
name="extensions.firetray.hides_on_minimize" type="bool"/>
|
||||
<preference id="pref_string_mail_accounts"
|
||||
name="extensions.firetray.mail_accounts" type="string"/>
|
||||
<preference id="pref_bool_hides_on_close" name="extensions.firetray.hides_on_close" type="bool"/>
|
||||
<preference id="pref_bool_hides_on_minimize" name="extensions.firetray.hides_on_minimize" type="bool"/>
|
||||
<preference id="pref_string_custom_mail_icon" name="extensions.firetray.custom_mail_icon" type="string" />
|
||||
<preference id="pref_string_mail_accounts" name="extensions.firetray.mail_accounts" type="string"/>
|
||||
</preferences>
|
||||
|
||||
|
||||
@ -31,8 +29,7 @@
|
||||
<tabpanel id="general_tabpanel">
|
||||
|
||||
<groupbox flex="1">
|
||||
<caption label="&windows_behaviour;"
|
||||
tooltiptext="&windows_behaviour.tooltip;" />
|
||||
<caption label="&windows_behaviour;" tooltiptext="&windows_behaviour.tooltip;" />
|
||||
|
||||
<checkbox id="ui_hides_on_close" preference="pref_bool_hides_on_close"
|
||||
label="&bool_hides_on_close.label;"
|
||||
@ -48,12 +45,40 @@
|
||||
<tabpanel id="input_tabpanel" />
|
||||
|
||||
<tabpanel id="mail_tabpanel">
|
||||
<vbox align="left" flex="1" >
|
||||
|
||||
<!-- <label value="&mail_notification;" class="header" /> -->
|
||||
<groupbox flex="1">
|
||||
<caption label="&mail_notification;" />
|
||||
<radiogroup id="radiogroup_mail_notification">
|
||||
<radio id="radio_mail_icon1" label="&mail_notification_disabled;"
|
||||
accesskey="&mail_notification_disabled.accesskey;"
|
||||
oncommand="firetray.UIOptions.updateNotificationSettings()" />
|
||||
<radio id="radio_mail_icon2" label="&mail_notification_unread_count;"
|
||||
accesskey="&mail_notification_unread_count.accesskey;"
|
||||
oncommand="firetray.UIOptions.updateNotificationSettings()" />
|
||||
<radio id="radio_mail_icon3" label="&mail_notification_newmail_icon;"
|
||||
accesskey="&mail_notification_newmail_icon.accesskey;"
|
||||
oncommand="firetray.UIOptions.updateNotificationSettings()" />
|
||||
<radio id="radio_mail_icon4" label="&mail_notification_custom_mail_icon;"
|
||||
accesskey="&mail_notification_custom_mail_icon.accesskey;"
|
||||
oncommand="firetray.UIOptions.updateNotificationSettings()" />
|
||||
</radiogroup>
|
||||
</groupbox>
|
||||
|
||||
<hbox id="custom_mail_icon" align="center" flex="1" >
|
||||
<textbox id="custom_mail_icon_filename" preference="pref_string_custom_mail_icon"
|
||||
hidden="FALSE" flex="1" />
|
||||
<button id="custom_mail_icon_select" label="&choose;"
|
||||
accesskey="&choose.accesskey;"
|
||||
oncommand="firetray.UIOptions.chooseMailIconFile()" />
|
||||
</hbox>
|
||||
|
||||
<groupbox flex="1">
|
||||
<caption label="&unread_count_account_exceptions;"
|
||||
tooltiptext="&unread_count_account_exceptions.tooltip;" />
|
||||
|
||||
<tree id="ui_tree_mail_accounts" flex="1" rows="10"
|
||||
<tree id="ui_tree_mail_accounts" flex="1" rows="10" minwidth="300"
|
||||
seltype="single" editable="true"
|
||||
preference-editable="true"
|
||||
preference="pref_string_mail_accounts"
|
||||
@ -68,8 +93,8 @@
|
||||
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;"
|
||||
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" />
|
||||
@ -77,6 +102,7 @@
|
||||
|
||||
</groupbox>
|
||||
|
||||
</vbox>
|
||||
</tabpanel>
|
||||
|
||||
</tabpanels>
|
||||
|
@ -15,6 +15,18 @@
|
||||
<!ENTITY bool_hides_on_minimize.label "Minimize window hides to tray">
|
||||
<!ENTITY bool_hides_on_minimize.accesskey "M">
|
||||
|
||||
<!ENTITY mail_notification "Mail notification">
|
||||
<!ENTITY mail_notification_disabled "disabled">
|
||||
<!ENTITY mail_notification_disabled.accesskey "D">
|
||||
<!ENTITY mail_notification_unread_count "display unread messages count">
|
||||
<!ENTITY mail_notification_unread_count.accesskey "U">
|
||||
<!ENTITY mail_notification_newmail_icon "display newmail icon">
|
||||
<!ENTITY mail_notification_newmail_icon.accesskey "N">
|
||||
<!ENTITY mail_notification_custom_mail_icon "display custom icon">
|
||||
<!ENTITY mail_notification_custom_mail_icon.accesskey "I">
|
||||
<!ENTITY choose "Choose">
|
||||
<!ENTITY choose.accesskey "O">
|
||||
|
||||
<!ENTITY unread_count_account_exceptions "Included accounts">
|
||||
<!ENTITY unread_count_account_exceptions.tooltip "Included accounts for unread message count">
|
||||
|
||||
|
BIN
src/chrome/skin/message-mail-new.png
Normal file
BIN
src/chrome/skin/message-mail-new.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 770 B |
@ -5,7 +5,11 @@ pref("extensions.{9533f794-00b4-4354-aa15-c2bbda6989f8}.description", "chrome://
|
||||
pref("browser.tabs.warnOnClose", false);
|
||||
|
||||
// Extension prefs
|
||||
|
||||
pref("extensions.firetray.hides_on_close", true);
|
||||
pref("extensions.firetray.hides_on_minimize", true);
|
||||
|
||||
pref("extensions.firetray.mail_notification", 1);
|
||||
pref("extensions.firetray.custom_mail_icon", "");
|
||||
// exposed in 1 tree, hence 2 branches: serverTypes, excludedAccounts
|
||||
pref("extensions.firetray.mail_accounts", '{ "serverTypes": {"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}}, "excludedAccounts": [] }'); // JSON
|
||||
|
Loading…
Reference in New Issue
Block a user