Giraffe+ 0.5.22.366
前リリースからの変化
- DLLから変数の参照を得る、Dll.make_variable(name, type = Int)を定義
- エラーダイアログの表題表示部がリサイズ対象になってなかったのを修正
- できるだけメモリが開放されやすいようにした
- 内部的にグローバルコンテキストをオブジェクトから取得するときにLocal.globalみたいなのがあっても問題ないようにした
- RenameFileRegexを登録アイテムもリネームできるようにした
- ダイアログを使わずにRenameFileと似たような操作でリネームできるRenameFile2をsettings/keyに置いた
DLLから変数の参照を得る、Dll.make_variable(name, type = Int)を定義
そのDllオブジェクトのプロパティになるわけではなく、Dll.make_function等と同じく、単に参照が返るだけです。
エラーダイアログの表題表示部がリサイズ対象になってなかったのを修正
忘れてました。ついでにデフォルトの大きさとかを少し変更しました。
できるだけメモリが開放されやすいようにした
ファイナライザを全てGC_REGISTER_FINALIZER_NO_ORDERを使うようにしたり、可能な限りGC_MALLOC_ATOMICを使ったりと、細かい部分に手を入れました。gc_cpp.hにあるクラス類ではそういうことは出来ないので、ポリシークラスを作ってテンプレートでいろいろ出来るようにしておきました。ソースはgs/gc/template.hppです。
内部的にグローバルコンテキストをオブジェクトから取得するときにLocal.globalみたいなのがあっても問題ないようにした
self.globalとやっていたのを、self.most_parent.globalとするような感じにしました。
RenameFileRegexを登録アイテムもリネームできるようにした
忘れてました。
ダイアログを使わずにRenameFileと似たような操作でリネームできるRenameFile2をsettings/keyに置いた
RenameFileは古いDLL(ASCIIビルド)の関数を使っていたので、ユニコードファイル名が使えない問題があり、いつかもっといいリネーム用ダイアログを新しく作ろうと思っていたんですが、特に思いつかず放置していました。ところが、ふと、ダイアログを使わないリネーム方法を思いついたので実装しました。
現ファイル名;新ファイル名
の状態で実行したら即リネームされる、というのは簡単に、ダイアログを作る前にも思いついたんですが、これでは、新ファイル名が現ファイル名とほとんど変わらず、ファイル名の一部分だけを変更したいというファイル名変更の大多数の場合に全てのファイル名を入力する必要があり、非常に不便です。そこで、
現ファイル名
だけの状態で実行したら、自動的に
現ファイル名;現ファイル名
となり、新ファイル名となる側を選択した状態になるようにしました。
これにより、ダイアログ版の手順である、
Ctrl+R(新ファイル名の自動入力と選択がされたダイアログの表示) -> ファイル名編集 -> Enter(ダイアログにOKを送る)
とほぼ同じ
Ctrl+R(新ファイル名の自動入力と選択) -> ファイル名編集 -> Ctrl+R(新ファイル名にリネーム)
という手数でダイアログを表示せずにリネームできるようになりました。
既存の利を損なうことなく、フォーカスの変化や表示される際の一瞬の間等、ダイアログを使うことによる害のみを解消することができたようです。