Skip to content

Commit 4e6953a

Browse files
committed
Add extensions.tabutils.menu.context_reloadEvery.list option
1 parent dea1541 commit 4e6953a

File tree

3 files changed

+32
-18
lines changed

3 files changed

+32
-18
lines changed

chrome/content/tabutils.js

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1471,13 +1471,21 @@ tabutils._reloadEvery = function() {
14711471
});
14721472

14731473
gBrowser.updateAutoReloadPopup = function updateAutoReloadPopup(aPopup) {
1474+
var sepCustom = aPopup.getElementsByAttribute("anonid", "sep_custom")[0];
1475+
while (sepCustom.previousSibling.localName == "menuitem")
1476+
aPopup.removeChild(sepCustom.previousSibling);
1477+
1478+
aPopup.parentNode.getAttribute("list").split(",").forEach(function(value) {
1479+
if (value > 0) {
1480+
let item = aPopup.insertBefore(document.createElement("menuitem"), sepCustom);
1481+
item.value = value;
1482+
item.label = Label(value);
1483+
item.setAttribute("type", "radio");
1484+
}
1485+
});
1486+
14741487
aPopup.value = gBrowser.mContextTab._reloadInterval || TU_getPref("extensions.tabutils.reloadInterval", 10);
1475-
aPopup.label = (function() {
1476-
var m = parseInt(aPopup.value / 60), s = aPopup.value % 60;
1477-
return (m > 1 ? m + " " + aPopup.getAttribute("minutes") : m > 0 ? m + " " + aPopup.getAttribute("minute") : "")
1478-
+ (m > 0 && s > 0 ? " " : "")
1479-
+ (s > 1 ? s + " " + aPopup.getAttribute("seconds") : s > 0 ? s + " " + aPopup.getAttribute("second") : "");
1480-
})();
1488+
aPopup.label = Label(aPopup.value);
14811489

14821490
var itemEnable = aPopup.getElementsByAttribute("anonid", "enable")[0];
14831491
itemEnable.setAttribute("checked", gBrowser.mContextTabs.every(function(aTab) aTab.hasAttribute("autoReload")));
@@ -1490,15 +1498,28 @@ tabutils._reloadEvery = function() {
14901498
}
14911499
else {
14921500
itemCustom.setAttribute("checked", true);
1493-
itemCustom.setAttribute("value", aPopup.value);
14941501
}
14951502

14961503
if (itemCustom.hasAttribute("checked")) {
1504+
itemCustom.setAttribute("value", aPopup.value);
14971505
itemCustom.setAttribute("label", itemCustom.getAttribute("text") + ": " + aPopup.label);
14981506
}
14991507
else {
15001508
itemCustom.setAttribute("label", itemCustom.getAttribute("text") + PlacesUIUtils.ellipsis);
15011509
}
1510+
1511+
function Label(value) {
1512+
let m = parseInt(value / 60), s = value % 60, result = [];
1513+
if (m > 0) {
1514+
result.push(m);
1515+
result.push(aPopup.getAttribute(m > 1 ? "minutes" : "minute"));
1516+
}
1517+
if (s > 0 || m == 0) {
1518+
result.push(s);
1519+
result.push(aPopup.getAttribute(s > 1 ? "seconds" : "second"));
1520+
}
1521+
return result.join(" ");
1522+
}
15021523
};
15031524
};
15041525

chrome/content/tabutils.xul

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -146,21 +146,13 @@
146146
<menuitem anonid="enable" text="&reloadEvery.enable;" type="checkbox"
147147
oncommand="gBrowser.autoReloadTab(gBrowser.mContextTabs);event.stopPropagation();"/>
148148
<menuseparator/>
149-
<menuitem label="5 &seconds.label;" value="5" type="radio"/>
150-
<menuitem label="10 &seconds.label;" value="10" type="radio"/>
151-
<menuitem label="30 &seconds.label;" value="30" type="radio"/>
152-
<menuitem label="1 &minute.label;" value="60" type="radio"/>
153-
<menuitem label="2 &minutes.label;" value="120" type="radio"/>
154-
<menuitem label="5 &minutes.label;" value="300" type="radio"/>
155-
<menuitem label="10 &minutes.label;" value="600" type="radio"/>
156-
<menuitem label="30 &minutes.label;" value="1800" type="radio"/>
157-
<menuseparator/>
149+
<menuseparator anonid="sep_custom"/>
158150
<menuitem anonid="custom" text="&reloadEvery.custom;" type="radio"
159151
oncommand="var reloadInterval = {value: this.value};if (Services.prompt.prompt(null, '&reloadEvery.label;', '&reloadEvery.reloadInterval;', reloadInterval, null, {})) this.value = reloadInterval.value; else event.stopPropagation();"/>
160152
<menuseparator/>
161-
<menuitem anonid="enableAllTabs" label="&reloadEvery.enableAllTabs;"
153+
<menuitem label="&reloadEvery.enableAllTabs;"
162154
oncommand="gBrowser.autoReloadTab(gBrowser.allTabs, true, null, this.parentNode.value);event.stopPropagation();"/>
163-
<menuitem anonid="disableAllTabs" label="&reloadEvery.disableAllTabs;"
155+
<menuitem label="&reloadEvery.disableAllTabs;"
164156
oncommand="gBrowser.autoReloadTab(gBrowser.allTabs, false);event.stopPropagation();"/>
165157
</menupopup>
166158
</menu>

defaults/preferences/prefs.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ pref("extensions.tabutils.menu.menu_tuOptions", true);
107107
pref("extensions.tabutils.menu.context_newTab", false);
108108
pref("extensions.tabutils.menu.context_duplicateTab", false);
109109
pref("extensions.tabutils.menu.context_reloadEvery", false);
110+
pref("extensions.tabutils.menu.context_reloadEvery.list", "10,30,60,120,300,600,1800");
110111
pref("extensions.tabutils.menu.context_moveToWindow", false);
111112
pref("extensions.tabutils.menu.context_mergeWindow", false);
112113
pref("extensions.tabutils.menu.context_mergeGroup", false);

0 commit comments

Comments
 (0)