すべて既読にするショートカット

概要

アドベントカレンダー14日目。今日はすべて既読にするショートカットを。

既読フラグというほどの管理はしていなくて、そうたいした機能でもないので未読件数表示なんてないですし、すべて既読の機能もありません。なのですべて既読にするショートカットなんて存在しません。

でもAzureaには拡張があります。今回もスクリプト拡張で解決します。

スクリプト

System.addKeyBindingHandler('X'.charCodeAt(0), 0, function(id){
    var view = System.views.currentView;
    var items = view.items;
    var id = view.selectedItemId;
    for(var i = 0; i < items.length; ++i){
        view.selectedItemId = items[i].id;
    }
    view.selectedItemId = id;
});

解説

1行目はいつもおなじみショートカットの追加です。今回はXキーに割り当ててみました。

今回はそんなに長くないので、順番に見ていきます。まず、現在のアクティブなビューを取得します。そして次にそのビューに含まれるアイテムの一覧を取得します。現在選択されている項目をいったん保存し、全部の項目をループで一度選択し、最後に保存しておいた項目へ選択を戻すだけ。

System.views.currentView.items で取得できるオブジェクトは配列風のオブジェクトなのでJavascriptの配列と同じメソッドがすべて実装されているわけではありません。lengthと配列アクセス用の[]はいちおう用意されているので普通にループ回せると思います。

既読フラグに関するAPIが実装されていないので、こういう力技な解決方法で。

コメントとか


もし見えてたら空欄にしてね!:

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-08-27 (土) 10:33:42 (1443d)