Tree Style Tab 2
さらに修正
- 0.7.2009043002 で動作確認
- zk 末尾のタブが子を持っていると正常動作しない点を修正
- d で削除後アクティブになるタブ 優先順位
- 対象の子
- 同一階層の次
- 同一階層の前
- 親
- zH を 変更
- z@
- 次に開くタブを現アクティブタブの子にする
- z[
- 以後 開くタブを現アクティブタブの子にする
- z]
- 親 解除
あと、zxとzv あたりで、タブを切り貼りしたいんだけど、
上手くいかず…
以下差分
diff -r 68347887b547 treeTabStyle.js --- a/treeTabStyle.js Thu Apr 30 23:03:35 2009 +0900 +++ b/treeTabStyle.js Thu Apr 30 23:15:13 2009 +0900 @@ -26,6 +26,9 @@ setup("zC" , "collapse all subtree" , "collapseAllSubtree"); setup("zo" , "expand subtree" , "expandSubtree"); setup("z^" , "goto first tab" , "firstTab"); + setup("z@" , "ready to open child tab once" , "readyToOpenChildTabOnce"); + setup("z[" , "ready to open child tab" , "readyToOpenChildTab"); + setup("z]" , "stop to open child tab" , "stopToOpenChildTab"); plg.userTreeStyleTab={ nextTab:function(aCount){ @@ -52,33 +55,30 @@ else{ t1 = (t2=TreeStyleTabService.getParentTab(t1)) ? TreeStyleTabService.getLastChildTab(t2) - : TreeStyleTabService.getLastTab(gBrowser); + : TreeStyleTabService.getRootTab(TreeStyleTabService.getLastTab(gBrowser)); } } gBrowser.selectedTab = t1; },removeTab:function(){ - var t=gBrowser.selectedTab,p,q; - if(!TreeStyleTabService.getNextSiblingTab(t)){ - plg.userTreeStyleTab.prevTab(); + var t=gBrowser.selectedTab; + if(!TreeStyleTabService.getNextSiblingTab(t) && !TreeStyleTabService.hasChildTabs(t)){ + p = TreeStyleTabService.getPreviousSiblingTab(t)||TreeStyleTabService.getParentTab(t); + if(p) gBrowser.selectedTab = p; } gBrowser.removeTab(t); },parentTab:function(){ var t = TreeStyleTabService.getParentTab(gBrowser.selectedTab); if(t) gBrowser.selectedTab=t; },rootTab:function(){ - var t1,t2; - for(t1=gBrowser.selectedTab;t1;t1=TreeStyleTabService.getParentTab(t1)) t2=t1; - if(t2) gBrowser.selectedTab=t2; + gBrowser.selectedTab = TreeStyleTabService.getRootTab(gBrowser.selectedTab); },firstChildTab:function(){ var t = TreeStyleTabService.getFirstChildTab(gBrowser.selectedTab); if(t) gBrowser.selectedTab=t; },removeTabSubTree:function(){ plg.userTreeStyleTab.collapseSubtree.apply(this,arguments); - plg.userTreeStyleTab.removeTab.apply(this,arguments); + gBrowser.removeTab(gBrowser.selectedTab); },removeTabTreeAll:function(){ - var t1,t2; - for(t1=gBrowser.selectedTab;t1;t1=TreeStyleTabService.getParentTab(t1)) t2=t1; - gBrowser.selectedTab = t2; + gBrowser.selectedTab = TreeStyleTabService.getRootTab(gBrowser.selectedTab); plg.userTreeStyleTab.removeTabSubTree.apply(this,arguments); },collapseSubtree:function(){ gBrowser.treeStyleTab.collapseExpandSubtree(gBrowser.selectedTab,true); @@ -92,6 +92,14 @@ gBrowser.selectedTab = (t2=TreeStyleTabService.getParentTab(t1)) ? TreeStyleTabService.getFirstChildTab(t2) : TreeStyleTabService.getFirstTab(gBrowser); - } + },readyToOpenChildTabCore:function(aTab,aFlag){ + TreeStyleTabService.readyToOpenChildTab(aTab,aFlag); + },readyToOpenChildTabOnce:function(){ + plg.userTreeStyleTab.readyToOpenChildTabCore(gBrowser.selectedTab); + },readyToOpenChildTab:function(){ + plg.userTreeStyleTab.readyToOpenChildTabCore(gBrowser.selectedTab,true); + },stopToOpenChildTab:function(){ + TreeStyleTabService.stopToOpenChildTab(gBrowser.selectedTab); + } }; })();