Top
As/R Ver.2
●たわごと
方向性
タブの見せ方
Ver.2.0のβ1
Ver.2.0のβ2
Ver.2.0のβ3
Ver.2.0のβ4
Ver.2.0のβ5
Ver.2.0のβ6
As/Rの特徴って悩んでみた
●開発時の履歴
Ver.1.8.0.5139(Ver.2.0系のβ6)
●Windows7のライブラリの不具合対応
・デスクトップを除く実体情報の取得に失敗するパスを強制的に仮想フォルダーとして扱うように変更
デメリットとしてこれらのフォルダーから、外部コマンドの呼び出しなどができなくなります。
ただ、ITEMIDLISTと実パスが異なるアイテムなので、並び順が不定になったり階層によって外部コマンド呼び出しできない場合がありました。
そういった仕様不整合が大きいため一律でNGとしました。
・上記に伴いアドレスバーの色塗りを厳密化
・ITEMIDLISTと実体パスが異なるアイテムは、内部削除コマンドが動作しない問題を修正
・β5でのマルチコア並列度を上げつつ、CPUキャッシュのヒット率を上げた・・・のを戻した
・絞込みをしたときの上限数の設定を復活
●性能改善の微妙すぎるチューニング
・メモリ初期化処理の取りまとめをした
・アイテム個数の数え方を改善
・一覧生成の中断処理のレスポンスの向上
●不具合修正
・ArcPackの書庫名参照で、未入力の場合もダイアログが表示されるようにした
・各種簡易設定ダイアログで保存できない項目があった不具合の修正
・走査スレッド内でレジストリ参照している箇所で、アクセス衝突が起こる可能性がある不具合の修正
Ver.1.8.0.5127(Ver.2.0系のβ5)
●β版修正
・既知の問題であった2画面モード切り替え時に落ちる不具合の対処
・チップテキストの誤訳を修正
・リソース文字列の誤字修正
・ArcPack、ArcUnPack、FileCpMvの文言修正と、タブオーダーの変更
・タブバーの非コントロールエリアをドラッグや、ダブルクリックしても動かないようにした
・2画面モードの場合にフォント変更しても片方しか適用されない不具合の修正
・タブバーの空いているところをダブルクリックした場合に、新しく開くコマンドを追加
・他のプロセスからタブバーの空いてるところにファイルをドロップしたら新しく開くコマンドを追加
(自プロセスからは何故か受け付けられないので、原因が分かるまで隠し機能扱いにしておく)
●既存の不具合の修正
・何らかの理由でビューの生成に失敗した場合に割り当てられていないメモリを開放しようとする不具合の修正
・スレッドより先にウィンドウが破棄された場合に落ちる不具合の修正
(前述のビューの生成に失敗した場合に、ごくまれに発生する)
・縮小版表示でGDIリークがあった不具合を修正
・ローカルGDIリソースを使い切って開けなくなる前にメッセージを出す処理の追加(環境にもよるけどタブ250枚くらい)
・何らかの理由で自動更新用スレッドの生成に失敗した場合に、未取得のハンドルを開放しようとする不具合の修正
・自動更新監視スレッドの終了リトライが欠落していた不具合の修正
(メモリ帯域がほぼMAX状態で使用されている状態で、断続的にウィンドウを閉じると発生する)
・リストの自動更新監視スレッドの終了処理の際に、メインウィンドウへメッセージを送る事があり極端な遅延が発生する不具合の修正
●オプションの追加項目
・オーバーレイアイコンの属性情報を使う設定の追加
・シェルのオーバーレイアイコンの取得条件の設定を追加
・絞込みをしたときの上限数の設定を廃止
●その他
・ユーザー定義バーの選択アイテムの登録で、未選択の場合に現在のフォルダーを登録するか確認する機能の追加
・フォルダーバーでF6キーの動作を追加
・ステータス表示のアイテム数や秒を3桁カンマ区切りで可読性を向上した
・一覧生成の際のマルチコア並列度を上げつつ、CPUキャッシュのヒット率を上げた
・ソート時の比較関数を高速なものに変更
合計して、4コア4HTで一覧表示が15〜25%くらい高速化
・圧縮コマンドの書庫ファイル名に「...」ボタンをつけた(追加/更新のできるLHA、ZIP、7z、BGAの場合のみ有効)
気になる点として、このテキストボックスってば拡張子除去なんで、かなり使い勝手が悪いかも・・・
Ver.1.8.0.4502(Ver.2.0系のβ4)
●β版不具合修正
・ナビゲートロック時に「ロック状態でナビゲート依頼が来ると、新しく開く」がONで、上位フォルダへ移動コマンドを発行しするとグループを継承しない不具合を修正
・関連付け起動(選択ナビゲーション)で「新しく開く」「バックグラウンドで開く」がグループを継承しない不具合を修正
・実装しかけの2画面モード用置換マクロが要らん事してたので、とりあえず全部撤去
・キー操作で子ウィンドウを閉じたときにグループ再編成が発生しても、タブグループを再描画しない不具合の修正
●2画面モードの使い勝手の向上(?)
・2画面モードのペインを切り替えたタイミングでタイトルバー/タブを更新する処理の追加
・2画面モードで新しいウィンドウを開いたときに、2画面で開くように変更
・2画面モード切替時に、全ての子ウィンドウを画面分割するように変更
●コピー/移動、圧縮、解凍のコマンドライン展開を全部作り直した
・2画面モードのC/M/P/Uのコマンド初期値を変更(コマンドモード=2画面モードにしてます)
・Shift+Ctrl+Cに他のタブへ拡張コピーコマンドを割り当て
・Shift+Ctrl+Mに他のタブへ拡張移動コマンドを割り当て
・Shift+Ctrl+Pに他のタブへ圧縮コマンドを割り当て
・Shift+Ctrl+Uに他のタブへ展開コマンドを割り当て
・他のタブへ拡張コピー、他のタブへ拡張移動コマンドをメインメニューに追加
(他のタブへ圧縮、他のタブへ解凍は需要が不明なので、メインメニューに追加することは保留)
●その他調整
・オプションからヘルプを開くURLの最終調整
・タブバーのチップテキストのディレイタイムの調整
※補足
●分かっている不具合
2画面モード⇔1画面モードへ変形する際に落ちることがあります。
これはスレッド制御のどこかが問題あるんですが、セキュリティ問題にはならない事、原因の特定にかなり時間がかかりそうなので既知の不具合扱いとします。
本件に関しての不具合報告は不要です。
●コピー/移動、圧縮、解凍のコマンドラインについて
/c・・・・FileCpMv専用、コピーモード
/m・・・・FileCpMv専用、移動モード
/t・・・・他のタブのフォルダーボタンを非表示、タブ選択するリストが表示されます
/s=n・・・nは整数、コンボボックスへの選択項目の相対番号です。
数字の省略時は0の扱い、/tを指定していなくても可です。
なお実体を持たないパス(マイコンピュータやコントロールパネルなど)は一覧に表示されないので、実際のタブの並びと異なる場合があります。
/f=n・・・nは整数、初期フォーカス位置を指定します。
ArcUnPack、FileCpMvの省略時は0です。ArcPackコマンドのみ2が初期値になります。
0:コンボボックス
1:タブ選択するリスト
/tが指定されていないと0になります
2:圧縮ファイル名
圧縮コマンド専用、圧縮ファイル名の自動生成の場合は/tが指定されているかを判定して0/1を割り振る
Ver.1.8.0.4221(Ver.2.0系のβ3)
β版修正
・コピー/移動/圧縮/解凍コマンドで2画面モード時に他のタブの情報を渡すように変更
・各メニューから増減のあったコマンドを精査/再分類した
・ドラッグ中のタブ切り替え遅延を500ms→800msに調整
・子ウィンドウが0のとき、最大化しない不具合の修正
・ドロップ後のグループ増減時に不用意に不整合補正を呼んで、属性並びが壊れてしまっていた不具合の修正
・グループ並びの整合補正でメモリリークしていたのを修正
・ドロップ並び替え後のアイテムを管理情報として格納してなかったため、落ちたりメモリリークしたりしていた不具合の修正
・コマンド説明の文言修正
・タブバーのグラデーションを薄く、矩形デザインの変更
・タブバー上のコマンドアイコンにツールチップを追加
・初期設定ツールの追加ファイル対応
・バー画像の調整と、最終仕上げ
・AllCommand.txt、history.txt、Msg.jp.txtの最終確認
・オプションのレイアウトの最終調整
オプション整理
・自動更新を無効にするアイテムの数のオプションを追加(高負荷時用の安全装置です)
その他
・オプションのキー割り当てに、選択項目のみ初期化を追加
・オプションのキー割り当てに、全て初期化を追加
・従来の初期化ボタンを、現在のセット/修飾を初期化に名称変更
・コピー/移動/圧縮/解凍コマンドの他のタブフォルダーの指定で、入力ミス時に戻せなくなるので自ウィンドウを含めるようにした
・ソート種別「大小文字判定あり」の追加(文字コードより25%ほど高速)
・ソート種別「ソートなし」の追加(文字コードより30%ほど高速)
・一覧の表示速度を微妙に高速化(数ミリ秒)
・メインメニューのソートモードにラジオボタンをつけた
・単位付与テキストをトリミングして見栄えを整えた
・ドロップオブジェクトの仮想アイテム判定に、OSとHDDフォーマット種別ごとのゴミ箱判定を加えた
とりあえずの暫定措置。
ゴミ箱の作られないドライブのルート直下に$Recycle.binなどが存在し、その配下からドロップされると誤判定してシェル転送モードになります。
シェル転送モードになったところで、バックグラウンド動作にならないだけであり動作に問題ないものとして扱います。
Ver.1.8.0.4102(Ver.2.0系のβ2)
β版修正
・新しいウィンドウを開いたときに、現在の子ウィンドウの状態を確認するように処理を追加
・実装済みコマンドがメニュー定義ファイルに反映されていなかったのを修正
オプション整理
・Windows7のタスクバーインタラクションのオプションを削除(タブバーがらみで動作しなくなったため)
その他
・フォルダサイズ計算時のダイアログで文字化けしている不具合の修正
・アドレスバーのジャンプの際、コンボボックスの編集条件を緩和してエラーになりにくくした
・ユーザー拡張用のツールバー画像で高さの自由化(ビューア対応)
・サイト引越しに伴いヘルプのリンク先を変更
新しいコマンドの追加
・Ver.1→Ver.2の移行ツールの作成(Update1To2.exe)
・似ている名前のフォルダーに分類してコピーコマンドの追加
・似ている名前のフォルダーに分類して移動コマンドの追加
Ver.1.8.0.4025(Ver.2.0系のβ1)
●タブバーを全面的に作り直し
フルスクラッチで作成したためMFC由来の問題点や要望は全て解消しましたが、代償として排他の関係にあるタブグループという考え方が消滅しました
グループ分けは、まとめて開いたか親子関係を持つ場合の「属性」という扱いになりました
最大12グループで管理されます(グループに属さないも含めると13)
削除されたコマンド
・新しいタブグループを作成
・現在のタブを次のタブグループへ移動
・現在のタブを前のタブグループへ移動
・次のウィンドウ(タブグループ横断)
・前のウィンドウ(タブグループ横断)
・次のタブグループ
・前のタブグループ
・ツールバー上の新しく開く/ここから開くコマンド(タブバー上へ移動)
・ドキュメントメニュー表示、タブを上に配置、自動非表示、タブのスタイル、自動色分け、枠幅といった属性情報のカスタマイズ
・タブ幅を0にしたときに自動調整する機能
(0を設定することを禁じています、無理やり0にするとコンポーネントのデフォルト値になります)
追加された機能
・上下左右のどこにでも配置可能
・タブバーの非表示
・閉じるボタンを表示させているとき、ボタンアップ位置によってウィンドウを閉じてしまう問題の解消
・ドラッグ中に通過しただけでタブ切り替えしない遅延選択
・タブバーの縦置き対応と自動変形
・タブバー上に新しく開く/ここから開くコマンドを配置
・タブ上にD&Dしてファイル処理する機能の追加
・多段タブ対応
・縦に並べて表示コマンド追加
・横に並べて表示コマンド追加
・重ねて表示コマンド追加
・子ウィンドウを最大化コマンド追加
・子ウィンドウを最小化コマンド追加
・ウィンドウを元のサイズに戻すコマンド追加
・フォルダーバーで下位階層をタブグループで開くを追加
・まとめて開いたり、親子関係があるタブをグルーピングする機能の追加
・前のウィンドウへ切り替え(Zオーダー順)
・次のウィンドウへ切り替え(Zオーダー順)
動作が変わったコマンド
グループ属性が付与されるようになります。
・ここからウィンドウを開く系全て
・ここからバックグラウンドで開く系全て
・選択アイテムを新しいタブグループで開く
・下位階層を新しいタブグループで開く系全て
●タブグループが消滅した影響で2画面モードの動作が変わりました
1タブで2画面を表現するように変更
・最近閉じたバー、前回のタブを復元の出力ファイルのフォーマットが変わったので(2画面分保持するため)出力ファイル名を変更
(LastTab.dat→LastTab2.dat、Window.hist→Window2.hist)
・画面分割切り替えコマンドの追加
・画面分割するコマンドの追加
・画面分割を解除するコマンドの追加
・デフォルトキー配置のTABとF6の設定を変更
●その他
・詳細一覧で交互背景を適用するようにした
・一行選択でなくても交互背景が適用されるようにした
・ユーザー拡張用のツールバー画像で高さの自由化
画像の高さが16pix/15pixのどちらでも読めます。
※付属のビューアーはまだ未対応です。
・設定の初期値を調整
●オプションの整理
・リストの初期状態オプション追加
・大量のウィンドウを開くときに警告するオプションの追加
・従来の大量のアイテムを開くときに警告していた制限値を20→15に変更
・外部コマンドページをコマンド定義に改名
・共通操作ページを追加
・標準コマンドページを追加
・タブバーの設定を改訂
・交互背景の有効/無効の設定の削除
(問答無用で適用されます。格子色を無効にしたければ背景色と同じ色にしてください)
従来の設定内容が失われる項目
タブバー、ユーザー定義バー、フォルダーバーなどに影響を及ぼすようになり、設定の影響範囲が変わったためです。
・埋込み先編集のリネームを許可する
・ドロップを許可する
・ドラッグ開始を許可する
・ドロップ時に呼び出される外部コマンド(コピー)
・ドロップ時に呼び出される外部コマンド(移動)