スレッド開閉のキーバインド追加
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);
}
}
}