* 「このツリーを再読み込み」「このタブの子タブをすべて再読み込み」追加

* タブのコンテキストメニューに挿入されるメニュー項目の並びがおかしくなっていたのを修正

git-svn-id: http://www.cozmixng.org/repos/piro/treestyletab/trunk@4635 599a83e7-65a4-db11-8015-0010dcdd6dc2
This commit is contained in:
piro 2009-07-06 09:21:06 +00:00
parent a4d2e907f1
commit 24874a4402
14 changed files with 164 additions and 117 deletions

View File

@ -180,6 +180,12 @@
<preference id="extensions.treestyletab.show.openSelectionLinks" <preference id="extensions.treestyletab.show.openSelectionLinks"
name="extensions.treestyletab.show.openSelectionLinks" name="extensions.treestyletab.show.openSelectionLinks"
type="bool"/> type="bool"/>
<preference id="extensions.treestyletab.show.context-item-reloadTabSubTree"
name="extensions.treestyletab.show.context-item-reloadTabSubTree"
type="bool"/>
<preference id="extensions.treestyletab.show.context-item-reloadDescendantTabs"
name="extensions.treestyletab.show.context-item-reloadDescendantTabs"
type="bool"/>
<preference id="extensions.treestyletab.show.context-item-removeTabSubTree" <preference id="extensions.treestyletab.show.context-item-removeTabSubTree"
name="extensions.treestyletab.show.context-item-removeTabSubTree" name="extensions.treestyletab.show.context-item-removeTabSubTree"
type="bool"/> type="bool"/>
@ -210,6 +216,14 @@
<groupbox orient="vertical"> <groupbox orient="vertical">
<caption label="&config.show.tabContextMenu.caption;"/> <caption label="&config.show.tabContextMenu.caption;"/>
<hbox align="center">
<checkbox id="extensions.treestyletab.show.context-item-reloadTabSubTree-check"
preference="extensions.treestyletab.show.context-item-reloadTabSubTree"
label="&context.reloadTabSubTree.label;"/>
<checkbox id="extensions.treestyletab.show.context-item-reloadDescendantTabs-check"
preference="extensions.treestyletab.show.context-item-reloadDescendantTabs"
label="&context.reloadDescendantTabs.label;"/>
</hbox>
<hbox align="center"> <hbox align="center">
<checkbox id="extensions.treestyletab.show.context-item-removeTabSubTree-check" <checkbox id="extensions.treestyletab.show.context-item-removeTabSubTree-check"
preference="extensions.treestyletab.show.context-item-removeTabSubTree" preference="extensions.treestyletab.show.context-item-removeTabSubTree"

View File

@ -2035,26 +2035,11 @@ catch(e) {
removeTabSubTree : function(aTabOrTabs, aOnlyChildren) removeTabSubTree : function(aTabOrTabs, aOnlyChildren)
{ {
var tabs = aTabOrTabs; var tabs = this._normalizeToTabs(aTabOrTabs, aOnlyChildren);
if (!(tabs instanceof Array)) {
tabs = [aTabOrTabs];
}
var b = this.getTabBrowserFromChild(tabs[0]);
var descendant = [];
for (var i = 0, maxi = tabs.length; i < maxi; i++)
{
descendant = descendant.concat(b.treeStyleTab.getDescendantTabs(tabs[i]));
}
if (aOnlyChildren)
tabs = this.cleanUpTabsArray(descendant);
else
tabs = this.cleanUpTabsArray(tabs.concat(descendant));
if (!this.warnAboutClosingTabs(tabs.length)) if (!this.warnAboutClosingTabs(tabs.length))
return; return;
var b = this.getTabBrowserFromChild(tabs[0]);
for (var i = tabs.length-1; i > -1; i--) for (var i = tabs.length-1; i > -1; i--)
{ {
b.removeTab(tabs[i]); b.removeTab(tabs[i]);
@ -2087,6 +2072,28 @@ catch(e) {
return shouldClose; return shouldClose;
}, },
_normalizeToTabs : function(aTabOrTabs, aOnlyChildren)
{
var tabs = aTabOrTabs;
if (!(tabs instanceof Array)) {
tabs = [aTabOrTabs];
}
var b = this.getTabBrowserFromChild(tabs[0]);
var descendant = [];
for (var i = 0, maxi = tabs.length; i < maxi; i++)
{
descendant = descendant.concat(b.treeStyleTab.getDescendantTabs(tabs[i]));
}
if (aOnlyChildren)
tabs = this.cleanUpTabsArray(descendant);
else
tabs = this.cleanUpTabsArray(tabs.concat(descendant));
return tabs;
},
cleanUpTabsArray : function(aTabs) cleanUpTabsArray : function(aTabs)
{ {
var newTabs = []; var newTabs = [];
@ -2100,6 +2107,16 @@ catch(e) {
return newTabs; return newTabs;
}, },
reloadTabSubTree : function(aTabOrTabs, aOnlyChildren)
{
var tabs = this._normalizeToTabs(aTabOrTabs, aOnlyChildren);
var b = this.getTabBrowserFromChild(tabs[0]);
for (var i = tabs.length-1; i > -1; i--)
{
b.reloadTab(tabs[i]);
}
},
bookmarkTabSubTree : function(aTabOrTabs) bookmarkTabSubTree : function(aTabOrTabs)
{ {
var tabs = aTabOrTabs; var tabs = aTabOrTabs;

View File

@ -55,6 +55,31 @@
<popupset id="mainPopupSet"> <popupset id="mainPopupSet">
<menupopup id="multipletab-tabcontext-menu-template"> <menupopup id="multipletab-tabcontext-menu-template">
<menuitem id="context-item-reloadTabSubTree"
label="&context.reloadTabSubTree.label;"
accesskey="&context.reloadTabSubTree.accesskey;"
oncommand="TreeStyleTabService.reloadTabSubTree(TreeStyleTabService.getTabBrowserFromChild(this).mContextTab);"
onclick="if (event.button == 1 || (event.button == 0 &amp;&amp; TreeStyleTabService.isAccelKeyPressed(event))) {
TreeStyleTabService.reloadTabSubTree(TreeStyleTabService.getTabBrowserFromChild(this).mContextTab, true);
event.stopPropagation();
this.parentNode.hidePopup();
}"
multipletab-insertafter="TreeStyleTabService.evaluateXPath(
&quot;descendant::*[starts-with(@id, 'context_reloadTab')][1]&quot;
, tabContextMenu, XPathResult.FIRST_ORDERED_NODE_TYPE).singleNodeValue"/>
<menuitem id="context-item-reloadDescendantTabs"
label="&context.reloadDescendantTabs.label;"
accesskey="&context.reloadDescendantTabs.accesskey;"
oncommand="TreeStyleTabService.reloadTabSubTree(TreeStyleTabService.getTabBrowserFromChild(this).mContextTab, true);"
onclick="if (event.button == 1 || (event.button == 0 &amp;&amp; TreeStyleTabService.isAccelKeyPressed(event))) {
TreeStyleTabService.reloadTabSubTree(TreeStyleTabService.getTabBrowserFromChild(this).mContextTab);
event.stopPropagation();
this.parentNode.hidePopup();
}"
multipletab-insertafter="TreeStyleTabService.evaluateXPath(
&quot;descendant::*[starts-with(@id, 'context-item-reloadTabSubTree')][1]&quot;
, tabContextMenu, XPathResult.FIRST_ORDERED_NODE_TYPE).singleNodeValue"/>
<menuitem id="context-item-removeTabSubTree" <menuitem id="context-item-removeTabSubTree"
label="&context.removeTabSubTree.label;" label="&context.removeTabSubTree.label;"
accesskey="&context.removeTabSubTree.accesskey;" accesskey="&context.removeTabSubTree.accesskey;"

View File

@ -9,6 +9,8 @@ function TreeStyleTabBrowser(aTabBrowser)
TreeStyleTabBrowser.prototype = { TreeStyleTabBrowser.prototype = {
kMENUITEM_RELOADSUBTREE : 'context-item-reloadTabSubTree',
kMENUITEM_RELOADCHILDREN : 'context-item-reloadDescendantTabs',
kMENUITEM_REMOVESUBTREE : 'context-item-removeTabSubTree', kMENUITEM_REMOVESUBTREE : 'context-item-removeTabSubTree',
kMENUITEM_REMOVECHILDREN : 'context-item-removeDescendantTabs', kMENUITEM_REMOVECHILDREN : 'context-item-removeDescendantTabs',
kMENUITEM_COLLAPSEEXPAND_SEPARATOR : 'context-separator-collapseExpandAll', kMENUITEM_COLLAPSEEXPAND_SEPARATOR : 'context-separator-collapseExpandAll',
@ -522,6 +524,8 @@ TreeStyleTabBrowser.prototype = {
window.setTimeout(function(aSelf, aTabBrowser, aPopup) { window.setTimeout(function(aSelf, aTabBrowser, aPopup) {
let suffix = '-tabbrowser-'+(aTabBrowser.id || 'instance-'+parseInt(Math.random() * 65000)); let suffix = '-tabbrowser-'+(aTabBrowser.id || 'instance-'+parseInt(Math.random() * 65000));
[ [
aSelf.kMENUITEM_RELOADSUBTREE,
aSelf.kMENUITEM_RELOADCHILDREN,
aSelf.kMENUITEM_REMOVESUBTREE, aSelf.kMENUITEM_REMOVESUBTREE,
aSelf.kMENUITEM_REMOVECHILDREN, aSelf.kMENUITEM_REMOVECHILDREN,
aSelf.kMENUITEM_COLLAPSEEXPAND_SEPARATOR, aSelf.kMENUITEM_COLLAPSEEXPAND_SEPARATOR,
@ -555,9 +559,12 @@ TreeStyleTabBrowser.prototype = {
} }
aPopup.insertBefore(item, refNode || null); aPopup.insertBefore(item, refNode || null);
}); });
tabContextMenu = null;
}, 0, this, b, tabContextMenu); }, 0, this, b, tabContextMenu);
} }
tabContextMenu = null; else {
tabContextMenu = null;
}
} }
let (allTabPopup) { let (allTabPopup) {
@ -2025,30 +2032,32 @@ TreeStyleTabBrowser.prototype = {
initTabContextMenu : function(aEvent) initTabContextMenu : function(aEvent)
{ {
var b = this.mTabBrowser; var b = this.mTabBrowser;
var item, sep; var sep, items = {};
// remove subtree [
item = this.evaluateXPath( this.kMENUITEM_RELOADSUBTREE,
'descendant::xul:menuitem[starts-with(@id, "'+this.kMENUITEM_REMOVESUBTREE+'")]', this.kMENUITEM_RELOADCHILDREN,
aEvent.currentTarget, this.kMENUITEM_REMOVESUBTREE,
XPathResult.FIRST_ORDERED_NODE_TYPE this.kMENUITEM_REMOVECHILDREN,
).singleNodeValue; this.kMENUITEM_COLLAPSE,
if (this.getTreePref('show.'+this.kMENUITEM_REMOVESUBTREE)) this.kMENUITEM_EXPAND,
item.removeAttribute('hidden'); this.kMENUITEM_AUTOHIDE,
else this.kMENUITEM_FIXED,
item.setAttribute('hidden', true); this.kMENUITEM_POSITION,
this.showHideSubTreeMenuItem(item, [b.mContextTab]); this.kMENUITEM_BOOKMARKSUBTREE
].forEach(function(aID) {
item = this.evaluateXPath( let item = this.evaluateXPath(
'descendant::xul:menuitem[starts-with(@id, "'+this.kMENUITEM_REMOVECHILDREN+'")]', 'descendant::xul:*[starts-with(@id, "'+aID+'")]',
aEvent.currentTarget, aEvent.currentTarget,
XPathResult.FIRST_ORDERED_NODE_TYPE XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue; ).singleNodeValue;
if (this.getTreePref('show.'+this.kMENUITEM_REMOVECHILDREN)) items[aID] = item;
item.removeAttribute('hidden'); if (this.getTreePref('show.'+aID))
else item.removeAttribute('hidden');
item.setAttribute('hidden', true); else
this.showHideSubTreeMenuItem(item, [b.mContextTab]); item.setAttribute('hidden', true);
this.showHideSubTreeMenuItem(item, [b.mContextTab]);
}, this);
// collapse/expand all // collapse/expand all
sep = this.evaluateXPath( sep = this.evaluateXPath(
@ -2056,51 +2065,27 @@ TreeStyleTabBrowser.prototype = {
aEvent.currentTarget, aEvent.currentTarget,
XPathResult.FIRST_ORDERED_NODE_TYPE XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue; ).singleNodeValue;
var collapseItem = this.evaluateXPath( var collapseItem = items[this.kMENUITEM_COLLAPSE];
'descendant::xul:menuitem[starts-with(@id, "'+this.kMENUITEM_COLLAPSE+'")]', var expanndItem = items[this.kMENUITEM_EXPAND];
aEvent.currentTarget,
XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;
var expanndItem = this.evaluateXPath(
'descendant::xul:menuitem[starts-with(@id, "'+this.kMENUITEM_EXPAND+'")]',
aEvent.currentTarget,
XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;
if (this.evaluateXPath( if (this.evaluateXPath(
'child::xul:tab[@'+this.kCHILDREN+']', 'child::xul:tab[@'+this.kCHILDREN+']',
b.mTabContainer b.mTabContainer
).snapshotLength) { ).snapshotLength) {
if (this.getTreePref('show.'+this.kMENUITEM_COLLAPSE)) { if (this.evaluateXPath(
collapseItem.removeAttribute('hidden'); 'child::xul:tab[@'+this.kCHILDREN+' and not(@'+this.kSUBTREE_COLLAPSED+'="true")]',
if (this.evaluateXPath( b.mTabContainer
'child::xul:tab[@'+this.kCHILDREN+' and not(@'+this.kSUBTREE_COLLAPSED+'="true")]', ).snapshotLength)
b.mTabContainer collapseItem.removeAttribute('disabled');
).snapshotLength) { else
collapseItem.removeAttribute('disabled'); collapseItem.setAttribute('disabled', true);
}
else {
collapseItem.setAttribute('disabled', true);
}
}
else {
collapseItem.setAttribute('hidden', true);
}
if (this.getTreePref('show.'+this.kMENUITEM_EXPAND)) { if (this.evaluateXPath(
expanndItem.removeAttribute('hidden'); 'child::xul:tab[@'+this.kCHILDREN+' and @'+this.kSUBTREE_COLLAPSED+'="true"]',
if (this.evaluateXPath( b.mTabContainer
'child::xul:tab[@'+this.kCHILDREN+' and @'+this.kSUBTREE_COLLAPSED+'="true"]', ).snapshotLength)
b.mTabContainer expanndItem.removeAttribute('disabled');
).snapshotLength) { else
expanndItem.removeAttribute('disabled'); expanndItem.setAttribute('disabled', true);
}
else {
expanndItem.setAttribute('disabled', true);
}
}
else {
expanndItem.setAttribute('hidden', true);
}
} }
else { else {
collapseItem.setAttribute('hidden', true); collapseItem.setAttribute('hidden', true);
@ -2115,15 +2100,10 @@ TreeStyleTabBrowser.prototype = {
} }
// auto hide // auto hide
var autohide = this.evaluateXPath( var autohide = items[this.kMENUITEM_AUTOHIDE];
'descendant::xul:menuitem[starts-with(@id, "'+this.kMENUITEM_AUTOHIDE+'")]',
aEvent.currentTarget,
XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;
var pos = b.getAttribute(this.kTABBAR_POSITION); var pos = b.getAttribute(this.kTABBAR_POSITION);
if (this.getTreePref('show.'+this.kMENUITEM_AUTOHIDE)/* && if (this.getTreePref('show.'+this.kMENUITEM_AUTOHIDE)/* &&
(pos == 'left' || pos == 'right')*/) { (pos == 'left' || pos == 'right')*/) {
autohide.removeAttribute('hidden');
if (this.autoHideMode != this.kAUTOHIDE_MODE_DISABLED) if (this.autoHideMode != this.kAUTOHIDE_MODE_DISABLED)
autohide.setAttribute('checked', true); autohide.setAttribute('checked', true);
else else
@ -2134,14 +2114,9 @@ TreeStyleTabBrowser.prototype = {
} }
// fix // fix
var fixed = this.evaluateXPath( var fixed = items[this.kMENUITEM_FIXED];
'descendant::xul:menuitem[starts-with(@id, "'+this.kMENUITEM_FIXED+'")]',
aEvent.currentTarget,
XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;
if (this.getTreePref('show.'+this.kMENUITEM_FIXED) && if (this.getTreePref('show.'+this.kMENUITEM_FIXED) &&
(pos == 'left' || pos == 'right')) { (pos == 'left' || pos == 'right')) {
fixed.removeAttribute('hidden');
if (this.getTreePref('tabbar.fixed')) if (this.getTreePref('tabbar.fixed'))
fixed.setAttribute('checked', true); fixed.setAttribute('checked', true);
else else
@ -2152,18 +2127,8 @@ TreeStyleTabBrowser.prototype = {
} }
// position // position
var position = this.evaluateXPath( var position = items[this.kMENUITEM_POSITION];
'descendant::xul:menu[starts-with(@id, "'+this.kMENUITEM_POSITION+'")]', position.getElementsByAttribute('value', pos)[0].setAttribute('checked', true);
aEvent.currentTarget,
XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;
if (this.getTreePref('show.'+this.kMENUITEM_POSITION)) {
position.removeAttribute('hidden');
position.getElementsByAttribute('value', pos)[0].setAttribute('checked', true);
}
else {
position.setAttribute('hidden', true);
}
sep = this.evaluateXPath( sep = this.evaluateXPath(
'descendant::xul:menuseparator[starts-with(@id, "'+this.kMENUITEM_AUTOHIDE_SEPARATOR+'")]', 'descendant::xul:menuseparator[starts-with(@id, "'+this.kMENUITEM_AUTOHIDE_SEPARATOR+'")]',
@ -2178,18 +2143,6 @@ TreeStyleTabBrowser.prototype = {
else { else {
sep.setAttribute('hidden', true); sep.setAttribute('hidden', true);
} }
// bookmark
item = this.evaluateXPath(
'descendant::xul:menuitem[starts-with(@id, "'+this.kMENUITEM_BOOKMARKSUBTREE+'")]',
aEvent.currentTarget,
XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;
if (this.getTreePref('show.'+this.kMENUITEM_BOOKMARKSUBTREE))
item.removeAttribute('hidden');
else
item.setAttribute('hidden', true);
this.showHideSubTreeMenuItem(item, [b.mContextTab]);
}, },
initAllTabsPopup : function(aEvent) initAllTabsPopup : function(aEvent)

View File

@ -57,6 +57,8 @@ pref("extensions.treestyletab.twisty.expandSensitiveArea", true);
pref("extensions.treestyletab.clickOnIndentSpaces.enabled", true); pref("extensions.treestyletab.clickOnIndentSpaces.enabled", true);
pref("extensions.treestyletab.show.openSelectionLinks", true); pref("extensions.treestyletab.show.openSelectionLinks", true);
pref("extensions.treestyletab.show.context-item-reloadTabSubTree", true);
pref("extensions.treestyletab.show.context-item-reloadDescendantTabs", false);
pref("extensions.treestyletab.show.context-item-removeTabSubTree", true); pref("extensions.treestyletab.show.context-item-removeTabSubTree", true);
pref("extensions.treestyletab.show.context-item-removeDescendantTabs", false); pref("extensions.treestyletab.show.context-item-removeDescendantTabs", false);
pref("extensions.treestyletab.show.context-item-collapseAllSubtree", true); pref("extensions.treestyletab.show.context-item-collapseAllSubtree", true);

View File

@ -137,6 +137,10 @@
<!ENTITY selection.removeTabSubTree.label "Ausgewählte Zweige schließen"> <!ENTITY selection.removeTabSubTree.label "Ausgewählte Zweige schließen">
<!ENTITY selection.removeTabSubTree.accesskey "s"> <!ENTITY selection.removeTabSubTree.accesskey "s">
<!ENTITY context.reloadTabSubTree.label "Reload this Tree">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "Reload Children">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "Diesen Zweig schließen"> <!ENTITY context.removeTabSubTree.label "Diesen Zweig schließen">
<!ENTITY context.removeTabSubTree.accesskey "s"> <!ENTITY context.removeTabSubTree.accesskey "s">
<!ENTITY context.removeDescendantTabs.label "Untergeordnete Tabs schließen"> <!ENTITY context.removeDescendantTabs.label "Untergeordnete Tabs schließen">

View File

@ -139,6 +139,10 @@
<!ENTITY selection.removeTabSubTree.label "Close Selected Trees"> <!ENTITY selection.removeTabSubTree.label "Close Selected Trees">
<!ENTITY selection.removeTabSubTree.accesskey "s"> <!ENTITY selection.removeTabSubTree.accesskey "s">
<!ENTITY context.reloadTabSubTree.label "Reload this Tree">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "Reload Children">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "Close this Tree"> <!ENTITY context.removeTabSubTree.label "Close this Tree">
<!ENTITY context.removeTabSubTree.accesskey "s"> <!ENTITY context.removeTabSubTree.accesskey "s">
<!ENTITY context.removeDescendantTabs.label "Close Children"> <!ENTITY context.removeDescendantTabs.label "Close Children">

View File

@ -138,6 +138,10 @@
<!ENTITY selection.removeTabSubTree.label "Cerrar árboles seleccionados"> <!ENTITY selection.removeTabSubTree.label "Cerrar árboles seleccionados">
<!ENTITY selection.removeTabSubTree.accesskey "s"> <!ENTITY selection.removeTabSubTree.accesskey "s">
<!ENTITY context.reloadTabSubTree.label "Reload this Tree">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "Reload Children">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "Cerrar este árbol"> <!ENTITY context.removeTabSubTree.label "Cerrar este árbol">
<!ENTITY context.removeTabSubTree.accesskey "s"> <!ENTITY context.removeTabSubTree.accesskey "s">
<!ENTITY context.removeDescendantTabs.label "Cerrar hija"> <!ENTITY context.removeDescendantTabs.label "Cerrar hija">

View File

@ -138,6 +138,10 @@
<!ENTITY selection.removeTabSubTree.label "Chiudi i sottoalberi selezionati"> <!ENTITY selection.removeTabSubTree.label "Chiudi i sottoalberi selezionati">
<!ENTITY selection.removeTabSubTree.accesskey "s"> <!ENTITY selection.removeTabSubTree.accesskey "s">
<!ENTITY context.reloadTabSubTree.label "Reload this Tree">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "Reload Children">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "Chiudi questo sottoalbero"> <!ENTITY context.removeTabSubTree.label "Chiudi questo sottoalbero">
<!ENTITY context.removeTabSubTree.accesskey "u"> <!ENTITY context.removeTabSubTree.accesskey "u">
<!ENTITY context.removeDescendantTabs.label "Chiudi sottoschede"> <!ENTITY context.removeDescendantTabs.label "Chiudi sottoschede">

View File

@ -137,6 +137,10 @@
<!ENTITY selection.removeTabSubTree.label "すべてのサブツリーを閉じる"> <!ENTITY selection.removeTabSubTree.label "すべてのサブツリーを閉じる">
<!ENTITY selection.removeTabSubTree.accesskey "s"> <!ENTITY selection.removeTabSubTree.accesskey "s">
<!ENTITY context.reloadTabSubTree.label "このサブツリーを再読み込み">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "このタブの子タブをすべて再読み込み">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "このサブツリーを閉じる"> <!ENTITY context.removeTabSubTree.label "このサブツリーを閉じる">
<!ENTITY context.removeTabSubTree.accesskey "s"> <!ENTITY context.removeTabSubTree.accesskey "s">
<!ENTITY context.removeDescendantTabs.label "このタブの子タブをすべて閉じる"> <!ENTITY context.removeDescendantTabs.label "このタブの子タブをすべて閉じる">

View File

@ -137,6 +137,10 @@
<!ENTITY selection.removeTabSubTree.label "Zamknij wybrane drzewa"> <!ENTITY selection.removeTabSubTree.label "Zamknij wybrane drzewa">
<!ENTITY selection.removeTabSubTree.accesskey "M"> <!ENTITY selection.removeTabSubTree.accesskey "M">
<!ENTITY context.reloadTabSubTree.label "Reload this Tree">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "Reload Children">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "Zamknij to drzewo"> <!ENTITY context.removeTabSubTree.label "Zamknij to drzewo">
<!ENTITY context.removeTabSubTree.accesskey "T"> <!ENTITY context.removeTabSubTree.accesskey "T">
<!ENTITY context.removeDescendantTabs.label "Zamknij potomne"> <!ENTITY context.removeDescendantTabs.label "Zamknij potomne">

View File

@ -137,6 +137,10 @@
<!ENTITY selection.removeTabSubTree.label "Закрыть выбранные деревья"> <!ENTITY selection.removeTabSubTree.label "Закрыть выбранные деревья">
<!ENTITY selection.removeTabSubTree.accesskey "s"> <!ENTITY selection.removeTabSubTree.accesskey "s">
<!ENTITY context.reloadTabSubTree.label "Reload this Tree">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "Reload Children">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "Закрыть это дерево"> <!ENTITY context.removeTabSubTree.label "Закрыть это дерево">
<!ENTITY context.removeTabSubTree.accesskey "s"> <!ENTITY context.removeTabSubTree.accesskey "s">
<!ENTITY context.removeDescendantTabs.label "Закрыть дочерние вкладки"> <!ENTITY context.removeDescendantTabs.label "Закрыть дочерние вкладки">

View File

@ -137,6 +137,10 @@
<!ENTITY selection.removeTabSubTree.label "关闭所选的树"> <!ENTITY selection.removeTabSubTree.label "关闭所选的树">
<!ENTITY selection.removeTabSubTree.accesskey "s"> <!ENTITY selection.removeTabSubTree.accesskey "s">
<!ENTITY context.reloadTabSubTree.label "Reload this Tree">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "Reload Children">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "关闭此树"> <!ENTITY context.removeTabSubTree.label "关闭此树">
<!ENTITY context.removeTabSubTree.accesskey "s"> <!ENTITY context.removeTabSubTree.accesskey "s">
<!ENTITY context.removeDescendantTabs.label "关闭子标签"> <!ENTITY context.removeDescendantTabs.label "关闭子标签">

View File

@ -134,6 +134,10 @@
<!ENTITY selection.removeTabSubTree.label "關閉所有選取的樹"> <!ENTITY selection.removeTabSubTree.label "關閉所有選取的樹">
<!ENTITY selection.removeTabSubTree.accesskey "s"> <!ENTITY selection.removeTabSubTree.accesskey "s">
<!ENTITY context.reloadTabSubTree.label "Reload this Tree">
<!ENTITY context.reloadTabSubTree.accesskey "r">
<!ENTITY context.reloadDescendantTabs.label "Reload Children">
<!ENTITY context.reloadDescendantTabs.accesskey "r">
<!ENTITY context.removeTabSubTree.label "關閉此樹"> <!ENTITY context.removeTabSubTree.label "關閉此樹">
<!ENTITY context.removeTabSubTree.accesskey "s"> <!ENTITY context.removeTabSubTree.accesskey "s">
<!ENTITY context.removeDescendantTabs.label "關閉所有子分頁"> <!ENTITY context.removeDescendantTabs.label "關閉所有子分頁">