前回の記事では、テキストを素早く残すための小さなエディタ「menow」を作り始めたところまでを書きました。今回はその続きです。実際に使い続ける中で感じた違和感を起点に、タブ管理と履歴表示を見直しました。

機能追加というより、「使っていて引っかかった点を一つずつ潰した」という性質の変更です。
1. なぜタブまわりが気になり始めたのか
しばらく menow を使っていると、無意識にタブを増やしている自分に気づきました。メモを書き捨てる用途なので、1つ1つのタブは軽いはずです。それでも数が増えると、ウィンドウの上部が横に広がり、視線が散ります。
特に気になったのは、新しいタブを追加する「+」ボタンの位置でした。タブの右端にあると、クリックするたびに視線とマウスを大きく動かす必要があります。些細ですが、毎回となると積み重なります。
ここから、「タブは増やしすぎない」「追加操作は落ち着いた場所に集約する」という方針が固まりました。
2. 新規タブ追加をメニューに移した理由
以前は、タブバー右端に「+」ボタンを置いていました。多くのアプリで見慣れた配置なので、最初は違和感がありませんでした。
ただ、menow はタブを並べて比較するツールではありません。考え事の途中メモを切り替えるためのものです。その性質を考えると、タブバーを常に操作対象にする必要はないと感じました。
2.1. メニューに集約するという判断
そこで、新規タブ追加はメニューボタンの中に「New」として移しました。操作としては一手増えますが、視線の移動が減ります。結果として、落ち着いた操作感になりました。
実装上は、タブ右上のボタンを削除し、既存のメニューボタンに QAction を追加するだけです。UIの見た目は変わりますが、コードの変更範囲は小さく済みました。
3. タブ数を最大5個に制限した理由
3.1. ウィンドウ幅が広がる問題
タブを無制限に増やすと、Qt の仕様上、タブバーは横方向に伸び続けます。結果として、ウィンドウ全体が横に広がり、レイアウトが崩れたように感じました。
スクロール可能なタブバーにする手もあります。ただ、それは「タブを管理する」という別の認知コストを生みます。
3.2. 古いタブから閉じるという割り切り
menow の用途を考えると、同時に保持したいメモはせいぜい数個です。そこで、最大5個までと決め、それを超えたら古いタブから自動で閉じるようにしました。
ここでは「古い」を、タブのインデックス順と定義しています。履歴や保存処理は既存の close 処理に任せられるため、新しいロジックを増やさずに済みました。
この割り切りは万能ではありません。ただ、少なくとも自分の使い方では、迷いが減りました。
4. タブ名から日付を消した理由
4.1. ファイル名と表示名は同じでなくていい
menow では、ファイル名に YYYY-MM-DD_ を付けています。これは保存時の整理には便利です。一方で、タブ上で毎回日付を読む必要はありません。
タブは「今、どのメモを書いているか」を一瞬で把握できれば十分です。日付は情報量として過剰でした。
4.2. 表示時だけ加工する方針
そこで、ファイル名そのものは変えず、タブに表示するときだけ日付部分を削除しました。正規表現で先頭が日付形式の場合のみ除去しています。
この方法なら、既存ファイルとの互換性も保てます。表示と実体を分けて考える、という当たり前の整理を改めて意識しました。
5. History 表示で感じた違和感
ファイルを削除したあとも、History メニューにはその項目が残っていました。クリックすると当然エラーになります。
理屈では理解できます。履歴は「過去に開いたパスの一覧」であって、「今存在するファイルの一覧」ではありません。
ただ、使う側としては混乱します。
5.1. 表示時に存在チェックするという解決
履歴を更新するタイミングは色々考えられます。削除時に即反映する方法もあります。
今回はもっと単純に、「History を表示する瞬間に、存在しないものは出さない」という方針にしました。同時に、存在しないパスは内部リストからも削除します。
これにより、履歴は自然に掃除されます。ユーザーが意識する必要はありません。
6. 今回の変更で得られたものと残った課題
今回の v0.3 では、大きな新機能はありません。その代わり、日常的な操作の引っかかりを減らせました。
一方で、タブを自動で閉じる挙動は、人によっては唐突に感じるかもしれません。設定で変更できる余地はありますが、今は入れていません。