2006-06-30 [長年日記]

[Q3] 未読ジャンプで他のアカウントも検索

だいぶ前にQsMLで話が出た気がするのですが、次の未読を探すときに他のアカウントも検索するかどうかを、オプションで指定できるようにしました。

[Q3] メモを付ける

だいぶ前にメールにメモがつけたいを読んだときに、QMAIL3でもマクロを使えばできるかなと思っていたのですが、BTSでもそんな話が出てきたので試しに作ってみました。といっても、その過程でいくつか本体のバグが見つかって直したり、機能を追加したりしたので、r3198以降でないと動きません。

まず、メールボックスフォルダにmacroとmemoというディレクトリを作成します。そして、macroディレクトリにmemo.macroというファイル名で以下の内容のファイルを作成します。

@Progn(# メモのファイル名を取得します。
       @Defun('GetFileName',
              @Concat('memo/',
                      @RegexReplace(Message-Id,
                                    /[^A-Za-z0-9_.!@#$%^&-]/,
                                    '',
                                    @True()))),
       # メモを読み込んで返します。読み込めない場合には空文字列を返します。
       @Defun('LoadMemo',
              @If(@CanMemo(),
                  @Catch(@Load(@GetFileName()), ''),
                  '')),
       # メモを保存します。一番目の引数に保存するメモを指定します。
       @Defun('SaveMemo',
              @If(@CanMemo(),
                  @Save(@GetFileName(), $1),
                  @False())),
       # メモが取れるかどうか調べます。Message-Idが無いとメモは取れません。
       @Defun('CanMemo',
              Message-Id),
       # 入力ダイアログを開いてメモを入力し保存します。
       @Defun('InputMemo',
              @If(@CanMemo(),
                  @Catch(@SaveMemo(@InputBox('メモを入力してください',
                                             :INPUT-MULTILINE,
                                             @LoadMemo())),
                         @MessageBox('メモの保存に失敗しました')),
                  @MessageBox('Message-Idがないのでメモが取れません'))))

それからmenus.xmlを編集して適当なところにメニューを追加します。今回は、リストビューのコンテキストメニューに付けてみました。追加するのはこんな行です。

<menuitem text="Mem&amp;o..."
          action="MessageMacro"
          param="@Progn(@Include('macro/memo.macro'), @InputMemo())"/>

さらにヘッダビューに表示するためにheader.xmlを編集します。最後の方にこんな感じでつけてみました。

<line hideIfEmpty="memo">
  <static width="auto" style="bold" showAlways="true">Memo:</static>
  <edit name="memo">{@Progn(@Include('macro/memo.macro'), @LoadMemo())}</edit>
</line>

リストビューのコンテキストメニューから[Memo...]を選ぶとダイアログが開くのでそこでメモを入力します。メモが付いているメッセージを開くと、ヘッダビューにそのメモが表示されます。メモは最初に作ったmemoディレクトリに保存されます。

問題点としては、

  • メモを入力した直後はビューが更新されないのでヘッダビューにメモが表示されない
  • ヘッダビューでは複数行が表示できないので一行で表示されてしまい、長いメモだと見にくい
  • メモを削除してもファイルが削除されない

というのがありそうです。二番目の問題は、表示用テンプレートを使ってメッセージの下などに表示するという方法で回避できますが、今度はHTML表示と両立できないという問題が出てきます。

メモを付けると同時にユーザフラグを立てて、そのフラグの立っているメッセージの色を変えると、メモの付いているメッセージがすぐにわかって良いかも知れません。

[]

トップ «前の日記(2006-05-31) 最新 次の日記(2006-07-01)»