Giraffe+ 0.5.57.693
前リリースからの変化
- Migemo Groupingで文節区切りみたいなことを可能にした
- フォルダサイズ順にソートするsettings/key/SortListFolderSizeを追加
- Method.be_breakableがブレイクされたときにデフォルトでメッセージを表示するようにした
- Method.be_breakableの引数のメソッドにコンテキストを生成するようにした
- システムのプロパティの環境変数の変更に反応するようにした
- settings/key/HistoryAvoidRepetitionCompletelyが動作不良だったのを修正
- settings/setup/AddRegItemWithDnDがITEMIDLISTを渡してたのを修正
Migemo Groupingで文節区切りみたいなことを可能にした
続けて括弧を書くことでそうなります。以前は括弧の前後に空白があるのと同じ扱いになってました。
and, or, notの扱いが少しややこしいので別項で詳説します。
とりあえず例:
a(no)c =~ aのb a(no|ga)b =~ aのb or aがb a(-no)b !~ aのb
フォルダサイズ順にソートするsettings/key/SortListFolderSizeを追加
フォルダ内に存在する全てのファイルサイズの合計をフォルダサイズとしてます。
フォルダを再帰的に探索しフォルダサイズを取得するので、フォルダによってはかなり時間がかかります。
ブレイカブルです。間違って上位フォルダでやってしまった場合等、ESCでキャンセルできます。
Method.be_breakableがブレイクされたときにデフォルトでメッセージを表示するようにした
ブレイクしたときに呼ばれるデフォルトのメソッドにメッセージ表示を追加しました。
ブレイカブルな場合にタスクトレイのアイコンが変わるとか、いつもどおりフレームの色を変えるとか、とにかくなんらかの通知をしたほうがいいとは思うんですが、特にいい手段が思い浮かばないのでやってません。キャレットを消すとかでいいんでしょうか。
Method.be_breakableの引数のメソッドにコンテキストを生成するようにした
してませんでした。
システムのプロパティの環境変数の変更に反応するようにした
出来るだけエクスプローラと同じ動作にしたいんですが、そういうAPIとかは無いみたいなので、自前でやりました。
Giraffe.MainWnd.ReactToEnvironmentVariableChange.= false
で抑止できます。
以下実装について。
HKEY_CURRENT_USER\Environmentにユーザ設定、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentにシステム設定があるので、環境変数変更の通知(WM_SETTINGCHANGEのlParamがEnvironment)が来たら、それを読み取ります。
それだけでは環境変数を削除した場合に対応できないので、あらかじめレジストリにある環境変数名を保持しておいて、読み取り前にそれを削除してます。読み取り時にその保持してる環境変数名リストも更新します。
環境変数とレジストリの列挙にはSTLSoftを使いました。UNICODEビルドだとコンパイルできない部分は#ifndef UNICODEで消せばいいです。使えない部分は使わない部分です。
settings/key/HistoryAvoidRepetitionCompletelyが動作不良だったのを修正
==にするところを!=にしてました。
settings/setup/AddRegItemWithDnDがITEMIDLISTを渡してたのを修正
パスに変換可能な場合は変換するようにしました。