スレッド開閉のキーバインド追加
GMailUIを入れてThunderbirdが使いやすくなった。j(次のメッセージ),k(前いのメッセージ),y(ヤンク:メッセージをArchiveフォルダへ移動)が溜まらん。
というのは本題ではなく。今回はThunderbird使用時の不満の一つである、スレッドの開閉。
「すべてのスレッドを広げる」と「すべてのスレッドをたたむ」はあるけど、フォーカスされたスレッドのみの開閉がツリーのデフォルト動作である→,←キーのみなのだ。しかもきちんとフォーカスされていないと使えない。
ということで、keyconfig(拡張機能)を使ってキーを割り当てる事に挑戦した。keyconfigは割り当てたキーにJavaScriptコードを割り当てる事ができるのでいろいろ操作が可能だ。
j,kと来ているので当然l,hに展開と閉じるを割り当てる事に。コードの中身はインストールしたThunderbirdのchrome内のjar:toolkit.jar!/content/global/bindings/tree.xmlを参考に書いた。
// expandThread var tree = document.getElementById('threadTree'); if ( tree ) { var row = tree.currentIndex; if (row >= 0 && !tree.changeOpenState(row, true)) { var view = tree.view; if (row + 1 < view.rowCount && view.getParentIndex(row + 1) == row) { // If already opened, select the first child. // The getParentIndex test above ensures that the children // are already populated and ready. tree.view.selection.timedSelect(row + 1, this._selectDelay); tree.treeBoxObject.ensureRowIsVisible(row + 1); } } }
// collapseThread var tree = document.getElementById('threadTree'); if ( tree ) { if (!tree.changeOpenState(tree.currentIndex, false)) { var parentIndex = tree.view.getParentIndex(tree.currentIndex); if (parentIndex >= 0) { tree.view.selection.select(parentIndex); tree.treeBoxObject.ensureRowIsVisible(parentIndex); } } }