画面設計(現行)¶
GUI を改善する前に、今の画面をすべての状態で写真に撮って残す区分。写真は道具(tools/capture_screens.ps1)で自動で撮り、docs/images/screens/ に置く。タブごとの No. の表([インデックス管理]タブ など)は仕様として残し、ここには書き写さない。画面ごとのページは、目的・部品と並び・状態と遷移・表示する文言・写真をまとめる。
この区分のページ¶
画面全体の遷移¶
画面ごとの状態と遷移は各ページにある。ここではタブの間の行き来だけを示す。
stateDiagram-v2
state "起動" as startup
state "[インデックス管理]" as t1
state "[検索]" as t2
state "[設定]" as t8
startup --> t1: インデックスが無い・中断している(3・4)
startup --> t2: インデックスがある(2)
startup --> t8: 既定のワークスペースにほかのファイルがある(5)
t1 --> t2: タブを選ぶ(7)
t2 --> t8: タブを選ぶ(7)
t2 --> t1: インデックスを作成する(26)
t1 --> t8: 既定のワークスペースが使えない(22)
撮り方と撮り直し方¶
.\tools\capture_screens.ps1 すべての状態を撮り直す
.\tools\capture_screens.ps1 -Only <ID...> 指定した状態だけを撮り直す(例: -Only index-tab/empty search-tab/results)
.\tools\capture_screens.ps1 -OutDir <フォルダ> 写真の置き場所(既定 docs\images\screens)
- 状態の ID(写真のファイル名)は
<画面>/<状態>の形。画面はwindow・index-tab・search-tab・settings-tab(このページの下の一覧のページ名と同じ)。 - 撮り直しは、見た目が変わった画面だけにする。 撮り直しても写真のファイル名は変えない(git は同じファイルの差し替えになる)。日付・時刻が写るので、全部を撮り直すと変わらない画面まで差し替わり、リポジトリが重くなる。
- 道具が撮る前に確かめる、そろえる条件(合わなければ理由を出して止まる):
- 表示の倍率が 100%(
HKCU:\Control Panel\Desktop\WindowMetricsのAppliedDPIが 96)。画面が複数あるとAppliedDPIが窓のある画面と合わないことがあるため、撮るときは画面を 1 つにする。 - Windows のテーマがライトモード(
AppsUseLightThemeが 1)。tebunko の色はtheme.xamlが決めるため、ほかの設定は問わない。 - Excel・Word・PowerPoint が動いていない(撮る画面に、本物の文書の名前が出ることがあるため)。
- Windows の通知を止めている(集中モード・応答不可。撮る途中で通知が重なるのを防ぐ)。
- 道具と tebunko は、管理者でない同じ利用者の権限で動かす。
- 架空のデータを使う。 道具は一時フォルダを、空いているドライブの文字(
Z:から下へ探す)にsubstで割り当て、その下でツール・ワークスペース・元のフォルダを動かす。終わったら(失敗しても)subst /Dで外す。インデックス名・ファイル名・中身は、個人情報を書かないの架空の名前を使う。 - 利用者名が出る部品を塗りつぶす。 [設定]の「既定の場所は「
C:\Users\<利用者名>\Documents\tebunko_ws」です。」のように、OS から取る利用者のフォルダの場所は差し替えられない。道具は撮るたびに、窓の中の部品の UI オートメーションのNameと、入力欄(ValuePattern)のValueを調べ、利用者名・コンピューター名・利用者のフォルダのパスを含む部品の範囲を塗りつぶし、その上に置き換えた文字を描き直す。利用者のフォルダのパスはC:\Users\test\...、利用者名はtest、コンピューター名はTEST-PCに置き換える。 - 本体・ダイアログ・メニューの窓の外(デスクトップ・後ろの窓・通知)は無地の色で塗る(
CopyFromScreenは画面に出ているものをそのまま撮るため)。 - 撮る間はマウス・キーボードに触らない(画面のスモークテストと同じ。共通の関数
tests/gui/gui_helpers.ps1を使い回す)。
撮る状態の一覧¶
「遷移」は画面遷移の一覧の番号。計 42 枚。
本体・共通(window)
| ID | 状態 | 遷移 |
|---|---|---|
window/about |
「バージョン情報」 | 8 |
window/close-confirm |
更新中に閉じるときの確認 | 10 |
window/settings-broken |
設定が壊れていたときの知らせ(メッセージボックス) | – |
window/leftover |
起動時の、前回残った Office の確認(基本) | – |
window/leftover-open |
同・詳細を開いた | – |
window/leftover-many |
同・数が多い(詳細の表が縦にスクロールする) | – |
window/leftover-search |
同・[検索]の上に出ている | – |
window/leftover-killed |
[終了する]のあと、すべて終了したときのステータス | – |
window/leftover-partial |
同・一部が確認の後に変わっていたときのステータス | – |
[インデックス管理](index-tab)
| ID | 状態 | 遷移 |
|---|---|---|
index-tab/empty |
インデックスが無い | 3 |
index-tab/normal |
インデックスがあり、更新済み | 7 |
index-tab/interrupted |
前回の作成が中断している(起動時) | 4 |
index-tab/delete-confirm |
削除の確認 | 15 |
index-tab/checked |
行のチェックを付けた([アクション ▾]の対象) | 16 |
index-tab/start-confirm |
更新の確認ダイアログ(件数・失敗分の更新し直し) | 17 |
index-tab/cloud-confirm |
更新の確認ダイアログ・クラウドにだけあるファイルの欄(警告とダウンロードして取り込むチェック) | 17 |
index-tab/running |
更新中(更新の帯・行の[中止]・全体の進み・ステータスバーの 1 行。[+ フォルダを追加]と[アクション ▾]の項目が押せない) | 17・20 |
index-tab/stop-confirm |
中止の確認 | 19 |
index-tab/done |
更新が終わった(失敗なし) | 18 |
index-tab/failed |
失敗したファイルの一覧があり、タブに ⚠ | 18 |
[検索](search-tab)
| ID | 状態 | 遷移 |
|---|---|---|
search-tab/no-index |
インデックスが無い([インデックスを作成する]) | 26 |
search-tab/initial |
起動した直後(語を入れる前) | 2 |
search-tab/results |
結果あり(ファイルごとの見出し・行を選んだプレビュー) | 23 |
search-tab/no-results |
結果が 0 件 | 23 |
search-tab/limit |
件数の上限で打ち切った | 23 |
search-tab/regex-error |
不正な正規表現の吹き出し | 24 |
search-tab/tree-none |
検索対象のツリーですべて解除した注意 | 25 |
search-tab/collapsed |
結果をすべて折りたたんだ | 27 |
search-tab/filtered |
結果を絞り込んだ | 27 |
search-tab/missing-source |
元のファイルが見つからないときの確認 | 29 |
search-tab/min-width |
最小の大きさ(1024 × 640)で結果あり | – |
[設定](settings-tab)
| ID | 状態 | 遷移 |
|---|---|---|
settings-tab/normal |
既定でないワークスペース(既定の場所の文は塗る) | 7 |
settings-tab/limit-none |
検索結果の件数の上限が[制限なし](欄は薄く、既定の数を残す) | – |
settings-tab/limit-error |
件数の上限の入力が正しくない(欄の枠が赤く、欄の直下に理由) | – |
settings-tab/running-warning |
更新中に[変更…](メッセージボックス) | 21 |
settings-tab/empty-confirm |
空のフォルダを選んだときの確認 | 31 |
settings-tab/nonempty-confirm |
空でないフォルダを選んだときの確認 | 32 |
settings-tab/index-confirm |
インデックスのあるフォルダを選んだときの確認 | 33 |
settings-tab/invalid-warning |
使えないフォルダを選んだときの警告 | 34 |
撮らないもの¶
| 遷移・状態 | 理由 |
|---|---|
| 5(起動時の既定のワークスペースの警告)・22(作成の開始で既定のワークスペースが使えない)・35([既定に戻す]の確認) | 利用者の本物の既定のワークスペース(Documents\tebunko_ws)に書き込み、その中身が写る |
| 13・30(OS のフォルダ選択) | OS の画面で、利用者名と PC の中のフォルダが写る |
| 6(多重起動)・9(閉じる) | 見える画面が無い(前の窓が前に出る・窓が消える) |
| 元のファイル・フォルダ・ログを開く、結果をファイルに出力 | 行き先が外のアプリ(Office・エクスプローラー・メモ帳) |
| ドラッグ&ドロップ・ダブルクリック・キーボードのショートカット | 行き先はボタンと同じ画面 |
| 予期しない例外のメッセージボックス、インデクサが続けられないエラー | 起こすには本体に仕掛けが要る |
| 検索中・インデックスの削除中の表示 | 一瞬で終わり、同じ絵を撮り直せない |
| 28(結果・プレビューの右クリックのメニュー) | UI オートメーションの Invoke では開けない(画面のスモークテストの対象外と同じ理由)。道具はマウス・キーボードの合成にならないネイティブの WM_CONTEXTMENU(キー操作と同じ扱い)も試したが、フォーカスで出るツールヒントを拾うだけで、メニューは開けなかった |